Capitolo 6: FOR

27 03 2010

Il for è un ciclo, un po’ come il while.
Utilizzando for si dà un valore a una variabile, si inserisce una condizione e poi si incrementa di uno la variabile.
La differenza con while è presto detta.
Scrivendo while (i<10) non si agisce sul valore della variabile, che dipende dal codice contenuto all'interno del ciclo
(ad esempio si può moltiplicare il valore della i, dividerlo, sommarlo a un altro.
Con for invece alla fine del ciclo il valore della variabile viene incrementato (o decrementato) a prescindere dal codice
contenuto nel for.
Esempio:

#include

main()
{
int i;

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

}

Anche se di primo acchito potrebbe essere scambiato per un while con codice diverso, il for è un concetto di ciclo differente.
Tutto quello che serve per "ciclare" è contenuto nelle parentesi tonde, mentre con while nelle tonde si inserisce solo una condizione.
Secondo me nel momento in cui si dovesse modificare l'indice (in questo caso i) con operazioni diverse dall'incremento o
decremento di 1, è meglio usare while.
Esempio: Riempimento di un vettore

int vettore[10];
int i;

for (i=0; i0; i–)
{
printf (“%d\n”, vettore[i]);
}





Guida C: Capitolo 5/b

7 03 2010

#include <stdio.h>

main()
{
char a;
int i=0;
while (i<8)
{
printf (“inserisci carattere\n”);
while ( (a=getchar())!= ‘\n’ )
{
printf (“%c\n”, a);
}
i++;
}

}

Il codice di cui sopra contiene due cicli while annidati.

Il primo serve a ripetere il ciclo 8 volte.
Il secondo serve ad acquisire un carattere.
Come vedete, l’acquisizione avviene direttamente nelle condizioni del ciclo.
Ho scelto di usare getchar() perchè restituisce direttamente il valore acquisito mettendolo nella variabile, mentre con scanf() primo si acquisisce un valore, che poi viene messo tramite un puntatore nella variabile.

In questo modo posso inserire la condizione != ‘\n’. Infatti quando si acquisisce un carattere con scanf o getchar, il programma acquisisce anche il valore passato dalla pressione del tasto invio. E’ per questo che nell’esercizio precedente il ciclo “saltava” un passaggio ad ogni ripetizione.

Questo non avviene con le variabili numeriche.

­#include <stdio.h>
main()
{
char vett[10];
char a;
int i=0;
while (i<10)
{
printf (“inserisci carattere\n”);
while ( (a=getchar())!= ‘\n’ )
{
vett[i]=a;
}
i++;
}
i=0;
while(i<10)
{
printf (“%c\n”, vett[i]);
i++;
}
}

Acquisizione di caratteri in un vettore.





Guida C: Capitolo 5

6 03 2010

In questo capitolo,mostrerò un utilizzo del ciclo while.

­#include <stdio.h>
int main()
{
int a;
int i;
i=0;
while (i<8)
{printf (“inserisci numero\n”);
scanf (“%d”, &a);
printf (“%d”, a);
i++;
}
}







Iscriviti

Get every new post delivered to your Inbox.