Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
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 –
2
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
3
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
4
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
5
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
6
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
7
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
8
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
9
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
10
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
11
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
12
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
13
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
14
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
15
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
16
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
17
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
18
\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
19
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
20
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
21
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
22
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 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 oppure inviare una lettera all’indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. G. Mecca - Programmazione Procedurale
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.