Documente Academic
Documente Profesional
Documente Cultură
1
Instructiuni repetitive - while (3) Instructiuni repetitive - while (4)
Exemplul 3: Sa se calculeze media aritmetica a
numerelor de la 11 la 15. Modificarea buclei infinite. numar suma
#include <stdio.h> #include <stdio.h> 11 0
12 11
void main() void main()
{ int numar, suma; 13 23
{ int numar, suma; 14 36
numar = 11;
numar = 11; !!!! Bucla infinita suma = 0; 15 50
suma = 0; while(numar <= 15) 16 65
while(numar != 15) { suma += numar;
suma += numar; numar++;
printf(″media aritmetica este %.2lf\n″, suma/5.0 ); }
} printf(″media aritmetica este %.2lf\n″, suma/5.0 );
}
PCLP6 - 5 PCLP6 - 6
} instructiune
PCLP6 - 7 PCLP6 - 8
2
Instructiuni repetitive - do/while (2) Instructiuni repetitive - do/while (3)
#include <stdio.h>
#include <stdlib.h>
Exemplul 1: Sa se calculeze radacina patrata a unui #define ER 1e-10
numar pozitiv subunitar cu o eroare mai mica de 10-10 void main()
{ double nr, x1, x2, y;
folosind metoda iterativa a lui Newton. printf(″Introduceti valoarea numarului: ″);
scanf(″%lf″, &nr);
Fie sirul if(nr<=0 || nr>=1)
x0, x1, x2,…, xn { printf(″Numarul nu este in intervalul (0,1).″);
exit(1);
unde: }
x0 = 1 si xn+1 = 0,5(xn + a/xn) x2=1;
do
Sirul este convergent si { x1 = x2;
x2 = 0.5 * (x1 + nr/x1);
lim xn a |xn+1 – xn| < 10-10 }while(((y = x1-x2) < 0 ? –y : y) >= ER);
n printf(″nr = %lf\tsqrt(nr)=%.11lf\n″, nr, x2 );
}
PCLP6 - 9 PCLP6 - 10
3
Instructiuni repetitive - for (2) Instructiuni repetitive - for (3)
Exemplul 1: Sa se calculeze suma patratelor
Alta varianta:
numerelor de la 1 la 10.
#include <stdio.h> #include <stdio.h>
void main() void main()
{ int i, suma; { int i, suma;
suma = 0; for(i=1, suma=0; i<=10; i++)
for(i=1; i<=10; i++) suma += i*i;
suma += i*i; printf(″suma patratelor = %d\n″, suma );
printf(″suma patratelor = %d\n″, suma ); }
}
PCLP6 - 13 PCLP6 - 14
4
Instructiuni repetitive - for (6) Instructiunea - break
#include <stdio.h>
#include <stdlib.h> break;
void main()
{ int n, i;
double a, p, f; #include <stdio.h> F T
printf(″Baza a=: ″); scanf(″%lf″, &a); void main() nr<11
printf(″Exponent n=: ″); scanf(″%d″, &n); { int nr=1;
if(n <= 0)
{ printf(″Exponent negativ.\n″); while(nr < 11) T
nr==4 F
exit(1); { if(nr==4)
}
i= n; break; Afiseaza nr
for(p =1.0, f =a; n; n>>1) printf(″in bucla, nr.=%d\n″, nr );
{ if(n&1) ++ nr;
p *= f; ++nr;
f *=f; //genereaza termenul urmator din sir }
} printf(″Bucla s-a terminat, nr.=%d\n″, nr);
printf(″a = %lf\tn=%d\ta**n=%lf\n″, a, i, p );
} }
PCLP6 - 17 PCLP6 - 18
PCLP6 - 19 PCLP6 - 20
5
Instructiunea - return
return;
sau
return expresie;