Instrucţiunea for.
În C, instrucţiunea repetitivă for este destul complexă. Ea are următoarea structură:
for (expresie_1; expresie_2; expresie_3)
{
/* grup de instructiuni */
}
Semnificaţia instrucţiunii este:
1) Se evaluează expresie 1. Această expresie conţine în general iniţializări de variabile.
2) Cât timp valoarea expresiei 2 este adevărată (nenulă), se execută grupul de
instrucţiuni. Această expresie reprezintă condiţia de oprire a ciclării.
3) După fiecare iteraţie se evaluează expresie 3. Această expresie conţine în general
actualizări ale unor variabile (incrementări, decrementări etc.).
Prezentăm câteva caracteristici ale instrucţiunii for:
1) Oricare dintre cele 3 expresii poate lipsi. Lipsa expresiei 2 este echivalentă cu valoarea 1
(de adevăr). Părăsirea ciclului for în această situaţie se poate face în general cu break.
2) În prima expresie pot apărea mai multe iniţializări, care se dau cu ajutorul operatorului
virgulă (vezi subcapitolul dedicat operatorilor). De asemenea, ultima expresie poate
conţine mai multe actualizări despărţite prin virgulă.
Ca aplicaţie pentru instrucţiunea for, calculăm suma primelor n numere întregi pozitive
(valoarea lui n este citită de la tastatură) şi cel mai mare divizor comun pentru două numere
întregi (preluate tot de la tastatură) folosind algoritmul lui Euclid:
long s,i,n,a,b,x,y;
printf("n="); scanf("%ld",&n);
for (s=0,i=0; i<n; i++) s+=i; /* Calculare: 1+2+...+n */
printf("Suma primelor %ld numere intregi pozitive este %ld\n",n,s);
printf("Dati doua numere intregi: ");
scanf("%ld%ld",&a,&b);
for (x=a,y=b; y; r=x%y,x=y,y=r); /* Calculare Cmmdc(a,b) */
printf("Cmmdc(%ld,%ld)=%ld\n"),a,b,x);
printf("Cmmmc(%ld,%ld)=%ld\n"),a,b,a/x*b);
0 comentarii:
Trimiteți un comentariu