PC Laborator 6

De la WikiLabs
Versiunea din 29 septembrie 2015 14:48, autor: Vpopescu (discuție | contribuții) (Pagină nouă: __TOC__ == Obiective == La sfârșitul acestui laborator studenții vor fi capabili: * să înțeleagă funcționarea blocurilor repetitive; * să conceapă programe care folosesc...)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)
Jump to navigationJump to search

Obiective

La sfârșitul acestui laborator studenții vor fi capabili:

  • să înțeleagă funcționarea blocurilor repetitive;
  • să conceapă programe care folosesc blocuri repetitive.

Structura repetitivă

Structura repetitivă, cunoscută și sub numele de loop sau buclă, reprezintă o bucată de cod care poate fi executată în mod repetat. Structurile repetitive trebuie sa aibă o condiție de continuare. La fiecare iterație a codului această condiție este verificată, iar în momentul în care condiția devine falsă se oprește execuția buclei și se trece mai departe în program. Există 2 tipuri de structuri repetitive:

  • structuri repetitive cu număr cunoscut de pași;
  • structuri repetitive cu număr necunoscut de pași.

Structuri repetitive cu număr cunoscut de pași

Instrucțiunea for creează o structură repetitivă cu număr cunoscut de pași. Sintaxa instrucțiunii for este următoarea:
a)

for (inițializare contor; condiție logică; modificare contor)
        instrucțiune;

b)

for (inițializare contor; condiție logică; modificare contor){
        instrucțiune1;
        instrucțiune2;
..............................
}

Instrucțiunea for se parcurge conform schemei următoare:
For.jpg

Exemplu
Ce va afisa acest program?

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

Structuri repetitive cu număr necunoscut de pași

Există două instrucțiuni pentru a crea structuri repetitive cu număr necunoscut de pași:

  • instrucțiunea while;
  • instrucțiunea do..while;

Instrucțiunea while

Instrucțiunea while verifică înainte de fiecare iterație condiția de intrare: dacă această condiție este îndeplinită se execută codul din corpul instrucțiunii, iar dacă nu se îndeplinește condiția se iese din această buclă. Sintaxa instrucțiunii este următoarea:
a)

while (condiție)
        instrucțiune;

b)

while (condiție){
        instrucțiune1;
        instrucțiune2;
..............................
}

Organigrama instrucțiunii while se regăsește în imaginea următoare:
While.jpg

Exemplu
Ce va afișa următorul cod în urma execuției?

int x = 0;  
while (x < 10){
      printf("%d\n", x);
      x++;       
}

Instrucțiunea do while

Instrucțiunea do while verifică după fiecare iterație condiția de continuare. Sintaxa instrucțiunii "do while este următoarea:
a)

do{
      instrucțiune;
}while (condiție);

b)

do{
      instrucțiune1;
      instrucțiune2;
..............................
}while (condiție);
Atenție: Se observă că sintaxa instrucțiunii do while este puțin diferită:
  • indiferent de numărul de instrucțiuni din cadrul structurii repetitive, se folosesc acoladele;
  • după condiția de continuitate se folosește obligatoriu semnul de punctuație ; .

Organigrama instrucțiunii while se regăsește în imaginea următoare:
Do while.jpg

Atenție: Se observă că datorită faptului că se verifică abia la sfârșitul structurii condiția de continuitate, orice structură iterativă de tip do while va fi executată întotdeauna cel puțin o dată.

Exemplu
Ce se va afișa în urma execuției?

int x;
x = 0;
do{
      printf( "Hello, world!\n" );
}while (x != 0);

Cuvintele cheie break și continue

Pentru structurile repetitive există două cuvinte cheie de mare importanță: break și continue.
break va ieși din bucla cea mai apropiată indiferent de condițiile de continuare ale acesteia. Utilitatea acestei instrucțiuni apare atunci când trebuie părăsită bucla în anumite circumstanțe.
continue oprește iterația curentă, face update contorului (în cazul buclei for) și continuă cu execuția structurii repetitive de la prima instrucțiune. Cu alte cuvinte, continue ignoră tot ceea ce urmează după el în cadrul buclei și trece la următoarea iterație a buclei.