La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Copyright © Istituto Italiano Edizioni Atlas

Presentazioni simili


Presentazione sul tema: "Copyright © Istituto Italiano Edizioni Atlas"— Transcript della presentazione:

1 Copyright © Istituto Italiano Edizioni Atlas
Linguaggio C++ 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 <iostream> 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 >> a; cin >> b; s = a + b; cout << s ; 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)

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

5 const tipo nome = valore;
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; int anni; float statura; const double PIGRECO = 3.14; const int SCONTO = 20;

6 Le frasi di commento int eta; // età di una persona
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 Il casting è l’azione che consente di trasformare la rappresentazione di un dato dal suo tipo originale a un altro. L’operatore cast è rappresentato da una coppia di parentesi tonde che racchiudono il tipo di dato: (tipo) espressione; 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
codifica 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. compilazione linking 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 lessicale errore di run-time 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 <iostream> 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;

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; istruzioni-c;

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

19 Ripetizione precondizionale
La ripetizione precondizionale si rappresenta con l’istruzione while. 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; }

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

22 tipo di dato restituito nome funzione (elenco parametri)
Funzioni Una funzione è un procedimento che riceve valori come argomenti in ingresso e restituisce un valore come risultato. La sintassi generale di una funzione è: 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
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. le variabili indicate nell’intestazione della funzione si chiamano parametri formali; le variabili che forniscono i valori ai parametri si chiamano parametri attuali.

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à le proprie risorse locali
Ogni ambiente vede le proprie risorse locali quelle definite all’esterno e che precedono l’ambiente stesso.

29 Funzioni predefinite #include <cmath>
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. Esempi di funzioni built-in della libreria cmath: pow, exp, sqrt, log, log10 sin, cos, tan #include <cmath>

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); }

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;

32 Function overloading 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);

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

35 Array 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. In matematica con il termine vettore si fa riferimento agli array a una dimensione.

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

37 tipo NomeMatrice[N][M];
Array a due dimensioni 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. Viene così definita: tipo NomeMatrice[N][M]; const int MAX = 20; int matrice1[MAX][MAX];

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

39 Puntatori int* puntatore; char* s; struct data* ricorrenza;
Una variabile di tipo puntatore contiene l’indirizzo di memoria di un’altra variabile. è possibile creare un puntatore scrivendo il carattere * (asterisco o star) accanto al tipo. 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 = &num; int a, b; int* pInteri; a = 5; pInteri = &a; b = *pInteri; cout << b;


Scaricare ppt "Copyright © Istituto Italiano Edizioni Atlas"

Presentazioni simili


Annunci Google