Upload
aaron-barton
View
68
Download
0
Embed Size (px)
DESCRIPTION
C: miti e realtà. Marco D. Santambrogio – [email protected] Ver. aggiornata al 8 Marzo 2013. Obiettivi. La struttura di un programma C Teorema di B ö hm e Jacopini La calcolatrice. Struttura di un programma C. parte dichiarativa globale. parte dichiarativa locale. - PowerPoint PPT Presentation
Citation preview
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
C: miti e realtàC: miti e realtà
Marco D. Santambrogio – [email protected]. aggiornata al 8 Marzo 2013
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
ObiettiviObiettivi
• La struttura di un programma C• Teorema di Böhm e Jacopini• La calcolatrice
2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
3
Struttura di un Struttura di un programma Cprogramma C
inclusione librerie / per poter invocare funzioni utili (i/o, ...) /dichiarazione di variabili globali e funzioni
int main ( ) {
dichiarazione di variabili locali
istruzione 1; / tutti i tipi di operazioni, e cioè: /istruzione 2; / istr. di assegnamento / istruzione 3; / istr. di input / output /istruzione 4; / istr. di controllo (condizionali, cicli) /...istruzione N;
}
parte esecutiva
parte dichiarativa locale
parte dichiarativa globale
Ogni programma C deve contenere un modulo int main() {...}
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
4
• Parte dichiarativa: contiene le dichiarazioni degli elementi del programma Dati, ed eventualmente funzioni (ma solo nella parte
globale)
• Parte esecutiva: contiene le istruzioni da eseguire, che ricadono nelle categorie: Istruzioni di assegnamento () Strutture di controllo:• Condizionali (if-then-else e switch)• Iterative, o cicli (while, do e for)
Istruzioni di Input/Output (printf, scanf, ...)
Struttura di un Struttura di un programma Cprogramma C
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
5
Istruzioni semplici e Istruzioni semplici e compostecomposte
• Sequenze di istruzioni semplici Ogni istruzione semplice termina con ; ; è detto il “terminatore” dell’istruzione
• Si possono raggruppare più istruzioni in sequenza tra { e } a costituire un blocco Il blocco costituisce una “super-istruzione”
• Non è necessario il ; dopo }, in quanto il blocco è già una istruzione e non necessita del terminatore per
diventarla
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
6
Esecuzione degli Esecuzione degli assegnamentiassegnamenti
• valutazione dell’espressione che compare a destra del simbolo =
il valore delle variabili che vi compaiono si trova memorizzato nelle celle corrispondenti, e da lì è letto
• memorizzazione del risultato dell'espressione nella variabile a sinistra del simbolo =
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
7
x = 23;w = 'a';y = z;alfa = x + y;r3 = ( alfa * 43 – xgg ) * ( delta – 32 * j );x = x + 1;
Abbreviazioni (operatori di assegnamento):
a = a + 7; a = a * 5; a = a + 1; a = a - 1;a += 7; a *= 5; ++a; --a;
Esempi di assegnamentoEsempi di assegnamento
Istruzioni della forma variabile = variabile operatore espressione;si possono scrivere come: variabile operatore = espressione;
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
8
• Operatori aritmetici in C: * per la moltiplicazione e / per la divisione La divisione tra interi elimina il resto (quoziente):
13 / 5 è uguale a 2 L’operatore modulo calcola il resto della
divisione: 13 % 5 è uguale a 3
• Precedenza degli operatori: Come in aritmetica, moltiplicazione e divisione
hanno priorità su addizione e sottrazione• si usano le parentesi quando c’è ambiguità
Per esempio: la media aritmetica di a, b, c: a + b + c / 3 NO !!!! (a + b + c ) / 3 SI
Aritmetica (1/2)Aritmetica (1/2)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
9
Aritmetica (2/2)Aritmetica (2/2)Operazione Operatore C Espressione
aritmeticaEspressione C
Addizione + f+7 f + 7Sottrazione - p-c p – cMoltiplicazione * bm b * mDivisione / x/y x / yModulo % r mod s r % s
Operatori C Operazioni Precedenza
( ) Parentesi Valutate per prime. Se ci sono degli annidamenti, si valuta prima la coppia più interna. Se ci sono più coppie allo stesso livello, si valuta da sinistra a destra.
* , / , % Moltiplicazione, Divisione, Modulo
Valutate per seconde. Se ce ne sono diverse, si valutano da sinistra a destra.
+ , – Addizione, Sottrazione
Valutate per ultime. Se ce ne sono diverse, si valutano da sinistra a destra.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
10
Teorema di BTeorema di Bööhm e hm e JacopiniJacopini• Tutti i programmi possono essere scritti
in termini di tre strutture di controllo: Sequenza: istruzioni eseguite in ordine
Selezione: istruzioni che permettono di prendere strade diverse in base a una condizione (costrutto di tipo se-allora)
Iterazione: istruzioni che permettono di eseguire ripetutamente un certo insieme di altre istruzioni (costrutti di tipo fintantoché)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
11
SequenzaSequenza
int main(){ int integer1, integer2, sum; printf (”Inserisci il primo valore\n"); scanf ("%d", &integer1 ); printf (”Inserisci il secondo valore\n"); scanf ("%d", &integer2);
sum = integer1 + integer2;
printf ("\nLa somma e’ %d\n\n", sum );
return 0;}
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
La calcolatrice?La calcolatrice?
12
Umh….Meglio!
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
La calcolatrice!La calcolatrice!
• Problema Si scriva un programma in C che, dati
due numeri, permette all’utente di calcolarne la somma, sottrazione, moltiplicazione, e la divisione tra essi• L’utente, per ogni coppia di numeri inseriti,
potrà eseguire una e una sola operazione
La calcolatrice potrà essere utilizzata più volte e… • ammettere l’operazione di sommatoria per un numero variabile, deciso dall’utente, di valori
13
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Fonti per lo studio + Fonti per lo studio + CreditsCredits• Fonti per lo studio
Informatica arte e mestiere, S. Ceri, D. Mandrioli, L. Sbattella, McGrawHill• Capitolo 6
• Credits
Daniele Braga - http://home.dei.polimi.it/braga/