Lezione I Alessandro Dal Palu’ Laboratorio di Programmazione
I Files Hard Disk ( C: )
File1 File2 File3 I Files Hard Disk ( C: ) Cartella1 Cartella3 Cartella2
Todo.txt Prova Read.me I Files Hard Disk ( C: ) Lavoro Musica Immagini
Programmi Todo.txt Prova Read.me I Files Hard Disk ( C: ) Lavoro Musica Immagini Programmi Lezione Parma Index.html ciao.c
Todo.txt Prova Read.me I Files Hard Disk ( C: ) Lavoro Musica Immagini -> Prepara lucidi Fai la spesa....
Debugger La programmazione Editor Programma sorgente (es. prova.c) Compilatore Programma assembler (es. prova.asm) Assemblatore Programma oggetto (es. prova.obj) Programma eseguibile (es. prova.exe) Programma in memoria CPU Linker Librerie (es. iostream.lib) statiche Loader dinamiche
Debugger Ambiente di sviluppo (JFE,…) Editor Compilatore Assemblatore Linker Loader L’ambiente di sviluppo integra i componenti per la creazione di codice eseguibile a partire dal listato del programma.
Programma Input e output Dati di input Dispositivo di input (Tastiera) Dispositivo di output (Monitor) Dati di output
Input e output in C Funzioni predefinite (o di libreria) per Stream di Input (lettura) Stream di Output (scrittura) Stream ProducerConsumer Tastiera File Monitor Programma
Streams formattati In base al tipo di dato che scorre sullo stream, viene cambiata la formattazione. Es. Il char ‘A’ e l’int 65 in memoria sono rappresentati allo stesso modo, ma vengono convertiti diversamente sullo stream!
Lettura di uno stream >> operatore di estrazione per operazioni di lettura (input) (contenuto nella libreria di funzioni ) Sintassi: stream_utilizzato >> variabile_tipata Semantica: legge da stream_utilizzato (o attende finchè arrivano i dati) e assegna la lettura alla variabile_tipata Esempio: int x; cin >> x; cin è lo stream standard di input (tastiera)
Lettura di uno stream Esempio: int x,y; cin >> x >> y; Cascata di letture in ordine da Sinistra a Destra Stream cin: … x = ? y = ?
Lettura di uno stream Esempio: int x,y; cin >> x >> y; Cascata di letture in ordine da Sinistra a Destra 3 Stream cin: … x = 3 y = ? x Il numero 3 è consumato dallo stream
Lettura di uno stream Esempio: int x,y; cin >> x >> y; Cascata di letture in ordine da Sinistra a Destra Stream cin: … x = 3 y = 5 x Le prossime letture partiranno dal numero 1. x
Tipo di dato letto Esempio: int x; cin >> x; cin = -1 x = -1 Esempio: char x,y; cin >> x >> y; x = ‘-’ y = ‘1’ cin = -1
Scrittura di uno stream << operatore di inserimento per operazioni di scrittura (output) (contenuto nella libreria di funzioni ) Sintassi: stream_utilizzato << espressione_tipata Semantica: immette sullo stream_utilizzato la valutazione della espressione_tipata Esempio: int x=1; cout << x; cout è lo stream standard di output (monitor)
Scrittura di uno stream Esempio: int x=1; int y=2; cout << x + y; Stream cout: 3 Esempio con cascata di scritture (associativo a sinistra): int x=1; int y=2; cout << x << ‘ ’ << y << endl << x + y << endl; Stream cout: endl dà il comando di inviare un “a capo” sullo stream
Esempio di programma #include //programma di esempio int main() { int x,y,z; float m; cout << "dammi 3 numeri interi" << endl; cin >> x >> y >> z; m = (x + y + z) / 3.0; cout << "la media e' " << m; return(0); } Libreria per i/o Dichiarazione variabili Valore di uscita Corpo del prog Commento
Diramazioni if..else If (E) S1; S1 E = vero? If (E) S1; else S2; S2 E = vero? SI NO S1 SINO
Diramazioni if..else If (E) { // statement composto S1; S2; } S1 E = vero? SI NO S2 If (E) S1; S2; S1 E = vero? SI NO S2
Diramazioni if..else if (E1) S1; else if (E2) S2; else S3; S4; S1 E1 vero? SI NO S2 E2 vero? SI NO S3 S4
Programma di esempio Cout = x == y ? SI max = x x >= y ? cout max #include int main() { int x,y,max; cout << "DAMMI IL PRIMO INTERO: "; cin >> x; cout << "DAMMI IL SECONDO INTERO: "; cin >> y; if (x==y) cout << "I DUE NUMERI SONO UGUALI"; else { if (x>=y) max=x; else max=y; cout << "IL MAGGIORE E': "; cout << max; } return 0; } max = y SI NO return cin x y