Informatica 2
Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore (linguaggio di programmazione) Un algoritmo scritto in un linguaggio di programmazione si chiama programma Illustreremo esempi di programmi con un linguaggio di esempio: il C++
Variabili Le variabili in un programma rappresentano delle zone fisse (fisse almeno durante lesecuzione del programma) in cui vengono conservati dati di interesse per un programma Una variabile deve essere dichiarata prima di essere utilizzata: int x; (si dichiara una variabile x destinata a contenere un dato di tipo intero) int y = 3; (in questo caso viene anche specificato il valore iniziale, ossia si ha una inizializzazione)
Istruzioni Le dichiarazioni e le inizializzazioni delle variabili sono casi particolari di istruzioni Un programma è costituito da una sequenza di istruzioni separate da un punto e virgola (;) Le istruzioni possono essere raggruppate in blocchi, racchiusi da parentesi graffe { } Tipi possibili di istruzioni: – dichiarazioni, inizializzazioni, assegnamenti, modifiche di variabili – istruzioni di input e output (cin, cout) – costrutti condizionali (if, if-else) – cicli condizionali (while, do-while) – cicli iterativi (for)
Assegnamenti e modifiche di variabili x = y; (il valore di y viene copiato in x) x = x + z + 6; (al valore vecchio di x vengono sommati il valore di z e il numero 6) x++; (equivalente a x = x + 1; ) x--; (equivalente a x = x – 1; ) tutte le principali operazioni aritmetiche sono disponibili nel linguaggio: somma (+), sottrazione (-), prodotto (*), divisione intera (/), resto della divisione intera o modulo (%) etc.
Istruzioni di input e output Unistruzione di input pone il calcolatore in attesa di un valore che lutente immette tipicamente tramite la tastiera, e specifica anche la variabile in cui questo valore viene salvato: cin >> x; Unistruzione di output visualizza su schermo il valore contenuto in una variabile oppure il valore di una espressione: cout << y; cout << (x + y)/2;
Costrutto If If (condizione) istruzione_1; istruzione_2; Questo codice funziona così: condizione? istruzione_1 istruzione_2 no sì
Costrutto If-else If (condizione) istruzione_1; else istruzione_2; Il codice funziona così: condizione? istruzione_1 istruzione_2 no sì
Condizioni Una condizione è una descrizione formale di una situazione che può essere vera oppure falsa. Tipicamente si tratta di confronti tra variabili e espressioni: x == y (attenzione ai due =, diversi dallassegnamento che ne ha uno solo) x > 5 z != x + y -10 (!= vuol dire diverso da)
Operatori logici Le condizioni si possono comporre per mezzo di operatori logici: && (and, congiunzione), || (or, disgiunzione), ! (not, negazione) Ad esempio: (x!=y)||((x==y)&&!(x>5)) è una condizione composta che è vera quando x è diverso da y oppure x è uguale a y e non è maggiore di 5. Lordine di valutazione degli operatori, se non viene modificato per mezzo delle parentesi, è: prima !, poi &&, e infine ||. Nellesempio, quindi, le parentesi intorno alla congiunzione sono in realtà inutili.
Una nota sugli else if (condizione_1) if (condizione_2) istruzione_a; else istruzione_b; Quando viene eseguita listruzione_b? A quale if si riferisce lelse? Al primo disponibile risalendo il codice, quindi listruzione_b viene eseguita quando condizione_1 è vera e condizione_2 è falsa.
Ciclo while while (condizione) istruzione; Il codice funziona così: condizione? istruzione no sì
Ciclo do-while do istruzione; while (condizione); Il codice funziona così: Rispetto al ciclo while, anche se la condizione è falsa listruzione (o il blocco di istruzioni) viene eseguita almeno una volta condizione? istruzione no sì
Ciclo for for (inizializzazione; condizione; modifica) istruzione; condizione? inizializzazione no sì istruzione modifica
Esempio di ciclo for Per riempire di 0 un vettore v di 8 interi: int v[8]; int i; for (i=0; i < 8; i++) v[i] = 0; 0 00…