Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




INSTRUCTIUNEA WHILE

c


INSTRUCŢIUNEA WHILE

La scrierea programelor apare necesitatea ca o secventa de instructiuni sa se execute de mai multe ori. Atunci când testul pentru repetarea secventei se face înainte de executia propriu-zisa o secventa de instructiuni se poate utiliza instructiunea while, tocmai de aceea numita si instructiunea repe 949f55j titiva ( de buclare) cu test initial.



Din punct de vdere sintactic formatul instructiunii este:

while (expresie)

instructiune

unde instructiune constituie corpul buclei while si este de obicei un bloc, dar poate fi o singura instructiune sau chiar nimic (instructiune vida), iar expresie este o expresie de tip scalar (aritmetic sau pointer).

Coprul buclei while se executa cât timp (while - cât timp ) expresia este diferita de zero (adevarata) si deci el poate sa nu se execute niciodata daca la prima evaluare expresia este nula. De asemenea, while poate defini si o bucla infinita, de exemplu:

while (1)

instructiune

urmând ca iesirea din ciclare sa se faca din corpul instructiunii folosind: break, return sau exit ( ).

Urmariti programul de mai jos care detrmina c.m.m.d.c. a doua numere întregi prin algoritmul lui Euclid.

Exemplu 3.5.1.

# include "stdio.h"

main ( )

int m,n,r;

while (1)

printf (" C.M.D.C. între : ");

scanf ("% d, % d", &m, &n);

printf ("este");

if (m = = 0 n = = 0 ) break;

while (r = m%n)

m = ;

n = r;

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



Prima instructiune while defineste o bucla infinita, iesirea din bucla facându-se cu break-ul de la instructiunea if (vezi instructiunea break la 3.8) atunci când cel putin unul din cele doua numere introduse prin apelul functiei scanf este nul, acesta oferindu-ne posibilitatea determinarii c.m.m.d.c. a oricâtor perechi de întregi.

Al doilea while este inclus în primul si corpul acestuia executa cât timp restul împartirii lui m la n este diferit de zero, adica cât timp evaluând expresia r= m%n obtinem o valoare nenula.

Programul care urmeaza descompune un numar natural (unsigned long) în factori primi. Pentru fiecare factor prim gasit se afiseaza pe câte o linie pe ecran, factorul prim respectiv si exponentul la care apare el în descompunerea în factori primi.

Exemplu 3.5.2.

# include "stdio.h"

main ( )

unsigned long n, i, j;

printf ("În Desc. lui în factori primi \n");

printf ("n="); scanf ("% 1d", &n);

i = 2;

while (n >1)

j = 0;

while (n% i = = 0)

j + +;

n = n/i;

if (j)

printf("%1u **%1u \n", i, j );

i + +;

Prima bucla while se executa cât timp n>1 si în cadrul acesteia se verifica daca i este divizor a lui n, iar în caz afirmativ j se incrementeaza cu 1 ori de câte ori înca mai este divizor a lui n/i, operatie efectuata în a doua bucla while inclusa în prima.





Document Info


Accesari: 3365
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2025 )