Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoEdmonda Bonfanti Modificato 9 anni fa
1
Informatica B Allievi Elettrici - AA 2000-01 Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo
2
Istruzioni condizionali Anche in C esiste il costrutto a selezione semplice e quello a selezione doppia: if (espressione) istruzione if (espressione) istruzione1 else istruzione2 In generale: if (espressione) {seq1. di istruzioni} [else {seq2. di istruzioni}] Nota: gli if possono essere nidificati
3
Istruzioni condizionali (selezione semplice) #include /* Calcolo del valore assoluto */ int numero, valass; /*dichiarazione delle variabili*/ main() { printf(“Calcolo Valore Assoluto\n\n”); printf(“Inserisci Numero Intero:”); scanf (“%d”,&numero); /*acquisizione valori */ if (numero < 0) valass = 0-numero; if (numero >= 0) valass = numero; printf(“Numero: %d\n”,numero); /*output */ printf(“Valore assoluto: %d\n”,valass); }
4
Istruzioni condizionali (selezione doppia) #include /* Calcolo del valore assoluto */ int numero, valass; /*dichiarazione delle variabili*/ main() { printf(“Calcolo Valore Assoluto\n\n”); printf(“Inserisci Numero Intero:”); scanf (“%d”,&numero); /*acquisizione valori */ if (numero < 0) valass = 0-numero; else valass = numero; printf(“Numero: %d\n”,numero); /*output */ printf(“Valore assoluto: %d\n”,valass); }
5
Verifica dati d’ingresso (istruzioni composte) #include /* Calcolo dell’area di un triangolo */ int base,altezza,area;/*dichiarazione delle variabili*/ main() { printf(“Area del triangolo\n\n”); printf(“Inserisci Base:”); scanf (“%d”,&base); /*acquisizione valori */ printf(“Inserisci Altezza:”); scanf (“%d”,&altezza);/*input */ if (base>=0 && altezza>=0) {area = (base * altezza)/2; /*caso valori d’ingresso accettabili */ printf(“Base: %d\n”,base); /*output */ printf(“Altezza: %d\n”,altezza); printf(“Area: %d\n”,area);} else printf(“Valori non accettabili”); }
6
Frammento di programma ( if annidati) if(i<100) if(i>0) printf(“\n minore di 100 e maggiore di zero”); else if (i==0) printf(“\n uguale a zero”); else printf(“\n minore di zero”); else if (i==100) printf(“\n uguale a 100”); else printf(“\n maggiore di 100”);
7
Gli operatori Logici: ! (not), &&(and), || (or) Aritmetici e di assegnamento: - (unario), { *, /,% (modulo)}, {+,- (binario)}, = (ass.) Relazionali: {>, >=, <, <=}, {==, !=} Gerarchia generale: {!, - unario}, {*,/,%}, {+,- binario}, {>, >=, <, <=}, {==, !=}, &&, ||, = (ass.)
8
I valori logici (o booleani) Il linguaggio C non mette a disposizione il tipo booleano per esprimere i valori logici Si adoperano gli interi 0 e 1 Tavole di verità: x !x x y x&&y x || y 1 0 1 1 1 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0
9
L’istruzione switch-case Switch(espressione) { case costante1: istruzione1; … break; case costante2: istruzione; … break; … case costanteN: istruzione; … break; }
10
L’istruzione switch-case Switch(espressione) { case costante1: istruzione; … break; case costante2: istruzione; … break; … case costanteN: istruzione; … break; [default: istruzione] } L’espressione deve aver valore int o char; la parola case deve essere seguita da una costante int o char; il break serve per eseguire solo le istruzioni di quel caso; il default serve nei casi non compresi; Si può usare per sostituire l’if annidato: attenzione però al tipo dell’espressione e della costante!!
11
L’istruzione switch-case #include /*esempio uso switch-case*/ int x; main() { printf(“Inserisci la tua scelta\n”); scanf (“%d”,&x); Switch(x) { case 10: printf(“\n dieci”); break; case 20: printf(“\n venti”); break; case 30: printf(“\n trenta”); break; default: printf(“\n errore”); }
12
Istruzioni iterative: ciclo a condizione iniziale 1. Leggi(N) 2. If N < 0 then End 3. S=0 4. I=1 5. while I <= N do 6. { S=S+I 7. I=I+1} 8. Scrivi(“La somma e’” S) 9. End #include /* Somma primi N naturali */ int N, S, I; main() { printf(“Inserisci N:”); scanf (“%d”,&N); /*input */ if N >= 0 {S=0; I=1; while I <= N {S=S+I; I=I+1;} printf(“\nLa somma è %d\n”,S);} }
13
Istruzioni iterative: ciclo a condizione finale #include /* Somma primi N naturali */ int N, S, I; main() { printf(“Inserisci N:”); scanf (“%d”,&N); /*input */ if N > 0 /* Accetto solo N positivo */ {S=0; I=1; do {S=S+I; I=I+1;} while I <= N; /* esce dal ciclo dopo averlo eseguito almeno una volta */ printf(“\nLa somma è %d\n”,S);} }
14
Incrementi e decrementi x = x + 1; ---> ++x; oppure x++; x = x - 1; ---> --x; oppure x--; Esempio: c = ++a + b; significa: a = a + 1; c = a + b; N.B.: nuovo valore di a!! c = a++ + b; significa: c = a + b; N.B.: vecchio valore di a!! a = a + 1;
15
Il costrutto for For(esp1; esp2; esp3) istruzione (o blocco) ----------------------------------------------------------------- #include /* Somma primi N naturali */ int N, S, I; main() { printf(“Inserisci N:”); scanf (“%d”,&N); /*input */ if N > 0 /* Per N positivo */ {S=0; for (I=1; I <= N; I++) /* notare inizio I=1 */ S=S+I; /* la I viene incrementata nella istruzione for stessa */ } printf(“\nLa somma è %d\n”,S);} }
16
Alternativa per N >=0 #include /* Somma primi N naturali */ int N, S, I; main() { printf(“Inserisci N:”); scanf (“%d”,&N); /*input */ if N >= 0 /* Verifica dati d’ingresso */ {S=0; for (I=0; I <= N; I++) /* notare inizio I=0 */ S=S+I; } printf(“\nLa somma è %d\n”,S);} }
17
Calcolo del fattoriale #include /* Calcolo n fattoriale */ main() { int n, fatt, m; printf(“Inserisci n:”); scanf (“%d”,&n); /*input */ if n > 0 /* Verifica dati d’ingresso */ {fatt = n; for (m=n; m>2; m--) /* notare m viene decrementato */ fatt = fatt * (m-1); printf(“\Il fattoriale di %d è:%d\n”,n,fatt); }
18
Calcolo del fattoriale (uso del while) #include /* Calcolo n fattoriale */ main() { int n, fatt, m; printf(“Inserisci n:”); scanf (“%d”,&n); /*input */ if n > 0 /* Verifica dati d’ingresso */ {fatt = n; m=n; /* esp 1 */ while m>2 /* esp 2 */ {fatt = fatt * (m-1); m-- } /* esp 3 */ printf(“\Il fattoriale di %d è:%d\n”,n,fatt); }
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.