Sei sulla pagina 1di 89

Corso di Fondamenti di Informatica

Ingegneria delle Comunicazioni – BCOR


Ingegneria Elettronica – BELR

Introduzione al C
Demo: Cicli

Claudio Ciccotelli
Sommario
• Cicli definiti:
– for
– while
– do while
• Cicli indefiniti
– while
– do while
– for

Demo: Cicli 2014/2015 Pagina 2


Ciclo definito - for

int i;

for (i = 0; i < 3; i++) {


printf("%d\n", i);
}

Demo: Cicli 2014/2015 Pagina 3


console

for (i = 0; i < 3; i++) {


printf("%d\n", i);
}

Demo: Cicli 2014/2015 Pagina 4


console

i 0

Inizializzazione
for (i = 0; i < 3; i++) {
printf("%d\n", i);
}

Demo: Cicli 2014/2015 Pagina 5


console

i 0

Condizione (pre iterazione 1)


for (i = 0; i < 3; i++) {
printf("%d\n", i);
}

Demo: Cicli 2014/2015 Pagina 6


console
0
i 0

Corpo (iterazione 1)
for (i = 0; i < 3; i++) {
printf("%d\n", i);
}

Demo: Cicli 2014/2015 Pagina 7


console
0
i 1

Incremento (post iterazione 1)


for (i = 0; i < 3; i++) {
printf("%d\n", i);
}

Demo: Cicli 2014/2015 Pagina 8


console
0
i 1

Condizione (pre iterazione 2)


for (i = 0; i < 3; i++) {
printf("%d\n", i);
}

Demo: Cicli 2014/2015 Pagina 9


console
0
i 1 1

Corpo (iterazione 2)
for (i = 0; i < 3; i++) {
printf("%d\n", i);
}

Demo: Cicli 2014/2015 Pagina 10


console
0
i 2 1

Incremento (post iterazione 2)


for (i = 0; i < 3; i++) {
printf("%d\n", i);
}

Demo: Cicli 2014/2015 Pagina 11


console
0
i 2 1

Condizione (pre iterazione 3)


for (i = 0; i < 3; i++) {
printf("%d\n", i);
}

Demo: Cicli 2014/2015 Pagina 12


console
0
i 2 1
2

Corpo (iterazione 3)
for (i = 0; i < 3; i++) {
printf("%d\n", i);
}

Demo: Cicli 2014/2015 Pagina 13


console
0
i 3 1
2

Incremento (post iterazione 3)


for (i = 0; i < 3; i++) {
printf("%d\n", i);
}

Demo: Cicli 2014/2015 Pagina 14


console
0
i 3 1
2

Condizione (pre iterazione 4)


for (i = 0; i < 3; i++) {
printf("%d\n", i);
}

Demo: Cicli 2014/2015 Pagina 15


console
0
i 3 1
2

Condizione (pre iterazione 4) Falsa


for (i = 0; i < 3; i++) {
printf("%d\n", i);
}

Demo: Cicli 2014/2015 Pagina 16


console
0
i 3 1
2

for (i = 0; i < 3; i++) {


printf("%d\n", i);
}

Demo: Cicli 2014/2015 Pagina 17


Ciclo definito - while

int i = 0;
while (i < 3) {
printf("%d\n", i);
i++;
}

Demo: Cicli 2014/2015 Pagina 18


console

int i = 0;
while (i < 3) {
printf("%d\n", i);
i++;
}
Demo: Cicli 2014/2015 Pagina 19
console

i 0

Inizializzazione
int i = 0;
while (i < 3) {
printf("%d\n", i);
i++;
}
Demo: Cicli 2014/2015 Pagina 20
console

i 0

Condizione (pre iterazione 1)


int i = 0;
while (i < 3) {
printf("%d\n", i);
i++;
}
Demo: Cicli 2014/2015 Pagina 21
console
0
i 0

Corpo (iterazione 1)
int i = 0;
while (i < 3) {
printf("%d\n", i);
i++;
}
Demo: Cicli 2014/2015 Pagina 22
console
0
i 1

Incremento (post iterazione 1)


int i = 0;
while (i < 3) {
printf("%d\n", i);
i++;
}
Demo: Cicli 2014/2015 Pagina 23
console
0
i 1

Condizione (pre iterazione 2)


int i = 0;
while (i < 3) {
printf("%d\n", i);
i++;
}
Demo: Cicli 2014/2015 Pagina 24
console
0
i 1 1

Corpo (iterazione 2)
int i = 0;
while (i < 3) {
printf("%d\n", i);
i++;
}
Demo: Cicli 2014/2015 Pagina 25
console
0
i 2 1

Incremento (post iterazione 2)


int i = 0;
while (i < 3) {
printf("%d\n", i);
i++;
}
Demo: Cicli 2014/2015 Pagina 26
console
0
i 2 1

Condizione (pre iterazione 3)


int i = 0;
while (i < 3) {
printf("%d\n", i);
i++;
}
Demo: Cicli 2014/2015 Pagina 27
console
0
i 2 1
2

Corpo (iterazione 3)
int i = 0;
while (i < 3) {
printf("%d\n", i);
i++;
}
Demo: Cicli 2014/2015 Pagina 28
console
0
i 3 1
2

Incremento (post iterazione 3)


int i = 0;
while (i < 3) {
printf("%d\n", i);
i++;
}
Demo: Cicli 2014/2015 Pagina 29
console
0
i 3 1
2

Condizione (pre iterazione 4)


int i = 0;
while (i < 3) {
printf("%d\n", i);
i++;
}
Demo: Cicli 2014/2015 Pagina 30
console
0
i 3 1
2

Condizione (pre iterazione 4) Falsa


int i = 0;
while (i < 3) {
printf("%d\n", i);
i++;
}
Demo: Cicli 2014/2015 Pagina 31
console
0
i 3 1
2

int i = 0;
while (i < 3) {
printf("%d\n", i);
i++;
}
Demo: Cicli 2014/2015 Pagina 32
Ciclo definito – do while

int i = 0;
do {
printf("%d\n", i);
i++;
} while (i < 3);

Demo: Cicli 2014/2015 Pagina 33


console

int i = 0;
do {
printf("%d\n", i);
i++;
} while (i < 3);
Demo: Cicli 2014/2015 Pagina 34
console

i 0

Inizializzazione
int i = 0;
do {
printf("%d\n", i);
i++;
} while (i < 3);
Demo: Cicli 2014/2015 Pagina 35
console
0
i 0

Corpo (iterazione 1)
int i = 0;
do {
printf("%d\n", i);
i++;
} while (i < 3);
Demo: Cicli 2014/2015 Pagina 36
console
0
i 1

Incremento (post iterazione 1)


int i = 0;
do {
printf("%d\n", i);
i++;
} while (i < 3);
Demo: Cicli 2014/2015 Pagina 37
console
0
i 1

Condizione (pre iterazione 2)


int i = 0;
do {
printf("%d\n", i);
i++;
} while (i < 3);
Demo: Cicli 2014/2015 Pagina 38
console
0
i 1 1

Corpo (iterazione 2)
int i = 0;
do {
printf("%d\n", i);
i++;
} while (i < 3);
Demo: Cicli 2014/2015 Pagina 39
console
0
i 2 1

Incremento (post iterazione 2)


int i = 0;
do {
printf("%d\n", i);
i++;
} while (i < 3);
Demo: Cicli 2014/2015 Pagina 40
console
0
i 2 1

Condizione (pre iterazione 3)


int i = 0;
do {
printf("%d\n", i);
i++;
} while (i < 3);
Demo: Cicli 2014/2015 Pagina 41
console
0
i 2 1
2

Corpo (iterazione 3)
int i = 0;
do {
printf("%d\n", i);
i++;
} while (i < 3);
Demo: Cicli 2014/2015 Pagina 42
console
0
i 3 1
2

Incremento (post iterazione 3)


int i = 0;
do {
printf("%d\n", i);
i++;
} while (i < 3);
Demo: Cicli 2014/2015 Pagina 43
console
0
i 3 1
2

Condizione (pre iterazione 4)


int i = 0;
do {
printf("%d\n", i);
i++;
} while (i < 3);
Demo: Cicli 2014/2015 Pagina 44
console
0
i 3 1
2

Condizione (pre iterazione 4) Falsa


int i = 0;
do {
printf("%d\n", i);
i++;
} while (i < 3);
Demo: Cicli 2014/2015 Pagina 45
console
0
i 3 1
2

int i = 0;
do {
printf("%d\n", i);
i++;
} while (i < 3);
Demo: Cicli 2014/2015 Pagina 46
Ciclo indefinito - while

int v;
int r = scanf("%d", &v);
while (r != EOF) {
printf("%d\n", v);
r = scanf("%d", &v);
}

Demo: Cicli 2014/2015 Pagina 47


Standard Output:

r
v

int v;
int r = scanf("%d", &v);
while (r != EOF) {
printf("%d\n", v);
r = scanf("%d", &v);
}
Demo: Cicli 2014/2015 Pagina 48
Standard Output:

r 1

v 10

Inizializzazione
int v;
int r = scanf("%d", &v); Input Tastiera: 10
while (r != EOF) {
printf("%d\n", v);
r = scanf("%d", &v);
}
Demo: Cicli 2014/2015 Pagina 49
Standard Output:

r 1

v 10

Condizione (pre iterazione 1)


int v;
int r = scanf("%d", &v);
while (r != EOF) {
printf("%d\n", v);
r = scanf("%d", &v);
}
Demo: Cicli 2014/2015 Pagina 50
Standard Output:
10
r 1

v 10

Corpo (iterazione 1)
int v;
int r = scanf("%d", &v);
while (r != EOF) {
printf("%d\n", v);
r = scanf("%d", &v);
}
Demo: Cicli 2014/2015 Pagina 51
Standard Output:
10
r 1

v 20

Lettura prossimo elemento (iterazione 1)


int v;
int r = scanf("%d", &v); Input Tastiera: 20
while (r != EOF) {
printf("%d\n", v);
r = scanf("%d", &v);
}
Demo: Cicli 2014/2015 Pagina 52
Standard Output:
10
r 1

v 20

Condizione (pre iterazione 2)


int v;
int r = scanf("%d", &v);
while (r != EOF) {
printf("%d\n", v);
r = scanf("%d", &v);
}
Demo: Cicli 2014/2015 Pagina 53
Standard Output:
10
r 1 20

v 20

Corpo (iterazione 2)
int v;
int r = scanf("%d", &v);
while (r != EOF) {
printf("%d\n", v);
r = scanf("%d", &v);
}
Demo: Cicli 2014/2015 Pagina 54
Standard Output:
10
r 1 20

v 30

Lettura prossimo elemento (iterazione 2)


int v;
int r = scanf("%d", &v); Input Tastiera: 30
while (r != EOF) {
printf("%d\n", v);
r = scanf("%d", &v);
}
Demo: Cicli 2014/2015 Pagina 55
Standard Output:
10
r 1 20

v 30

Condizione (pre iterazione 3)


int v;
int r = scanf("%d", &v);
while (r != EOF) {
printf("%d\n", v);
r = scanf("%d", &v);
}
Demo: Cicli 2014/2015 Pagina 56
Standard Output:
10
r 1 20
30
v 30

Corpo (iterazione 3)
int v;
int r = scanf("%d", &v);
while (r != EOF) {
printf("%d\n", v);
r = scanf("%d", &v);
}
Demo: Cicli 2014/2015 Pagina 57
Standard Output:
10
r EOF 20
30
v 30

Lettura prossimo elemento (iterazione 3)


int v;
int r = scanf("%d", &v); Input Tastiera: EOF
while (r != EOF) {
printf("%d\n", v);
r = scanf("%d", &v);
}
Demo: Cicli 2014/2015 Pagina 58
Standard Output:
10
r EOF 20
30
v 30

Condizione (pre iterazione 4)


int v;
int r = scanf("%d", &v);
while (r != EOF) {
printf("%d\n", v);
r = scanf("%d", &v);
}
Demo: Cicli 2014/2015 Pagina 59
Standard Output:
10
r EOF 20
30
v 30

Condizione (pre iterazione 4) Falsa


int v;
int r = scanf("%d", &v);
while (r != EOF) {
printf("%d\n", v);
r = scanf("%d", &v);
}
Demo: Cicli 2014/2015 Pagina 60
Standard Output:
10
r EOF 20
30
v 30

int v;
int r = scanf("%d", &v);
while (r != EOF) {
printf("%d\n", v);
r = scanf("%d", &v);
}
Demo: Cicli 2014/2015 Pagina 61
Ciclo indefinito – do while

int r, v;
do {
printf("Età: ");
r = scanf("%d", &v);
// svuota il buffer
while (getchar() != '\n');
} while (r != 1);

Demo: Cicli 2014/2015 Pagina 62


console

r
v

int r, v;
do {
printf("Età: ");
r = scanf("%d", &v);
// svuota il buffer
while (getchar() != '\n');
} while (r != 1);

Demo: Cicli 2014/2015 Pagina 63


console
Età:
r
v

Corpo (iterazione 1)
int r, v;
do {
printf("Età: ");
r = scanf("%d", &v);
// svuota il buffer
while (getchar() != '\n');
} while (r != 1);

Demo: Cicli 2014/2015 Pagina 64


console
Età: evil
r 0

Corpo (iterazione 1)
int r, v;
do {
printf("Età: "); Input Tastiera: evil
r = scanf("%d", &v);
// svuota il buffer
while (getchar() != '\n');
} while (r != 1);

Demo: Cicli 2014/2015 Pagina 65


console
Età: evil
r 0

Corpo (iterazione 1) – svuota il buffer


int r, v;
do {
printf("Età: ");
r = scanf("%d", &v);
// svuota il buffer
while (getchar() != '\n');
} while (r != 1);

Demo: Cicli 2014/2015 Pagina 66


console
Età: evil
r 0

Condizione (pre iterazione 2)


int r, v;
do {
printf("Età: ");
r = scanf("%d", &v);
// svuota il buffer
while (getchar() != '\n');
} while (r != 1);

Demo: Cicli 2014/2015 Pagina 67


console
Età: evil
r 0 Età:

Corpo (iterazione 2)
int r, v;
do {
printf("Età: ");
r = scanf("%d", &v);
// svuota il buffer
while (getchar() != '\n');
} while (r != 1);

Demo: Cicli 2014/2015 Pagina 68


console
Età: evil
r 1 Età: 12

v 12

Corpo (iterazione 2)
int r, v;
do {
printf("Età: "); Input Tastiera: 12
r = scanf("%d", &v);
// svuota il buffer
while (getchar() != '\n');
} while (r != 1);

Demo: Cicli 2014/2015 Pagina 69


console
Età: evil
r 1 Età: 12

v 12

Corpo (iterazione 2) – svuota il buffer


int r, v;
do {
printf("Età: ");
r = scanf("%d", &v);
// svuota il buffer
while (getchar() != '\n');
} while (r != 1);

Demo: Cicli 2014/2015 Pagina 70


console
Età: evil
r 1 Età: 12

v 12

Condizione (pre iterazione 3)


int r, v;
do {
printf("Età: ");
r = scanf("%d", &v);
// svuota il buffer
while (getchar() != '\n');
} while (r != 1);

Demo: Cicli 2014/2015 Pagina 71


console
Età: evil
r 1 Età: 12

v 12

Condizione (pre iterazione 3) Falsa


int r, v;
do {
printf("Età: ");
r = scanf("%d", &v);
// svuota il buffer
while (getchar() != '\n');
} while (r != 1);

Demo: Cicli 2014/2015 Pagina 72


console
Età: evil
r 1 Età: 12

v 12

int r, v;
do {
printf("Età: ");
r = scanf("%d", &v);
// svuota il buffer
while (getchar() != '\n');
} while (r != 1);

Demo: Cicli 2014/2015 Pagina 73


Ciclo indefinito – for

int r, v;

for (r=scanf("%d",&v); r!=EOF; r=scanf("%d",&v)) {


printf("%d\n", v);
}

Demo: Cicli 2014/2015 Pagina 74


Standard Output:

for (r=scanf("%d",&v); r!=EOF; r=scanf("%d",&v)) {


printf("%d\n", v);
}

Demo: Cicli 2014/2015 Pagina 75


Standard Output:

r 1

v 12

Input Tastiera: 12

Inizializzazione
for (r=scanf("%d",&v); r!=EOF; r=scanf("%d",&v)) {
printf("%d\n", v);
}

Demo: Cicli 2014/2015 Pagina 76


Standard Output:

r 1

v 12

Condizione (pre iterazione 1)


for (r=scanf("%d",&v); r!=EOF; r=scanf("%d",&v)) {
printf("%d\n", v);
}

Demo: Cicli 2014/2015 Pagina 77


Standard Output:
12
r 1

v 12

Corpo (iterazione 1)
for (r=scanf("%d",&v); r!=EOF; r=scanf("%d",&v)) {
printf("%d\n", v);
}

Demo: Cicli 2014/2015 Pagina 78


Standard Output:
12
r 1

v 34

Input Tastiera: 34

Prossimo (post iterazione 1)


for (r=scanf("%d",&v); r!=EOF; r=scanf("%d",&v)) {
printf("%d\n", v);
}

Demo: Cicli 2014/2015 Pagina 79


Standard Output:
12
r 1

v 34

Condizione (pre iterazione 2)


for (r=scanf("%d",&v); r!=EOF; r=scanf("%d",&v)) {
printf("%d\n", v);
}

Demo: Cicli 2014/2015 Pagina 80


Standard Output:
12
r 1 34

v 34

Corpo (iterazione 2)
for (r=scanf("%d",&v); r!=EOF; r=scanf("%d",&v)) {
printf("%d\n", v);
}

Demo: Cicli 2014/2015 Pagina 81


Standard Output:
12
r 1 34

v 56

Input Tastiera: 56

Prossimo (post iterazione 2)


for (r=scanf("%d",&v); r!=EOF; r=scanf("%d",&v)) {
printf("%d\n", v);
}

Demo: Cicli 2014/2015 Pagina 82


Standard Output:
12
r 1 34

v 56

Condizione (pre iterazione 3)


for (r=scanf("%d",&v); r!=EOF; r=scanf("%d",&v)) {
printf("%d\n", v);
}

Demo: Cicli 2014/2015 Pagina 83


Standard Output:
12
r 1 34
56

v 56

Corpo (iterazione 3)
for (r=scanf("%d",&v); r!=EOF; r=scanf("%d",&v)) {
printf("%d\n", v);
}

Demo: Cicli 2014/2015 Pagina 84


Standard Output:
12
r EOF 34
56

v 56

Input Tastiera: EOF

Prossimo (post iterazione 3)


for (r=scanf("%d",&v); r!=EOF; r=scanf("%d",&v)) {
printf("%d\n", v);
}

Demo: Cicli 2014/2015 Pagina 85


Standard Output:
12
r EOF 34
56

v 56

Condizione (pre iterazione 4)


for (r=scanf("%d",&v); r!=EOF; r=scanf("%d",&v)) {
printf("%d\n", v);
}

Demo: Cicli 2014/2015 Pagina 86


Standard Output:
12
r EOF 34
56

v 56

Falsa
Condizione (pre iterazione 4)
for (r=scanf("%d",&v); r!=EOF; r=scanf("%d",&v)) {
printf("%d\n", v);
}

Demo: Cicli 2014/2015 Pagina 87


Standard Output:
12
r EOF 34
56

v 56

for (r=scanf("%d",&v); r!=EOF; r=scanf("%d",&v)) {


printf("%d\n", v);
}

Demo: Cicli 2014/2015 Pagina 88


Demo: Cicli 2014/2015 Pagina 89

Potrebbero piacerti anche