0% au considerat acest document util (0 voturi)
87 vizualizări11 pagini

Baza C++

Documentul prezintă elementele de bază ale limbajului C++, inclusiv vocabularul, tipurile de date, constantele, variabilele și operatorii. Sunt explicate tipurile de date intregi și reale, modificatorii de tip, constantele și variabilele. De asemenea, sunt prezentați principalii operatori ai limbajului C++.

Încărcat de

jokeCrst
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
87 vizualizări11 pagini

Baza C++

Documentul prezintă elementele de bază ale limbajului C++, inclusiv vocabularul, tipurile de date, constantele, variabilele și operatorii. Sunt explicate tipurile de date intregi și reale, modificatorii de tip, constantele și variabilele. De asemenea, sunt prezentați principalii operatori ai limbajului C++.

Încărcat de

jokeCrst
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
Sunteți pe pagina 1/ 11

CAPITOLUL 2.

ELEMENTELE DE BAZĂ ALE LIMBAJULUI C++

II.1. Vocabularul limbajului


Setul de caractere
Setul de caractere reprezintă ansamblul de caractere cu ajutorul cărora se poate realiza un
program C++. Acesta este alcătuit din:
§ litere mari și mici ale alfabetului englez(A-Z,a-z);
§ cifrele sistemului de numerație în baza 10(0-9);
§ caractere speciale(+,-,/,=,%,<,>,:,;,#,$,@,blank(spațiu)).

Identificatori. Cuvinte cheie


Identificatorul este o succesiune de litere, cifre sau caracterul special underscor(_) din
care prima nu trebuie să fie cifră. Cu ajutorul identificatorilor se asociază nume constantelor,
variabilelor, funcțiilor, etc. Exemple de identificatori: a, c1, contor_cifre, etc.
Limbajul C++, ca orice limbaj de programare, este compus din câteva denumiri(identificatori)
cu o semnificaţie bine stabilită, numite cuvinte cheie.
Observaţie: când alegeţi denumiri de variabile pentru programe să nu utilizaţi aceste denumiri.

auto break case char const continue default do


double else enum extern float for goto if
int long register return short signed sizeof static
struct switch typedef union unsigned void volatile while
bool catch class delete namespace inline new operator
private this using template virtual mutable cin cout

Comentarii
Un comentariu, în limbajul C++, începe cu semnul //comentariu - pentru a scrie un comentariu
pe o singură linie – sau cu semnul /* comentariu */ - pentru a scrie un comentariu pe mai multe
linii. Comentariile nu au niciun efect asupra comportamentului programului. Programatorul poate
să le folosească pentru a include explicaţii scurte sau observaţii asupra codului sursă.

II.2. Scrierea și citirea în limbajul C++


Pentru a realiza scrieri pe ecran se folosește fluxul cout<<. Cuvântul cheie cout este acronimul de
la console output și se mai numește - stream de ieșire. Forma generală a acestui stream este
cout<<a<<b<<c<<……<<n;
Pentru a realiza citiri de la tastatură se folosește fluxul cin>>. Cuvântul cheie cin este
acronimul de la console input și se mai numește stream de intrare. Forma generală a acestui
stream este cin>>a>>b>>……>>n;
II.3. Tipuri de date, constante, variabile
1. Tipuri de date

Un tip de date specifică (precizează):


§ mulţimea de valori pe care variabila respectivă le poate lua
§ cât şi setul de operaţii pe care programatorul le poate efectua cu acea variabilă.

Tipurile intregi sunt:

§ unsigned char: caracter fara semn, ocupa 8 biti si ia valori intre [0,255]
§ char: caracter, ocupa 8 biti, [-128,127]
§ unsigned int: intreg fara semn, 16 biti, [0,65535]
§ short int: intreg scurt, 16 biti, [-32768,32767]
§ int : intreg, ocupa de regule 16 biti (nr lor difera de la o implemantare la alta) [-32767,
32767]
§ unsigned long: intreg lung fara semn, 32 biti, [0,4 294 967 295]
§ long : intreg lung cu semn, 32 biti, [-2 147 483 648, 2 147 483 647]

Tipurile reale sunt:

§ float : ocupa 32 biti, [3.4*10-38, 3.4*1038]


§ double: 64 biti, [1.7*10-308, 1.7*10308]
§ long double, 80 biti, [3.4*10-4932, 3.4*104932]

Modificatorii de tip. Limbajul C++ oferă pe lîngă cele 5 tipuri de bază prezentate mai sus, un set
de modificatori de tip:unsigned(fără semn), long(lung), signed(cu semn), register(registru),
short(scurt). Un modificator de tip schimbă domeniul valorilor pe care o variabilă le poate păstra,
sau modul în care compilatorul păstrează o variabilă. Pentru a se modifica un tip de data, se va
plasa modificatorul în faţa tipului respectiv.

2. Constante
Sunt date a căror valoare nu poate fi modificată în timpul execuţiei programului. Ele reprezintă
un tip şi o valoare şi astfel pot fi de mai multe tipuri:
§ constantă întreagă - se reprezintă sub forma unei înşiruiri de cifre: 6,456,1234.
§ constantă flotantă - 6.023e-23 = 6.023*10-23
§ constantă caracter este de fapt un caracter între apostrofuri. Se reprezintă pe 8 biţi, fiind
chiar reprezentarea în codul ASCII a caracterului respectiv.
Exemplu: ‘A’ reprezentare internă - 65 (codul ASCII a caracterului ‘A’), ‘a’
reprezentare internă - 97 (codul ASCII a caracterului ‘a’)
§ constanta şir sau şir de caractere - acest tip de constantă apare ca o succesiune
de caractere scrise între ghilimele. Exemplu:”program”,”CalculaTor”.

3. Variabile
Pentru a putea utiliza informaţiile ce pot fi prelucrate prin intermediul programelor, trebuie să
folosim denumiri (identificatori), care să fie compuşi din – litere, cifre şi liniuţa de subliniere
(caracterul underscore) - maxim 31 caractere.
Numim variabilă o denumire (identificator) pe care compilatorul o asociază cu o anumită zonă de
memorie. Când se declară o variabilă, trebuie specificat numele ei cât şi tipul de date asociat.
Exemple:

int a variabila a este de tip întreg


float b variabila b este de tip real
char d variabila d este de tip caracter
void
variabila fără tip

Limbajul C++ este case sensitive, adică face diferenţa dintre literele mici şi mari, astfel încât, două
denumiri de variabile sau de funcţii, care sunt identice dar sunt scrise o dată cu litere mici iar
apoi cu litere mari, se consideră ca fiind două denumiri de variabile sau de funcţii diferite.
Variabilele pot fi:

II.4. Expresii. Operatori C++

Expresia este alcătuită dintr-unul sau mai mulţi operanzi legaţi între ei prin operatori pentru a
efectua anumite operații (calcule, atribuiri, apelări de funcții, etc.). Limbajul C++ conține un set
puternic de operatori. Cei mai importanți operatori ai limbajului C++ sunt:
§ Operatorii aritmetici
§ Operatorii relaționali
• Operatorii de incrementare și decrementare
• prefixați
• postfixați
§ Operatorii logici
§ Operatorii de asignare(atribuire)
§ Operatorul conditional
§ Operatorul de conversie explicită
§ Operatorul dimensiune sizeof
a) Operatori aritmetici
Nr. crt. Operator Semnificaţie Tipul datelor Exemplu
1. + adunare numeric z = y + x;
2. - scădere numeric z = y – x;
3. * înmulţire numeric z = y * x;
4. / împărţire numeric z = y / x;
5. % modulo întreg z = y % x;
Operatorii +, -, /, * pot fi utilizaţi cu orice tip de dată, pe când operatorul modulo poate fi
folosit doar cu datele de tip întreg. Operatorul modulo reţine restul unei împărţiri întregi.

b) Operatori relaționali

Nr. Operator Operaţie


crt.
1. < mai mic
2. > mai mare
3. <= mai mic sau egal
4. >= mai mare sau egal
5. == egal
6. != diferit

Rezultatul unui operator relaţional nu poate fi decât true (sau 1), respectiv false (sau 0).

c) Operatori de incrementare și decrementare

Operatorul de incrementare (++) şi decrementare (--) măreşte sau micşorează valoarea


operandului său cu 1 (unu). Operatorii de incrementare şi decrementare se pot aplica
variabilelor, dar nu şi constantelor, aceştia putând fi prefixaţi sau postfixaţi.

Prefixaţi Postfixaţi
++ operand operand --
-- operand operand ++

Diferenţa dintre operatorii postfixaţi şi operatorii prefixaţi este aceea că dacă operandul
este postfixat atunci mai întâi se foloseşte valoarea lui nemodificată, iar apoi se aplică operatorul
respectiv. Dacă operandul este prefixat atunci mai întâi se aplică operatorul respectiv şi abia apoi
se foloseşte valoarea lui.

d) Operatori logici

Nr. crt. Operator Operaţie


1. ! negarea logică
2. && ŞI logic
3. || SAU logic

Rezultatul unui operator logic nu poate fi decât true (sau 1), respectiv false (sau 0). Tabelul de
adevăr este prezentat mai jos:

Nr. crt. A B A && B A || B !A


1. 0 0 0 0 1
2. 0 1 0 1 1
3. 1 0 0 1 0
4. 1 1 1 1 0
e) Operatorii de asignare (atribuire)

Nr. crt. Operator Forma lungă Forma scurtă


1. = x=y
2. += x=x+y x+=y
3. -= x=x-y x-=y
4. *= x=x*y x*=y
5. /= x=x/y x/=y
6. %= x=x%y x%=y
f) Operatorul condițional

Operatorii condiţionali se utilizează în evaluarea expresiilor care prezintă alternative. Forma


generală este următoarea:
exp1 ? exp2 : exp3;

unde exp1, exp2, exp3 sunt expresii. Dacă valoarea expresiei exp1 este adevărată atunci valoarea şi
tipul expresiei va fi exp2; altfel valoarea şi tipul va fi exp3.
? : sunt operatorii condiţionali şi trebuie să fie folosiţi împreună.

g) Operatorul de conversie explicită


Acest operator realizează o schimbare temporară a tipului unei expresii şi are următoarea formă
generală:
(tip) expresie;

unde: tip este unul dintre tipurile de date admise în limbajul C++(int, float, char, etc.).

h) Operatorul dimensiune sizeof


Operatorul dimensiune are următoarea formă generală:
sizeof (data)

Acesta returnează lungimea în octeţi a unei date. Data poate fi numele unei variabile simple, al
unui tablou, al unei structuri, al unui tip sau referirea la elementul unui tablou sau structură.

II.5. Structura unui program C++

Ex :
#include <iostream> //directiva preprocesor
using namespace std; //declararea spațiului de nume
int main() //antetul funcției principale
{ //începutul blocului
//parte declarativă
cout<< “Un exemplu ”; //partea procedurală care conține instrucțiuni ce descriu pașii
//algoritmului
cout<<”foarte simplu” ;
return 0;
} //sfârșitul blocului
Instrucțiunile unui program C++ sunt grupate în niște entități numite funcții. Orice program trebuie
să conțină cel puțin o funcție, cu numele main, numită funcție principală. Ea se execută automat
atunci când lansăm în execuție programul. Pe lângă funcția principală, un program poate să conțină
oricâte alte funcții, numite funcții definite de utilizator.

Orice funcție C++ este alcătuita din două părți :


§ antetul functiei
§ corpul functiei
Antetul functiei, trebuie sa arate astfel :

<tipul_valorii_returnate> <numele_functie> (<lista_parametrilor_formali>)

Parametrii formali sunt niste identificatori de variabile pe care le foloseste functia cand se executa.
Daca functia are parametri formali, atunci la apel trebuie sa-i dam valori concrete ale acestora,
valori numite parametri actuali (efectivi). O functie poate sa returneze o anumita valoare, de un
anumit tip. Daca o functie nu returneaza nicio valoare, atunci spunem ca tipul valorii returnate este
void(nimic).

Ex: void main()

Daca nu exista parametri se vor scrie numai parantezele, sau cuvantul void intre paranteze. Daca
tipul valorii returnate este void, el poate sa lipseasca.

Putem folosi si alte forme ale antetului, ca de exemplu: main(), void main(void), main(void).

Totalitatea instructiunilor unei functii alcatuiesc corpul functiei. Acesta trebuie cuprins intre acolada
deschisa si acolada inchisa, chiar daca nu contine nicio instructiune.

Limbajul C++ face distinctie intre literele mari si literele mici.

Directive preprocesor

Orice mediu de programare in C++ dispune de un set important de functii predefinite. Ele au
fost scrise de autorii limbajului, fac parte din intriseca din limbaj si le putem folosi oriunde in
program.

Toate functiile predefinite, isi au prototipul (definitia) in niste fisiere cu extensia .h, numite
header-e. pentru a folosi o functie predefinita, trebuie sa scriem la inceputul programului o asa-
numita directiva preprocesor, adica biblioteca din care face parte functia respectiva.

Sintaxa unei directive preprocesor:

#include <nume_header>

Ex:
#include <math.h> - sunt incluse functiile matematice
#include <iostream> - permite efectuarea citirilor/afisarilor

II.6. Structuri de control


Prin structuri de control înţelegem instrucţiunile limbajului şi funcţiile specifice menite
să controleze modul de execuţie al programelor.
Limbajul C a fost prevăzut cu instrucţiuni menite să permită realizarea simplă a
structurilor proprii programării structurate. Structura secvenţială se realizează cu ajutorul
instrucţiunii compuse, structura alternativă cu ajutorul
instrucţiunii if, structura repetitivă condiţionată anterior, prin intermediul instrucţiunilor while şi
for, structura selectivă cu ajutorul instrucţiunii switch, iar structura repetitivă condiţionată
posterior cu ajutorul instrucţiunii do-while.
Limbajul C are şi alte instrucţiuni care reprezintă elemente de bază în construirea
structurilor amintite mai sus. Astfel de instrucţiuni sunt : instrucţiunea expresie şi
instrucţiunea vidă. Alte instrucţiuni prezente în limbaj asigură o flexibilitate mai mare în
programare. Acestea sunt instrucţiunile: return, break, continue şi goto .

Instrucţiunea vidă

Se reduce la punct şi virgulă (;). Ea nu are nici un efect. Instrucţiunea vidă se utilizează
în construcţii care cer prezenţa unei instrucţiuni, dar nu trebuie să se execute nimic în punctul
respectiv. Astfel de situaţii apar frecvent în cadr ul structurii alternative şi repetitive, aşa cum se va
vedea în continuare.

Instrucţiunea expresie

Se obţine scriind punct şi virgulă după o expresie. Deci, instrucţiunea expresie are sintaxa :
expresie ;
În cazul în care expresia din compunerea unei instrucţiuni expresie este o expresie de atribuire, se
spune că instrucţiunea respectivă este o instrucţiune de atribuire. Un alt caz frecvent utilizat
este acela când expresia este un operand ce reprezintă apelul unei funcţii. În acest caz,
instrucţiunea expresie este o instrucţiune de apel a funcţiei respective.
Observaţie : Nu orice expresie urmată de punct şi virgulă formează o instrucţiune expresie
efectivă. De exemplu construcţia a; deşi este o instrucţiune expresie, ea nu are nici un efect.

Instrucţiunea compusă

Instrucţiunea compusă este o succesiune de instrucţiuni incluse între acolade, succesiune


care poate fi precedată şi de declaraţii :
{
declaraţii
instrucţiuni
}
Dacă declaraţiile sunt prezente, atunci ele definesc variabile care sunt definite atât timp cât
controlul programului se află la o instrucţiune din compunerea instrucţiunii compuse.
Instrucţiunea compusă se utilizează unde este necesară prezenţa unei instrucţiuni, dar
procesul de calcul din punctul respectiv este mai complex şi se exprimă prin mai multe
instrucţiuni. În acest caz instrucţiunile respective se includ între acolade pentru a forma o
instrucţiune compusă. Acest procedeu de a forma o instrucţiune compusă din mai multe
instrucţiuni se utilizează frecvent în construirea structurilor alternative şi ciclice.

Instrucţiunea if

Are următoarele formate :

format1 : if (expresie) instrucţiune;


format2: if (expresie) instrucţiune1;


else instrucţiune2;

La întâlnirea instrucţiunii if întâi se evaluează expresia din paranteze. Apoi, în cazul


formatului 1, dacă expresia are valoarea diferită de zero (adică true) se execută instrucţiune,
altfel se trece în secvenţă la instrucţiunea următoare instrucţiunii if. În cazul formatului 2, dacă
expresia are o valoare diferită de zero, atunci se execută instrucţiune1 şi apoi se trece în
secvenţă la instrucţiunea aflată după instrucţiune2, altfel (condiţia este zero, adică false) se
execută instrucţiune2.
În mod normal, în ambele formate, după execuţia instrucţiunii if se ajunge la
instrucţiunea următoare ei. Cu toate acestea, este posibilă şi o altă situaţie când instrucţiunile din
compunerea lui if definesc ele însele un alt mod de continuare a execuţiei programului.
Deoarece o instrucţiune compusă este considerată ca fiind un caz particular de
instrucţiune, rezultă că instrucţiunile din compunerea lui if pot fi instrucţiuni compuse. De
asemenea, instrucţiunile respective pot fi chiar instrucţiuni if. În acest caz se spune că
instrucţiunile if sunt imbricate.

Funcţia standard exit

Funcţia exit are prototipul : void exit(int cod);


şi el se află în fişierele header stdlib.h şi process.h. La apelul acestei funcţii au loc următoarele
acţiuni:
· se videază zonele tampon (bufferele) ale fişierele deschise în scriere
· se închid toate fişierele deschise
· se întrerupe execuţia programului
Parametrul acestei funcţii defineşte starea programului la momentul apelului. Valoarea 0
defineşte o terminare normală a execuţiei programului, iar o valoare diferită de 0 semnalează
prezenţa unei erori (terminarea anormală a execuţiei
programului).
În concluzie, putem apela funcţia exit pentru a termina execuţia unui program, indiferent
de faptul că acesta se termină normal sau din cauza unei erori.

Instrucţiunea while

Are sintaxa : while (expresie) instrucţiune;


Prima parte din acest format constituie antetul instrucţiunii while, iar instrucţiune este
corpul ei. La întâlnirea acestei instrucţiuni întâi se evaluează expresia din paranteze. Dacă ea are
valoarea true (este diferită de 0), atunci se execută instrucţiune. Apoi se revine la punctul în
care se evaluează din nou valoarea expresiei din paranteze. În felul acesta, corpul ciclului se
execută atât timp cât expresia din antetul ei este diferită de 0. În momentul în care expresie are
valoarea 0, se trece la instrucţiunea următoare instrucţiunii while.
Corpul instrucţiunii while poate să nu se execute niciodată. Într-adevăr dacă expresie
are valoarea 0 de la început, atunci se trece la instrucţiunea următoare instrucţiunii while fără a
executa niciodată corpul instrucţiunii respective.
Corpul instrucţiunii while este o singură instrucţiune care poate fi compusă. În felul
acesta avem posibilitatea să executăm repetat mai multe instrucţiuni grupate într-o instrucţiune
compusă. Corpul instrucţiunii while poate fi o altă instrucţiune while sau să fie o instrucţiune
compusă care să conţină instrucţiunea while. În acest caz se spune că instrucţiunile while
respective sunt imbricate.
Instrucţiunile din corpul unei instrucţiuni while pot să definească un alt mod de execuţie a
instrucţiunii while decât cel indicat mai sus. Astfel, se poate realiza terminarea execuţiei
instrucţiunii while fără a se mai ajunge la evaluarea expresiei din antetul ei. De exemplu, dacă
în corpul unei instrucţiuni while se apelează funcţia exit, atunci se va termina execuţia ciclului
while, deoarece se întrerupe chiar execuţia programului. Despre instrucţiunea while se spune că

este o instrucţiune ciclică condiţionată anterior.

Instrucţiunea for
Instrucţiunea for, ca şi instrucţiunea while, se utilizează pentru a realiza o structură
repetitivă condiţionată anterior. Are sintaxa :
for (exp1 ; exp2 ; exp3) /* antet */
instrucţiune; /* corpul ciclului*/

unde exp1, exp2 şi exp3 sunt expresii.

Expresia exp1 se numeşte partea de iniţializare a ciclului for, iar exp3 este partea de
reiniţializare a lui. Expresia exp2 este condiţia de terminare a ciclului for şi ea joacă acelaşi rol
cu expresia din ciclul while. Instrucţiunea for se execută astfel :
· Se execută secvenţa de iniţializare definită de exp1
· Se evaluează exp2. Dacă are o valoare diferită de 0 (este true), atunci se execută instrucţiunea
care formează corpul ciclului. Altfel, (expresia are valoarea 0 adică false) se termină execuţia
instrucţiunii for şi se trece la instrucţiunea următoare.
· După executarea corpului ciclului se execută secvenţa de reiniţializare definită de exp3. Apoi
se reia execuţia de la
pasul 2 .
Ca şi în cazul instrucţiunii while, instrucţiunea din corpul ciclului for nu se execută
niciodată dacă exp2 are valoarea 0 chiar de la început. Expresiile din antetul lui for pot fi şi
vide. Caracterele punct şi virgulă vor fi întotdeauna prezente. În general, instrucţiunea for poate
fi scrisă cu ajutorul unei secvenţe în care se utilizează instrucţiunea while
astfel :
exp1;
while(exp2)
{ instrucţiune;
exp3;
}
Această echivalare nu are loc într-un singur caz şi anume atunci când, în corpul instrucţiunii se
utilizează instrucţiunea continue. Reciproc, orice instrucţiune while poate fi scrisă cu ajutorul
unei instrucţiuni for în care exp1 şi exp3 sunt vide. Astfel, instrucţiunea while (exp)
instrucţiune; este echivalentă cu instrucţiunea for (; exp ;) instrucţiune; .
O instrucţiune for de forma for (; ;) instrucţiune; este validă şi este echivalentă cu
instrucţiunea : while(1) instrucţiune;. Un astfel de ciclu se poate termina prin alte mijloace
decât cel obişnuit, cum ar fi instrucţiunea de revenire dintr-o funcţie, un salt la o etichetă etc.
Din cele de mai sus rezultă echivalenţa celor două cicluri while şi for. Se recomandă
folosirea instrucţiunii for în ciclurile în care sunt prezente părţile de iniţializare şi reiniţializare,
aşa numitele cicluri cu pas.

Instrucţiunea do-while

Realizează structura ciclică condiţionată posterior. Această instrucţiune poate fi


realizată cu ajutorul celorlalte instrucţiuni definite până în prezent. Cu toate acestea, prezenţa ei
în limbaj măreşte flexibilitatea în programare. Sintaxa ei este :
do{
instrucţiune; /* corpul ciclului */
}while(expresie);
Instrucţiunea se execută în felul următor : se execută instrucţiune, se evaluează
expresie; dacă aceasta are o valoare diferită de 0 (true) atunci se revine la execuţia instrucţiunii,
altfel (expresia are valoarea 0) se trece în secvenţă, la instrucţiunea următoare instrucţiunii do-
while.

Se observă că în cazul acestei instrucţiuni întâi se execută instrucţiune şi apoi se testează


condiţia de repetare a execuţiei ei. Instrucţiunea do-while este echivalentă cu secvenţa :
instructiune;
while (expresie) instrucţiune;
În cazul instrucţiunii do-while corpul ciclului se execută cel puţin o dată, spre deosebire de cazul
instrucţiunii while şi for, când este posibil să nu execute niciodată.

Instrucţiunea continue

Această instrucţiune se poate utiliza numai în corpul unui ciclu. Ea permite abandonarea iteraţiei
curente. Sintaxa ei este : continue;. Efectul instrucţiunii este următorul :
a) În corpul instrucţiunilor while şi do-while
La întâlnirea instrucţiunii continue se abandonează iteraţia curentă şi se trece la
evaluarea expresiei care stabileşte continuarea sau terminarea ciclului respectiv (expresia inclusă
între paranteze rotunde şi care urmează după cuvântul cheie while).
b) În corpul instrucţiunii for
La întâlnirea instrucţiunii continue se abandonează iteraţia curentă şi se trece la
execuţia pasului de reiniţializare.
Instrucţiunea continue nu este obligatorie. Prezenţa ei măreşte flexibilitatea în scrierea
programelor C. Ea conduce adesea la diminuarea nivelurilor de imbricare ale instrucţiunilor if
utilizate în corpul ciclurilor.
Instrucţiunea continue este folosită rareori, nu pentru că folosirea ei nu ar fi o practică bună, ci
pentru că aplicaţiile în care ar putea fi utilizată sunt mai rare.

Instrucţiunea break

Este înrudită cu instrucţiunea continue. Ea are formatul : break;


Poate fi utilizată în corpul unui ciclu. În acest caz, la întâlnirea instrucţiunii break se termină
execuţia ciclului în al cărui corp este inclusă şi execuţia continuă cu instrucţiunea următoare
instrucţiunii ciclice respective. Această instrucţiune, la fel ca şi instrucţiunea continue, măreşte
flexibilitatea la scrierea programelor în limbajele C şi C++ .

Instrucţiunea switch

Permite realizarea structurii selective. Aceasta este o generalizare a structurii alternative şi a fost
introdusă de Hoare. Ea poate fi realizată prin instrucţiuni if imbricate. Utilizarea instrucţiunii
switch face ca programul să fie mai clar decât dacă se utilizează varianta cu instrucţiuni if
imbricate. Structura selectivă, în forma în care a fost ea acceptată de către adepţii programării
structurate, se realizează în limbajul C cu ajutorul următorui format al instrucţiunii switch :
switch(expresie)
{
case c1: sir_1 break;
case c2: sir_2 break;
……….
case cn: sir_n break;
default: sir }

unde :
c1,c2,…,cn sunt constante integrale
sir_1,sir_2,…..sir_n,sir sunt succesiuni de instrucţiuni

Instrucţiunea switch cu formatul de mai sus se execută astfel :


· Se evaluează expresia dintre parantezele rotunde
· Se compară pe rând valoarea expresiei cu valorile constantelor c1,c2,…,cn. Dacă valoarea
expresiei coincide cu una din constante, să zicem cu ci, atunci se execută secvenţa sir_i, apoi
se trece la instrucţiunea următoare instrucţiunii
switch, adică la instrucţiunea aflată după acolada închisă care termină instrucţiunea. Dacă
valoarea respectivă nu coincide cu nici una din constantele c1,c2,….cn, atunci se execută
succesiunea de instrucţiuni sir din default şi apoi se trece la instrucţiunea următoare
instrucţiunii switch.
Menţionăm că este posibil să nu se ajungă la instrucţiunea următoare instrucţiunii switch
în cazul în care succesiunea de instrucţiuni selectată pentru execuţie (sir_i sau sir) va defini
ea însăşi un alt mod de continuare a execuţiei programului (de exemplu, execuţia instrucţiunii
de revenire dintr-o funcţie, saltul la o instrucţiune etichetată etc.). Succesiunile
sir_1,sir_2,…..,sir_n se numesc alternativele instrucţiunii switch. Alternativa sir este
opţională, deci într-o instrucţiune switch secvenţa default : sir poate fi absentă. În acest caz,
dacă valoarea expresiei nu coincide cu valoarea nici uneia dintre constantele c1,c2,.. ..cn,
atunci instrucţiunea switch nu are nici un efect şi se trece la execuţia instrucţiunii următoare.

Instrucţiunea break de la sfârşitul fiecărei alternative permite ca la întâlnirea ei să se


treacă la execuţia instrucţiunii următoare instrucţiunii switch. Se obişnuieşte să se spună că
instrucţiunea break permite ieşirea din instrucţiunea switch.
Instrucţiunea break poate fi utilizată numai în corpurile ciclurilor şi în alternativele
instrucţiunii switch. Prezenţa ei la sfârşitul fiecărei alternative nu este obligatorie. În cazul în
care instrucţiunea break este absentă la sfârşitul unei alternative, după execuţia succesiunii de
instrucţiuni din compunerea alternativei respective se trece la ex ecuţia succesiunii de
instrucţiuni din alternativa următoare a aceleaşi instrucţiuni switch.

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