Elementi di Informatica a.a. 2016/17 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
66 Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio
C - Strutture di controllo
while (<condizione>) {
<istruzioni>;
} Cicli iterativi
<Istruzione/i> sarà eseguito tante volte fintantoché <condizione> risulta vera
N.B. < condizione> è un’espressione di tipo intero (in C non esiste il tipo logico) ed essa è verificata se ha un valore diverso da zero
a condizione iniziale while (<condizione>)
<istruzione>;
67 Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio
#include <stdio.h>
main () {
int Num;
printf( "immetti un numero \n”);
scanf(“%d” , &Num);
while (Num<=100) Num=Num+10;
printf ( ”Numero= %d \n”, Num);
}
Esempio Ciclo while
Elementi di Informatica a.a. 2016/17 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
68 Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio
C - Strutture di controllo
do {
<istruzioni>;
}
while <condizione>;
Cicli iterativi
<Istruzione/i> sarà eseguito tante volte fintantoché <condizione> risulta vera
N.B. < condizione> è un’espressione di tipo intero (in C non esiste il tipo logico) ed essa è verificata se ha un valore diverso da zero
a condizione finale do
<istruzione>;
while <condizione>;
69 Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio
#include <stdio.h>
main () {
int Num;
printf( "immetti un numero \n”);
scanf(“%d” , &Num);
do
Num=Num+10;
while (Num <=100);
printf ( ”Numero= %d \n”, Num);
}
Esempio Ciclo do … while
Elementi di Informatica a.a. 2016/17 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
70 Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio
C - Strutture di controllo
Ciclo ripetitivo (a conteggio)
for (<espressione1>; <condizione>; <espressione2>) <istruzione>;
for (<espressione1>; <condizione>; <espressione2>) {
<istruzioni>;
}
<espressione1>: è l’espressione usata per inizializzare la variabile di controllo del ciclo
<condizione>: è l’espressione logica per verificare la terminazione del ciclo
<espressione2>: è l’espressione usata per determinare il passo di incremento della variabile di controllo
Es:
for (i=1; i<100; i++) printf(“%d “, i);
71 Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio
#include <stdio.h>
main () {
int Num;
printf( "immetti un numero \n”);
scanf(“%d” , &Num);
for (i=1;i<=10;i++)
printf ( “%d \n”, Num*i);
}
Esempio Ciclo for
Elementi di Informatica a.a. 2016/17 - Prof. G.A. Di Lucca
Dipartimento di Ingegneria - Univ. del Sannio - CdL Ingegneria Energetica
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 72
Operatore di cast in C
Il linguaggio C permette di forzare una variabile di un tipo ad essere una variabile di un'altro tipo utilizzando l'operatore cast "( )".
Il costrutto cast ha la seguente sintassi:
(<nome tipo da forzare>) <espressione>
Esempio:
float numero_reale = 7.234;
int numero = 8;
float altro_reale;
numero=(int) numero_reale; /* forza il tipo di numero_reale ad essere int ed assegna il valore 7 (parte intera) a numero*/
altro_reale=(float ) numero /* assegna 7.0 (valore float) ad altro_reale */
Elementi di Informatica
Prof. G. A. Di Lucca - Univ. del Sannio 73
Operatore di cast in C
Alcune operazioni di cast di tipo sono fatte automaticamente, principalmente in relazione alle capacità dei numeri interi.
E' opportuno eseguire esplicitamente operazioni di cast tutte le volte che si ha un dubbio sulla corrispondenza tra i tipi in operazioni di calcolo ed
assegnazione.
E’ il caso delle divisioni: se abbiamo la divisione tra due numeri interi e vogliamo che il risultato sia un numero reale, allora deve essere eseguito il cast sui due numeri interi.
Esempio:
int dividendo= 13, divisore = 4;
float risultato;
risultato = (float) dividendo / (float) divisore;
… sarà: risultato = 3.25
… e non risultato = 3.0 come risulterebbe dalla divisione intera:
risultato = dividendo / divisore;