2.4Expresii relaţionale
O operaţie definită pentru tipurile de date fundamentale este compararea. Operatorii relaţionali ai limbajelor C şi C++ sunt, în ordinea priorităţilor
<, <=, >, >=
= =, !=
O expresie relaţională are următoarea formă
expresie aritmetică operator relaţional expresie aritmetică
Rezultatul evaluării unei expresii relaţionale este fals sau adevărat (false sau true). Priorităţile operatorilor aritmetici sunt mai mari decât ale operatorilor relaţionali.
2.5Expresii booleene
Operatorii booleeni ai limbajelor C şi C++ sunt, în ordinea priorităţilor
!
&&
| |
care reprezintă operatorii nu (not), şi (and), respectiv sau (or). Operatorul nu este operator unar. Aceşti operatori se definesc folosind tabelele de adevăr.
x
|
y
|
x && y
|
x | | y
|
false
|
false
|
false
|
false
|
false
|
true
|
false
|
true
|
true
|
false
|
false
|
true
|
true
|
true
|
false
|
true
|
x
|
!x
|
false
|
true
|
true
|
false
|
Rezultatul evaluării unei expresii booleene este true sau false. Operatorii and şi or sunt comutativi şi asociativi la stânga.
Instrucţiunile de selecţie permit executarea unui anumit grup de instrucţiuni în funcţie de indeplirea unei condiţii. Instrucţiunile de selecţie sunt if, ? şi switch.
Instrucţiunile de ciclare sau iterative permit executarea unui grup de instrucţiuni de un anumit număr de ori, sau cât timp este îndeplinită o condiţie logică. Instrucţiunile de ciclare sunt: for, while şi do-while.
Toate aceste instrucţiuni pot executa instrucţiuni compuse (blocurri de instrucţiuni) ce conţin instrucţiuni cuprinse între acolade, { şi }. In instrucţiunile compuse se pot defini variabile locale ce există doar în interiorul instrucţiunii.
2.6.1Instrucţiunea de selecţie (if)
Sintaxa instructiunii if este urmatoarea:
if (expresie)
instrucţiune1;
[else
instrucţiune2;]
unde expresie este o expresie în sensul limbajului C şi instrucţiune1 şi instrucţiune2 reprezintă o singură instrucţiune C/C++ sau un bloc de instrucţiuni între acolade. Partea else a instrucţiunii este opţională.
Mod de executie:
Pasul 1: se evaluează “expresie”.
Pasul 2: dacă expresie este adevarată (diferită de zero) atunci se execută instrucţiune1, trecându-se apoi la executarea următoarei instrucţiuni din program. Dacă expresie este falsă (egalǎ cu zero) şi partea else este prezentă, atunci se execută instrucţiune2.
2.6.2Instrucţiunea de selecţie ternarǎ (?)
Sintaxa instrucţiunii de selectie ternară ? este următoarea:
expresie ? instrucţiune1: instrucţiune2;
unde: expresie, instrucţiune1 şi instrucţiune2 sunt o expresie şi instrucţiuni în sensul limbajului C.
Mod de execuţie:
Pasul 1: se evalueazǎ “expresie”;
Pasul 2: dacǎ expresie1 este adevarată (diferită de zero) se evaluează expresie2 care devine valoarea întregii expresii. Dacă expresie1 este falsă (egală cu zero) se evaluază expresie3 care devine valoarea întregii expresii.
Aceastǎ selecţie se mai numeşte ternară deoarece necesită trei operanzi şi poate înlocui instrucţiunea de selecţie if.
2.6.3Instrucţiunea de selecţie cu mai multe alternative (switch)
Sintaxa instrucţiunii switch este următoarea:
switch (expresie)
{
case expresie_constanta1:
secventa1_de_instructiuni;
[break;]
case expresie_constanta2:
secventa2_de_instructiuni;
[break;]
………………………………..
default:
secventa_de_instructiuni;
}
unde:
-
expresie este o expresie întreagă care reprezintă valoarea de selecţie a secvenţei de instrucţiuni ce urmeazǎ sǎ fie executată
-
secventai_de_instrucţiuni, i = 1, 2, …reprezintă o secvenţă de instrucţiuni din C/C++
-
expresie_constantai, i = 1, 2, … este o expresie constantă de tip literal caracter sau întreg sau o constantǎ de tip caracter sau întreg, de acelaşi tip cu tipul expresiei de selecţie şi reprezintă eticheta grupului de instrucţiuni la începutul căruia apare.
2.6.4Instrucţiunea de ciclare cu un numǎr cunoscut de paşi (for)
Instrucţiunea for are următoarea sintaxă:
for ([expresie1];[expresie2];[expresie3])
instrucţiune;
unde:
-
expresie1 reprezintă, în general, instrucţiuni de atribuire (una sau mai multe) folosite pentru a stabili valorile iniţiale ale variabilelor de control ale ciclului instrucţiunii,.
-
expresie2 este o expresie condiţională, a cărei valoare determină continuarea sau oprirea executării ciclului instrucţiunii,.
-
expresie3 reprezintă instrucţiuni de modificare ale variabilelor de control ale ciclului după fiecare repetare a ciclului,.
-
instructiune este o instrucţiune executabilă sau un bloc de instrucţiuni care poate să conţină orice instrucţiune executabilă, inclusiv instrucţiuni de salt (break, continue).
2.6.5Instrucţiunea de ciclare cu testarea iniţialǎ a condiţiei de ciclare(while)
Sintaxa instrucţiunii este:
while (expresie)
instructiune;
unde:
-
expresie poate fi orice expresie care poate lua o valoare diferită de zero (asociată cu valoarea logică true) sau o valoare egală cu zero (asociată cu valoarea logică false),
-
instructiune formează corpul ciclului, care se execută cât timp expresie este adevarată (diferită de zero), şi poate fi o singurǎ instrucţiune sau un bloc de instrucţiuni.
2.6.6Instructiunea de ciclare cu testarea finalǎ a condiţiei de ciclare (do-while)
Sintaxa instrucţiunii este:
do
{
instructiune;
}
while (expresie);
unde:
-
expresie poate fi orice expresie care poate lua o valoare diferită de zero (asociată cu valoarea logică true) sau o valoare egală cu zero (asociată cu valoarea logică false),
-
instructiune formează corpul ciclului, care se executǎ cât timp expresie este adevarată (diferită de zero), şi poate fi o singurǎ instrucţiune sau un bloc de instrucţiuni.
In multe dintre problemele ce urmează vom prelucra tablouri. In limbajele C şi C++ indicii tablourilor pornesc de la zero.
Dostları ilə paylaş: |