La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Linguaggio C++ A.Lorenzi – V. Moriggia C++. TEORIA E AMBIENTE DI PROGRAMMAZIONE Atlas Copyright © Istituto Italiano Edizioni Atlas.

Presentazioni simili


Presentazione sul tema: "Linguaggio C++ A.Lorenzi – V. Moriggia C++. TEORIA E AMBIENTE DI PROGRAMMAZIONE Atlas Copyright © Istituto Italiano Edizioni Atlas."— Transcript della presentazione:

1 Linguaggio C++ A.Lorenzi – V. Moriggia C++. TEORIA E AMBIENTE DI PROGRAMMAZIONE Atlas Copyright © Istituto Italiano Edizioni Atlas

2 Il programma C++ Un programma in C++ per la somma di due numeri // Somma.cpp: somma di due numeri #include using namespace std; int main() { int a, b, s; cin >> a; cin >> b; s = a + b; cout << s; return 0; } // Somma.cpp: somma di due numeri #include using namespace std; int main() { int a, b, s; cin >> a; cin >> b; s = a + b; cout << s; return 0; }

3 Input e output standard cin>> indica la lettura dei dati (input) s = a + b specifica che il risultato deve essere assegnato alla variabile s cout<< ordina la visualizzazione del risultato (output) cin >> a; cin >> b; s = a + b; cout << s ; cin >> a; cin >> b; s = a + b; cout << s ;

4 Tipi di dati numerici I principali tipi standard delle variabili sono:

5 Costanti e variabili Le variabili devono essere dichiarate indicando il tipo e il nome: tipo nome; Le costanti vengono dichiarate attraverso la parola chiave const: const tipo nome = valore; const double PIGRECO = 3.14; const int SCONTO = 20; const double PIGRECO = 3.14; const int SCONTO = 20; int anni; float statura; int anni; float statura;

6 Le frasi di commento Le frasi di commento iniziano con i delimitatori // I commenti possono essere posti all’inizio di una nuova riga oppure accanto ad un’istruzione: int eta; // età di una persona

7 Istruzione di assegnazione L’istruzione di assegnazione ha una sintassi del tipo: variabile = valore; Il valore viene assegnato alla variabile scritta a sinistra del simbolo = area = raggio * raggio * 3.14; nome = " Rossi " ;

8 Operatori di assegnamento

9 Il casting L’operatore cast è rappresentato da una coppia di parentesi tonde che racchiudono il tipo di dato: (tipo) espressione; Il casting è l’azione che consente di trasformare la rappresentazione di un dato dal suo tipo originale a un altro. b = (int) a;

10 Gli operatori di relazione e logici Simboli per indicare gli operatori di confronto : I connettivi logici che possono essere utilizzati: && indica l’operazione di congiunzione (And) || indica l’operazione di disgiunzione (Or) ! indica la negazione (Not).

11 Istruzioni di input e output cin >> indica un’operazione sullo standard input cout << indica un’operazione sullo standard output cin >> raggio; cout << area;

12 Fasi del lavoro di programmazione Il risultato della fase di codifica si chiama programma sorgente; i file hanno l’estensione.cpp. consiste nel tradurre il programma sorgente in un programma oggetto, attraverso il compilatore. il programma, linker, effettua il collegamento tra il programma oggetto e le librerie del linguaggio necessarie per l’esecuzione del programma. viene creato il file eseguibile con l’estensione.exe. codifica linking compilazione exe

13 Errori di programmazione non sono state rispettate le regole per la costruzione corretta delle frasi del linguaggio. è stata utilizzata una parola che non esiste nel dizionario del linguaggio C++. blocca l’avanzamento del processo di elaborazione. riguarda la correttezza dell’algoritmo. Per individuarlo si utilizza il debugger. errore sintattico errore di run-time errore lessicale errore logico

14 Importanza della documentazione Alcuni accorgimenti per una buona documentazione: usare per le variabili nomi significativi; esplicitare quali sono i tipi previsti per i dati; utilizzare le strutture di controllo; organizzare i programmi in modo strutturato; inserire frequenti frasi di commento; effettuare prove di esecuzione; fornire un manuale per l’utente.

15 La sequenza La sequenza si rappresenta costruendo un blocco di istruzioni delimitato da una coppia di parentesi graffe { … }. #include using namespace std; int main() { int num1, num2, differenza; cout << "Due numeri: "; cin >> num1 >> num2; differenza = num1 - num2; cout << "Risultato = " << differenza << endl; return 0; }; #include using namespace std; int main() { int num1, num2, differenza; cout << "Due numeri: "; cin >> num1 >> num2; differenza = num1 - num2; cout << "Risultato = " << differenza << endl; return 0; };

16 La struttura di alternativa Per la selezione si usa l’istruzione if che ha la seguente sintassi: if (condizione) { istruzioni-a; } else { istruzioni-b; } if (condizione) { istruzioni-a; } else { istruzioni-b; }

17 Strutture annidate di alternativa Dopo la condizione o dopo else, può essere presente un gruppo di istruzioni, contenente a sua volta altre strutture if interne alla struttura più esterna. if (condizione1) istruzioni-a; else if (condizione2) istruzioni-b; else istruzioni-c; if (condizione1) istruzioni-a; else if (condizione2) istruzioni-b; else istruzioni-c;

18 La struttura di ripetizione La struttura di ripetizione si rappresenta con l’istruzione do … while do { istruzioni; } while (condizione); do { istruzioni; } while (condizione);

19 Ripetizione precondizionale La ripetizione precondizionale si rappresenta con l’istruzione while. while (condizione) { istruzioni; } while (condizione) { istruzioni; }

20 Ripetizione con contatore La struttura di ripetizione con contatore viene rappresentata con la struttura for. for (int i=min; i<=max; i++) { istruzioni; } for (int i=min; i<=max; i++) { istruzioni; }

21 Struttura di scelta multipla La struttura di scelta multipla è realizzata dall’istruzione switch. switch(variabile) { case valore1: istruzioni1; break; case valore2: istruzioni2; break;... case valoren: Istruzionin; break; default: istruzioni; break; } switch(variabile) { case valore1: istruzioni1; break; case valore2: istruzioni2; break;... case valoren: Istruzionin; break; default: istruzioni; break; }

22 Funzioni La sintassi generale di una funzione è: Una funzione è un procedimento che riceve valori come argomenti in ingresso e restituisce un valore come risultato. tipo di dato restituito nome funzione (elenco parametri) { istruzioni; return valore restituito; } tipo di dato restituito nome funzione (elenco parametri) { istruzioni; return valore restituito; }

23 Funzioni Se il tipo restituito dalla funzione non è specificato si assume per default il tipo int. Se si vuole invece che la funzione non restituisca alcun valore, specificare il tipo void.

24 Funzioni con parametri le variabili indicate nell’intestazione della funzione si chiamano parametri formali; le variabili che forniscono i valori ai parametri si chiamano parametri attuali. L’operazione, con la quale il main (o un’altra funzione chiamante) invia i valori alla funzione, assegnandoli ai parametri, si chiama passaggio di parametri.

25 Passaggio di parametri il passaggio di parametri per valore avviene indicando nell’intestazione della funzione il tipo e il nome di ciascun parametro formale. per indicare il passaggio di un parametro per referenza, si deve aggiungere il carattere & subito dopo la dichiarazione del tipo del parametro.

26 Dichiarazione dei prototipi di funzione Per una migliore organizzazione dei programmi: dichiarazione delle funzioni per mezzo dei loro prototipi; va posta in testa al programma stesso. Questa dichiarazione si chiama prototipo della funzione. definizione (o implementazione) delle funzioni; viene posta dopo la funzione main.

27 Risorse globali e locali In un programma si possono distinguere: variabili globali, che vengono dichiarate all’inizio del programma e che possono essere usate dal programma principale e da tutte le funzioni; variabili locali, che vengono dichiarate all’interno della funzione che le utilizza e che non sono visibili alle altre funzioni (main compreso).

28 Regole di visibilità Ogni ambiente vede le proprie risorse locali quelle definite all’esterno e che precedono l’ambiente stesso.

29 Funzioni predefinite Esempi di funzioni built-in della libreria cmath: pow, exp, sqrt, log, log10 sin, cos, tan Funzioni predefinite (built-in): sono funzioni che possono essere usate dal programmatore senza dichiarazione. Tali funzioni sono richiamabili inserendo all’inizio del programma la direttiva #include. #include

30 Namespace e librerie di inclusione namespace (spazio dei nomi) è un raggruppamento di dati e di funzioni che hanno tra loro un nesso logico namespace spazioglobale1 { // esempi di variabili e funzioni globali int totale; int Calcolo(int a, int b); } namespace spazioglobale1 { // esempi di variabili e funzioni globali int totale; int Calcolo(int a, int b); }

31 Namespace e librerie di inclusione Per un impiego permanente di tutte le componenti di un namespace si deve utilizzare il comando using namespace. using namespace spazioglobale1;..... cout << totale << endl; using namespace spazioglobale1;..... cout << totale << endl;

32 Function overloading Function overloading consente di definire due funzioni con lo stesso nome che differiscono tra loro solamente per l’elenco dei parametri. Function overloading consente di definire due funzioni con lo stesso nome che differiscono tra loro solamente per l’elenco dei parametri. float pow (float, float); long double pow (long double, long double); float pow (float, float); long double pow (long double, long double);

33 Funzioni ricorsive Con il termine ricorsione (o ricorsività) si indica la possibilità che una funzione ha di chiamare se stessa, cioè la chiamata della funzione è contenuta all’interno della funzione stessa.

34 Enumerazioni La sintassi è la seguente: enum identificatore {lista delle costanti}; Le enumerazioni sono una serie di valori interi che vengono associati a nomi di costanti, dichiarate attraverso la parola chiave enum. enum Lista {C1, C2, C3, C4}; enum SecondoTrimestre {APR=4, MAG=5, GIU=6};

35 Array In matematica con il termine vettore si fa riferimento agli array a una dimensione. L’array è un insieme di elementi omogenei tra loro. Con una variabile possiamo indicare solo un dato, con l’array possiamo indicare tanti dati dello stesso tipo con un solo nome collettivo di variabile: l’identificatore dell’array. Gli elementi si distinguono uno dall’altro attraverso l’indice che viene assegnato nell’array, e che viene posto accanto all’identificatore dell’array.

36 Array Un array si definisce con la seguente dichiarazione: tipo NomeArray[dimensione]; Quando un array viene passato come parametro ad una funzione, in realtà viene passata la locazione (cioè l’indirizzo) della prima componente dell’array. double coeff[10];

37 Array a due dimensioni Viene così definita: tipo NomeMatrice[N][M]; La matrice (o array a due dimensioni) è un insieme di elementi dello stesso tipo che sono in corrispondenza biunivoca con un insieme di coppie ordinate di numeri interi, che rappresentano rispettivamente il numero della riga e il numero della colonna della matrice. const int MAX = 20; int matrice1[MAX][MAX]; const int MAX = 20; int matrice1[MAX][MAX];

38 Strutture La struttura serve a contenere dati di tipo diverso. Viene dichiarata con la parola chiave struct. struct NomeStruttura { tipo1 campo1; tipo2 campo2; tipo3 campo3; }; struct NomeStruttura { tipo1 campo1; tipo2 campo2; tipo3 campo3; };

39 Puntatori è possibile creare un puntatore scrivendo il carattere * (asterisco o star) accanto al tipo. Una variabile di tipo puntatore contiene l’indirizzo di memoria di un’altra variabile. int* puntatore; char* s; struct data* ricorrenza; int* puntatore; char* s; struct data* ricorrenza;

40 Puntatori Per conoscere l’indirizzo di memoria di una variabile si usa l’operatore &. Per accedere alla memoria puntata da un puntatore si usa l’operatore *. int num; int* pInteri; pInteri = # int num; int* pInteri; pInteri = # int a, b; int* pInteri; a = 5; pInteri = &a; b = *pInteri; cout << b; int a, b; int* pInteri; a = 5; pInteri = &a; b = *pInteri; cout << b;


Scaricare ppt "Linguaggio C++ A.Lorenzi – V. Moriggia C++. TEORIA E AMBIENTE DI PROGRAMMAZIONE Atlas Copyright © Istituto Italiano Edizioni Atlas."

Presentazioni simili


Annunci Google