Programmazione Procedurale

Slides:



Advertisements
Presentazioni simili
Struttura di un programma
Advertisements

Linguaggio C++ Operatori – numeri pseudocasuali - costanti.
G. Mecca – – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.
Tecnologie di Sviluppo per il Web
G. Mecca – – Università della Basilicata Tecnologie di Sviluppo per il Web XML: Dettagli e Approfondimenti versione 2.0 Questo lavoro è
Le funzioni.
Concetti di base: header file, funzione main(),set caratteri C++, token, operatori, espressioni etc. Flusso di controllo, cicli, costrutti.
Programmazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++
Algoritmi e Strutture Dati
1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 7 - Tabelle hash Alberto Montresor Università di Trento This work is licensed under the Creative.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Il main program Ogni programma in C++, per essere eseguibile, deve contenere una funzione main() da cui l’esecuzione comincerà main() deve avere un tipo.
RICERCA DI MERCATO PER NON ADDETTI
In molti casi è utile assegnare a degli identificatori dei valori che restino costanti durante tutto il programma e che non possano essere cambiati nemmeno.
Creazione progetto in C++/DEV
Riconfigurare il diritto dautore. Lipertesto, una necessità di riconfigurazione. Secondo G. P. Landow, lavvento dellipertesto implica la necessità di.
Programmazione Procedurale in Linguaggio C++
Copyright © Istituto Italiano Edizioni Atlas
Script bash I file di comandi in Linux. BASH  Bourne Again Shell  Modalità interattiva o batch (file di comandi)  Ambiente di programmazione “completo”
1 Elementi DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
Fondamenti di Informatica A - Massimo Bertozzi LE FUNZIONI.
Fondamenti di Informatica A - Massimo Bertozzi I PUNTATORI.
.  I tipi di dati non primitivi sono gli array, le struct e le union.  Gli array sono degli aggregati di variabili dello stesso tipo.  La dichiarazione.
Tipi e Valori Moreno Marzolla
Gestione della memoria
Ereditarietà Uno dei principi della programmazione orientata agli oggetti (OOP) è il riuso Le classi dovrebbero essere progettate come componenti riutilizzabili.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Introduzione al linguaggio C
Linguaggio C: Espressioni
Gli array Moreno Marzolla
Il linguaggio C Strutture Moreno Marzolla
7. Strutture di controllo Ing. Simona Colucci
Logica binaria Moreno Marzolla
Commenti Ogni riga che comincia con il simbolo # non viene letta dall’interprete per cui rappresenta un modo per commentare il listato # Questo è un esempio.
Strutture classi e oggetti
Unità didattica 1: Introduzione al linguaggio Java
L’AMBIENTE CODE BLOCKS E L’IO
I FILES AD ACCESSO SEQUENZIALE
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
PROGRAMMAZIONE BASH – ISTRUZIONE IF
© 2007 SEI-Società Editrice Internazionale, Apogeo
Programmazione e Laboratorio di Programmazione
Linguaggio C++ Selezione.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Secondo Programma in C.
Struttura di un programma
Esercitazioni di C++ 31 dicembre 2018 Claudio Rocchini IGMI.
Programmazione e Laboratorio di Programmazione
Struttura di un programma
Sviluppo di un programma
© 2007 SEI-Società Editrice Internazionale, Apogeo
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
La struttura dei primi programma in C
APPUNTI SUL LINGUAGGIO C Esercizi su File e Alberi Binari
Le stringhe in C++ Laboratorio 26 Aprile Dott. Serena Villata
Programmazione e Laboratorio di Programmazione
Operatori – numeri pseudocasuali - costanti
Unità 1 Programmi base.
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Passaggio di parametri per indirizzo
Programmazione e Laboratorio di Programmazione
Array (vettori) In linguaggio C / C++.
Programmazione e Laboratorio di Programmazione
La programmazione strutturata
Programmazione Procedurale
Programmazione Procedurale
Transcript della presentazione:

Programmazione Procedurale 09/12/2019 Programmazione Procedurale Elementi di Base Conclusioni Operatore di cast ? versione 2.6 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca Università della Basilicata – giansalvatore.mecca@unibas.it

Sommario Ricapitolazione Versioni del C++ Simulazione di un Programma 09/12/2019 Elementi di Base: Conclusioni >> Sommario Sommario Ricapitolazione Versioni del C++ Simulazione di un Programma Errori Frequenti G. Mecca - Programmazione Procedurale

Elementi di Base di un Linguaggio 09/12/2019 Elementi di Base: Conclusioni >> Ricapitolazione Elementi di Base di un Linguaggio Regole sintattiche di base struttura del programma, commenti, identificatori Istruzioni di dichiarazione tipi di dato: int, float, double, char (string), bool dichiarazione di costanti e di variabili Istruzioni di Assegnazione Espressioni Istruzione di Lettura e Stampa console e file G. Mecca - Programmazione Procedurale

Un Semplice Programma // Calcolo della superficie del cerchio 09/12/2019 Elementi di Base: Conclusioni >> Ricapitolazione Un Semplice Programma // Calcolo della superficie del cerchio #include <iostream> using namespace std; int main() { // Dichiarazioni const float pigreco = 3.14; int raggio; float cerchio, circonf; // Operazioni cout << “Immetti la lungh. del raggio” << endl; cout << “(deve essere un numero intero)” << endl; cin >> raggio; cerchio = raggio * raggio * pigreco; circonf = 2 * pigreco * raggio; cout << “La circonferenza misura: “ << circonf << endl; cout << “Il cerchio ha superficie: “ << cerchio << endl; return 0; } G. Mecca - Programmazione Procedurale

Versioni del C++ La versione del C++ che studiamo Ma... 09/12/2019 Elementi di Base: Conclusioni >> Versioni del C++ Versioni del C++ La versione del C++ che studiamo è la versione standard del C++ cosiddetto C++ ANSI Ma... del C++ esistono molti dialetti per esempio, la versione iniziale del linguaggio era leggermente diversa da quella ANSI G. Mecca - Programmazione Procedurale

Versioni del C++ Varianti nella Sintassi Nota 09/12/2019 Elementi di Base: Conclusioni >> Versioni del C++ Versioni del C++ Varianti nella Sintassi cambiamenti nelle direttive di inclusione assenza dei “namespace” cambiamenti nella struttura del programma principale Nota MinGW «digerisce» solo C++ ANSI G. Mecca - Programmazione Procedurale

Un Semplice Programma in C++ 09/12/2019 Elementi di Base: Conclusioni >> Versioni del C++ Un Semplice Programma in C++ // Calcolo della superficie del cerchio #include <iostream.h> void main() { const float pigreco=3.14; int raggio; float cerchio, circonf; cout << “Immetti la lungh. del raggio” << endl; cout << “(deve essere un numero intero)” << endl; cin >> raggio; cerchio = raggio*raggio*pigreco; circonf = 2*pigreco*raggio; cout << “La circonferenza misura: “ << circonf << endl; cout << “Il cerchio ha superficie: “ << cerchio << endl; } G. Mecca - Programmazione Procedurale

Simulazione del Programma 09/12/2019 Elementi di Base: Conclusioni >> Ricapitolazione Simulazione del Programma Consiste nel simulare sulla carta l’esecuzione delle istruzioni utile se usato congiuntamente alla sperimentazione diretta al calcolatore aiuta a ragionare su alcuni meccanismi interni di funzionamento Essenzialmente consiste nell’applicare la semantica delle istruzioni una per una (esec. sequenziale) G. Mecca - Programmazione Procedurale

Simulazione del Programma 09/12/2019 Elementi di Base: Conclusioni >> Ricapitolazione ATTENZIONE all’importanza delle simulazioni Simulazione del Programma NOTA si tratta di una forma di esercitazione didatticamente fondamentale soprattutto per chi si avvicina per la prima volta alla programmazione Il problema dell’ “astrazione” abituarsi a “interpretare” il comportamento della macchina durante l’esecuzione senza vederlo G. Mecca - Programmazione Procedurale

Simulazione del Funzionamento 09/12/2019 Elementi di Base: Conclusioni >> Ricapitolazione Simulazione del Funzionamento // Calcolo della superficie del cerchio #include <iostream> using namespace std; int main() { // Dichiarazioni const float pigreco=3.14; int raggio; float circonf, cerchio; // Operazioni cout << “Immetti la lungh. del raggio” << endl; cout << “(deve essere un numero intero)” << endl; cin >> raggio; cerchio = raggio * raggio * pigreco; circonf = 2 * raggio * pigreco; cout << “La circonferenza misura: “ << circonf << endl; cout << “Il cerchio ha superficie: “ << cerchio << endl; return 0; } Memoria RAM ... #1000 pigreco 3.14 #1001 raggio 10 xxx #1002 circonf 62.8 xxx #1003 cerchio 314.0 xxx #1004 ... Schermo Immetti la lungh. del raggio (deve essere un numero intero) _10 La circonferenza misura: 62.8 Il cerchio ha superficie: 314.0 G. Mecca - Programmazione Procedurale

Errori Frequenti Di seguito In particolare 09/12/2019 Elementi di Base: Conclusioni >> Errori Frequenti Errori Frequenti Di seguito alcuni errori sintattici molto frequenti In particolare punti e virgola mancanti expected “;” before… costanti o variabili non dichiarate “…” was not declared in this scope errori nella scelta degli identificatori G. Mecca - Programmazione Procedurale

Errori Frequenti In caso di codice scorretto sintatticamente 09/12/2019 Elementi di Base: Conclusioni >> Errori Frequenti Errori Frequenti In caso di codice scorretto sintatticamente il compilatore restituisce messaggi per segnalare gli errori Esempio: errore frequente punto e virgola mancante prova.cpp 16: 4 error: expected “;” before …. nome del file descrizione dell’errore (punto e virgola mancante) numero di riga codice di errore G. Mecca - Programmazione Procedurale

Errori Frequenti Un altro errore frequente 09/12/2019 Elementi di Base: Conclusioni >> Errori Frequenti Errori Frequenti Un altro errore frequente utilizzare una variabile non dichiarata es: raggio int main() const float pigreco = 3.14; float cerchio, circonf; cout << “Immetti la lungh. del raggio” << endl; cin >> raggio; cerchio.cpp 15:11: error : 'raggio' was not declared in this scope G. Mecca - Programmazione Procedurale

Errori Frequenti Errori nella scelta degli identificatori 09/12/2019 Elementi di Base: Conclusioni >> Errori Frequenti Errori Frequenti Errori nella scelta degli identificatori altra fonte di errori sono i caratteri speciali (codice ASCII superiore a 127) es: int capCittà; prova.cpp :5:4: error: stray ‘\340’ in program G. Mecca - Programmazione Procedurale

Errori Frequenti Errori nella scelta degli identificatori es: spazi 09/12/2019 Elementi di Base: Conclusioni >> Errori Frequenti Errori Frequenti Errori nella scelta degli identificatori es: spazi es: int lung raggio; cerchio.cpp :9:13: error: expected initializer before ‘raggio’ lung raggio = 1; cerchio.cpp :11:4: error: ‘lung’ was not declared in this scope cerchio.cpp :11:9: error: expected ‘;’ before ‘raggio’ NOTA: in questo caso il messaggio non è del tutto accurato G. Mecca - Programmazione Procedurale

Errori Frequenti NOTA BENE Numero di linea Inoltre 09/12/2019 Elementi di Base: Conclusioni >> Errori Frequenti Errori Frequenti NOTA BENE purtroppo non sempre i messaggi di errore sono completamente affidabili nella descrizione e nel numero di linea Numero di linea l’errore può essere alla linea segnalata oppure in una delle linee precedenti Inoltre a volte un errore singolo può generare molti messaggi di errore diversi G. Mecca - Programmazione Procedurale

Errori Frequenti: Esempio 09/12/2019 Elementi di Base: Conclusioni >> Errori Frequenti Errori Frequenti: Esempio // cerchioErrori.cpp #include <iostream> using namespace std; int main() const float pigreco = 3.14; int raggio; float cerchio, circonf; cout << “Immetti la lungh. del raggio” << endl; cout << “(deve essere un numero intero)” << endl; cin >> raggio; cerchio = raggio * raggio * pigreco; circonf = 2 * pigreco * raggio; cout << “La circonferenza misura: “ << circonf << endl; cout << “Il cerchio ha superficie: “ << cerchio << endl; return 0; } parentesi mancante G. Mecca - Programmazione Procedurale

\progProc\cpp>g++ cerchio.cpp 09/12/2019 Elementi di Base: Conclusioni >> Errori Frequenti \progProc\cpp>g++ cerchio.cpp cerchio.cpp:8:10: error: expected initializer before 'float' cerchio.cpp:12:4: error: 'cout' does not name a type cerchio.cpp:13:4: error: 'cout' does not name a type cerchio.cpp:14:4: error: 'cin' does not name a type cerchio.cpp:15:4: error: 'cerchio' does not name a type cerchio.cpp:16:4: error: 'circonf' does not name a type cerchio.cpp:17:4: error: 'cout' does not name a type cerchio.cpp:18:4: error: 'cout' does not name a type cerchio.cpp:19:4: error: expected unqualified-id before 'return' cerchio.cpp:20:1: error: expected declaration before '}' token G. Mecca - Programmazione Procedurale

Errori Frequenti Di conseguenza, valgono le regole 09/12/2019 Elementi di Base: Conclusioni >> Errori Frequenti Errori Frequenti Di conseguenza, valgono le regole a) analizzare i messaggi di errore uno ad uno iniziando dal primo b) dopo aver eliminato ciascun errore, ricompilare e verificare gli ulteriori errori c) per eliminare un errore, cercare di capire il messaggio di errore d) ispezionare subito la linea segnalata e) successivamente ispezionare le linee precedenti alla caccia di possibili cause G. Mecca - Programmazione Procedurale

09/12/2019 Elementi di Base: Conclusioni >> Esercizio Esercizio Scrivere un programma in linguaggio C++ che calcola il numero di pollici di un televisore data la misura della base e dell’altezza dello schermo in centimetri. Nota: 1 pollice = 2.54 cm d h b G. Mecca - Programmazione Procedurale

Riassumendo Elementi di base Ansi C++ Simulazione del programma 09/12/2019 Elementi di Base: Conclusioni >> Sommario Riassumendo Elementi di base tipi, costanti, variabili istruzioni di assegnazione ed espressioni istruzioni di lettura e stampa Ansi C++ Simulazione del programma Errori frequenti G. Mecca - Programmazione Procedurale

09/12/2019 Termini della Licenza Termini della Licenza This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. Questo lavoro viene concesso in uso secondo i termini della licenza “Attribution-ShareAlike” di Creative Commons. Per ottenere una copia della licenza, è possibile visitare http://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una lettera all’indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. G. Mecca - Programmazione Procedurale