Sunteți pe pagina 1din 4

Programare structurată și procedurală (Limbajul C++)

Profesor: Munteanu Adrian

LABORATORUL 5
PARTICULARITĂȚI ALE INSTRUCȚIUNILOR CICLICE ÎN
LIMBAJUL C++

1. Instrucțiunea break
Instrucţiunea break are sintaxa:

break;

şi este este folosită pentru a ieşi imediat dintr-o instrucţiune de ciclare sau dintr-un switch. Ea
transferă controlul instrucţiunii imediat următoare celei părăsite. Instrucţiunea break poate fi
folosită numai în aceste două situaţii, dacă ea apare fără să fie în corpul unei ciclări sau al unui
switch avem o eroare la compilare. In cazul instrucţiunilor imbricate (for în for, etc) break
încheie numai execuţia instrucţiunii în care este direct inclusă.

Exemplu:

Rezultat:

i=0 break
i=1 j=0 break
i=2 j=0 j=1 break
i=3 j=0 j=1 j=2 break
i=4 j=0 j=1 j=2 j=3 break
Programare structurată și procedurală (Limbajul C++)
Profesor: Munteanu Adrian

2. Instrucțiunea continue
Instrucţiunea continue are sintaxa:

continue;

şi este este folosită în instrucţiuni de ciclare (şi numai acolo) pentru a încheia în mod forţat
execuţia iteraţiei curente şi a trece la următoarea iteraţie. In interiorul unei bucle while sau do-
while, la întâlnirea instrucţiunii continue are loc un salt direct la re-evaluarea expresiei test, iar în
cazul instrucţiunii for se trece mai întâi la evaluarea expresiei de reluare şi apoi la evaluarea
expresiei test.

Exemplu:

Rezultat:

i=0 continue j=1 j=2 j=3 j=4


i=1 j=0 continue j=2 j=3 j=4
i=2 j=0 j=1 continue j=3 j=4
i=3 j=0 j=1 j=2 continue j=4
i=4 j=0 j=1 j=2 j=3 continue
Programare structurată și procedurală (Limbajul C++)
Profesor: Munteanu Adrian

3. Instrucţiunea goto

Sintaxa instrucţiunii goto este următoarea:

goto etichetă;

Instrucţiunea goto transferă controlul execuţiei dintr-un anumit punct al corpului unei funcţii la o
instruciune etichetată aflată în interiorul aceleiaşi funcţii.

Exemplu:

Rezultat:

Cazul 1:

a=5
a>0
Gata, am terminat.

Cazul 2:

a=-5
a<0
Gata, am terminat.

Cazul 3:

a=0
a==0
Gata, am terminat.
Programare structurată și procedurală (Limbajul C++)
Profesor: Munteanu Adrian

O etichetă este formată dintr-un identificator urmat de simbolul două puncte. O


instrucţiune este etichetată dacă exact în faţa sa se află una sau mai multe etichete. O etichetă nu
poate să apară de mai multe ori în corpul aceleiaşi funcţii, domeniul de vizibilitate al unei
etichete fiind restrâns la corpul funcţiei în care apare. Aceste etichete sunt utilizate numai de
instrucţiunea goto, în orice alt context o instrucţiune etichetată este executată fără să se ţină
seama de prezenţa etichetei.
Deoarece urmărirea salturilor către etichete reduce mult claritatea programului, este
recomandată utilizarea salturilor date de break, continue sau return în locul instrucţiunii goto.

Probleme propuse în clasă


1. Să se producă în difuzor un sunet aleator, până se acţionează o tastă.
2. Realizaţi un program care să afişeze numele anotimpului corespunzător unui număr întreg
citit de la tastatură (1..4). Scrieţi două variante de program: folosind if şi folosind switch.
3. Scrieţi un program care să pună întrebarea: “În ce an s-a născut Eminescu ?” şi. dacă
răspunsul este corect (1850), atunci să afişeze “Foarte bine”, altfel un text corespunzător.
Folosiţi instrucţiunea switch.
4. Se citeşte un şir de numere întregi pâna la întâlnirea numărului 0. Să se calculeze media
aritmetică a numerelor din şir.
5. Se citesc 3 numere naturale n, p şi k, apoi un şir de n numere naturale. Câte dintre acestea,
împărţite la p dau restul k ?
6. Efectuaţi împărţirea întreagă a două numere, făra a utiliza operatorii / şi %, ci doar scăderi
repetate. 62. Se citeşte un număr natural. Câte cifre conţine ?
7. Un număr se numeşte “palindrom” dacă citit invers este acelaşi număr. Să se verifice dacă un
număr este sau nu palindrom.
8. Să se afişeze toate numerele prime mai mici sau egale cu un numar m dat.
9. Să se afişeze primele n numere prime care au suma cifrelor ≤ m.
10. Să se afişeze toate numerele de 3 cifre care, citite invers, sunt tot numere prime.

Probleme propuse pentru acasă


1. Calculaţi media armonică a trei numere reale x, y şi z.
2. Se citesc numere reale până la întâlnirea numărului 0. Să se afişeze soluţiile tututor
ecuaţiilor de gradul 2 ax2 +bx+c=0, unde a, b şi c sunt toate tripletele de numere citite
consecutiv, în care b2 -4ac=0.
3. La un concurs sportiv s-au înscris patru echipe A, B, C şi D. La sfârşitul tuturor probelor
cele patru echipe au obţinut respectiv X, Y, Z şi T puncte. Să se afişeze valoarea de adevăr
a propoziţiei: “Echipa A a obţinut cel mai mare punctaj.”

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