Sunteți pe pagina 1din 6

MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII AL REPUBLICII

MOLDOVA

UNIVERSITATEA TEHNICĂ A MOLDOVEI

Facultatea Calculatoare, Informatică şi Microelectronică

Departamentul Informatică și Ingineria Sistemelor

Lucrare de laborator Nr. 2


Tema: Instrucțiuni repetitive (cicluri)

Disciplina: Programarea calculatoarelor

A elaborat st. gr. CR-211 FR, Sava Victoria

A verificat asist. univ., master. Toma Olga

Chisinău 2021
Lucrare de laborator nr. 2
Tema : Instrucțiuni repetitive (cicluri)

1. Scopul lucrării

Utilizarea instrucțiunilor repetitive (for, while și do-while) pentru scrierea


programelor în limbajul de programare C.

2. Condiția

Scrieți un program care citește de la tastatură valorile variabilelor a, b, c, n, i, j, k


(în dependență de variantă), efectuează ceea ce este indicat în variantă, apoi
afișează pe ecran rezultatul:

Varianta 9

Determină cel mai mare divizor comun al două numere a și b (poate fi utilizat
algoritmul lui Euclid prin scădere, prin împărțire sau verificarea tuturor numerelor
până la 1)

Mersul lucrării :

Noțiuni teoretice și metode folosite :

Instrucţiunile de ciclare sunt utilizate în situaţia în care o anumită secvenţă de cod


trebuie executată de mai multe ori în mod consecutiv, numărul de repetiţii fiind fix,
stabilit iniţial, sau variabil, depinzând de rezultatul acţiunii repetate. Limbajul C
pune la dispoziţia programatorilor trei instrucţiuni de ciclare: while, do-while şi
for, toate trei utilizând pentru continuarea ciclării o condiţie de tip “cât timp este
adevărat că …”, diferenţa dintre ele fiind dată, în principal, de momentul testării
condiţiei de ciclare:
 în cazul instrucţiunii while testarea are loc înaintea fiecărei execuţii a
acţiunii repetate (testare anterioară).
 în cazul do-while testarea se face la reluare, după fiecare execuţie (testare
posterioară)
 iar în cazul instrucţiunii for testarea se face analog cazului while,
instrucţiunea for având însă prevăzută şi evaluarea unei anumite expresii
înainte de fiecare reluare, precum şi o secvenţă iniţială, executată înaintea
intrării în ciclare.

Instrucţiunile repetitive păstrează controlul fluxului de execuţie al programului


până când are loc ieşirea din ciclare. O ieşire din ciclare poate fi normală, atunci
când controlul este preluat de următoarea instrucţiune din textul sursă în urma
evaluării condiţiei de repetare a ciclării, sau poate fi forţată, prin executarea unei
instrucţiuni de salt aflate în corpul instrucţiunii repetitive

Instrucţiunea for, cu o sintaxă mult mai complexă decât celelalte instrucţiuni de


ciclare, furnizează o scriere compactată a etapelor standard de execuţie a unui
proces iterativ: iniţializarea 4 variabilelor înaintea startului, evaluarea testului de
ciclare, execuţia acţiunilor din corpul ciclului, actualizarea variabilelor implicate în
expresia-test, reluarea testării.

Instrucţiunile while şi do-while sunt foarte asemănătoare, singura diferenţă


apărând doar la iniţierea ciclării: la start, do-while execută o dată, în mod
necondiţionat, instrucţiunea sa corp şi numai după aceasta intră în ciclul testare –
repetare, spre deosebire de while care începe direct cu evaluarea expresiei test. In
concluzie, instrucţiunea do-while este echivalentă cu următoarea secvenţă de
instrucţiuni: instrucţiune-corp while (expresie-test) instrucţiune-cor

Instrucţiunea while îşi inserează în mod repetat în fluxul de execuţie instrucţiunea


sa corp, atât timp cât expresia-test este adevarată (are o valoare nenulă). Este
asemănătoare cu instrucţiunea if, cu diferenţa esenţială că instrucţiunea while
păstrează controlul după executarea instrucţiunii corp, reluând evaluarea expresiei-
test. Controlul execuţiei trece la următoarea instrucţiune din textul sursă al
programului (dacă în corp nu sunt prevăzute salturi) numai atunci când expresia
test devine falsă (egală cu zero). Dacă expresia test este falsă de la bun început,
instrucţiunea corp nu este executată niciodată.

Tipul expresiei-test trebuie sa fie boolean sau scalar (număr sau pointer, caz în
care are loc conversia implicită la tipul bool) şi la evaluare sunt completate toate
efectele ei secundare înaintea luării deciziei de contiunare sau de terminare a
ciclării.

Instrucţiunea-corp poate fi de orice tip (inclusiv o instrucţiune while), dar ca să


aibe sens utilizarea ei trebuie sa fie o instrucţiune efectivă şi nu o declaraţie, de
exemplu. De regulă, instrucţiunea corp este o instrucţiune compusă, conţinând o
secvenţă de cod care descrie acţiunea care trebuie repetată.

Variabile de intrare : a și b citite de la tastatură

Variabilă de ieșire cmmdc – rezultatul celui mai mare divizor comun, calculat
conform formulii

3. Listingul Programului

4. Rezultate

a= 6
b= 9
cmmdc= 3
5. Schema bloc
Start

a, b

a, b

0
a!=b

nu da
a>b

b=b-a a=a-b

Cmmdc=

Stop
6. Concluzie

Am efectuat lucrarea cu tema: Elaborarea și programarea algoritmilor de structură


ciclică iterativă. Am însușit posibilitățile limbajului C pentru organizarea
ciclurilor, instrucțiunile, modul de determinare a instrucțiunii potrivite conform
problemei și procesul de calcul al algoritmilor cu structură de tipul dat. Am
elaborat algoritmul și am alcătuit programul pentru soluționarea problemei date
folosind instrucțiunea while, scrierea , organizarea și parametrii acesteia.

S-ar putea să vă placă și