Lectia 5: Operatori in programare

De ce aveti nevoie

  • Mediul CodeBlocks instalat pe pc propriu.
  • Cunoasterea foarte buna a matematicii din clasele 5-8.

Expresii si tipuri de operatori

In acest articol se vor discuta utilizarea de operatori in programare.

O expresie este o compunere de functii matematice, iar operanzii sunt argumentele acestei functii. Un exemplu de expresie este “1+2+3”. Aici operanzii sunt numerele 1, 2 si 3, iar operatorii sunt + si +. Rezultatul este de tip numar intreg.

Se poate define o functie suma: Z->Z astfel suma(a,b) = a+b. Expresia noastra in acest caz se rescrie suma(suma(1,2),3). Se observa ca s-a folosit o compunere de functii matematice.

Asa cum am vazut utilizarea operatorului +, exista si alte tipuri de operatori utilizati in programarea calculatoarelor.

Operatori Aritmetici: + | – | * | / | % | ++ | —

Dupa cum se poate deduce, rezultatul aplicarii de operatori aritmetici este un numar intreg.

Exemplu

Rezultatul evaluarii expresiei 3+2*4  este 11

In afara de operatorii matematici bine-cunoscuti (+, -, *,| / ) mai exista si operatorul “modulo” scris %, prin care se evalueaza restul impartirii unui numar la un alt numar.

Exemplu

Rezultatul evaluarii expresiei 4 % 3 este 1 (1 este restul impartirii lui 4 la 3)

In C++ exista si operatori de incrementare(++) si decrementare(–).

Operatorul de incrementare creste valoarea unui numar cu o unitate, “expresie++” fiind echivalent cu instructiunea de atribuire: expresie = expresie + 1. Intr-un mod similar, exista operatorul de decrementare(–) care scade valoarea 1 dintr-o expresie data.

Exemplu

int a; // declaram o variabila a de tip intreg

a = 3 // atribuim variabilei a valoarea 3

a++; //aplicam operatorul de incrementare asupra lui a (expresie echivalenta cu a=a+1;)

cout<<a; // afisam noua valoare a lui a  adica 3+1=4

Operatori de comparatie < | <= | == |>=|>!=

Operatorii de comparatie compara 2 valori si returneaza adevarat sau fals, in functie de rezultatul comparatiei.

Exemplu

3>2 se evalueaza la adevarat

3<=2 se evalueaza la fals

1!=2 se evalueaza la adevarat

2!=2 se evalueaza la fals

2==2 se evalueaza la adevarat

Se pot scrie si combinatii de variabile si constante:

int a; // declaram a

a=2; // a primeste valoarea 2

if (a==2) // daca a este egal cu 2

cout<<”expresie adevarata”; // afisam un mesaj corespunzator

else // altfel (daca a nu este egal cu 2)

cout<<”expresie falsa”; // afisam un mesaj corespunzator

Operatori Logici (&& | || | !)

Cei mai utilizati operatori de logica utilizati in matematica sunt: SI(scris &&), SAU(scris ||) si NU(scris !).

Operatorul SI/AND (se scrie in C++ cu 2 semne ampersand unul langa altul, fara spatii intre ele &&)

Fiind date 2 expresii logice, rezultatul aplicarii operatorului SI pentru ele este adevarat, doar daca ambele expresii logice sunt adevarate.

Exemplu

Rezultatul evaluarii propozitiei ((New York este in America de Nord) si (Soarele rasare de la rasarit)) este ADEVARAT (true in engleza).

Rezultatul evaluarii expresiei (1>=1) && (2>3) este FALS. (1 este mai mare sau egal cu 1 dar 2 NU este mai mare decat 3 – cele 2 expresii logice nu mai sunt adevarate simultan).

Tabelul complet pentru operatorul SI este ilustrat in figura urmatoare (A vine de la adevarat si F vine de la fals):

Operatorul SAU/OR (se scrie in C++ cu 2 linii verticale una langa alta: || )

Fiind date 2 expresii logice, rezultatul aplicarii operatorului SAU pentru ele este adevarat, doar daca cel putin una din expresii este adevarata.

Exemplu

Rezultatul evaluarii propozitiei ((New York nu este in America de Nord) sau (Soarele rasare de la rasarit)) este ADEVARAT (true in engleza): prima propozitie este falsa dar cea de-a 2-a este adevarata, asadar este indeplinita conditia ca una din propozitii sa fie adevarata.

Rezultatul evaluarii expresiei (1>=1) || (2>3) este FALS. (1 este mai mare sau egal cu 1 este adevarat, conditie suficienta pentru ca expresia sa fie adevarata).

Tabelul complet pentru operatorul SI este ilustrat in figura urmatoare (A vine de la adevarat si F vine de la fals):

Operatorul NU/NOT(scris in C++ cu semnul exclamarii sau !)

Operatorul NU primeste ca argument o expresie logica si intoarce negarea acesteia.

Exemplu

Expresia (Soarele rasare de la rasarit.) este o propozitie adevarata, iar negarea acesteia (Soarele nu rasare de la rasarit) este bineinteles o propozitie falsa.

Expresia 4>3 este falsa, dar negarea acesteia !(4>3) este adevarata.

Tabelul complet pentru operatorul NU este ilustrat in figura urmatoare (A vine de la adevarat si F vine de la fals):

Dupa cum se poate observa in tabel, ceva care nu este adevarat este fals, iar ceva care este nu este fals este adevarat.

Operatorul de atribuire (se scrie in C++ cu semnul =)

Cu acest operator se seteaza valori noi pentru variabile (am discutat despre variabile in Lectia 4).

Exemplu

Expresia “s = s + 2” se traduce prin noua valoare a variabilei s primeste vechea valoare a variabilei la care se aduna constanta/numarul intreg 2.

int s; // declaram variabila s de tip intreg

s= 5; // atribuim lui s valoarea 5

s=s+2; // atribuim lui s vechea valoare(adica 5) la care adunam 2

cout<<s;// afisam rezultatul, adica 7

Tema operatori in programare

Evaluati urmatoarele expresii in functie de tipul de rezultat(numar intreg sau valoare de adevar):

  1. 3>5 || 1>=2 (0.5pct)
  2. true==true (0.5pct)
  3. !(3>4) && 1>=2 (0.5pct)
  4. (1<=2) && (2<=3) && (3<=4) (1pct)
  5. 4+(5%3)-1 (1pct)
  6. 3>=((2%3)+1) (1pct)
  7. n=3; n+1>=4; (0.5pct)
  8. (++3) + (++4) (2pct)
  9. ((++3)>=4) || (1>2) && (2<=(++3)) (2pct)

Se acorda 1 punct din oficiu.

In aceasta lectie s-au discutat principalii operatori in programare la modul general si in limbajul C++. Pentru orice intrebare, utilizati link-urile de contact din partea dreapta-jos a ecranului.

Pentru un alt site al meu, puteti vizita site-ul atestat-informatica-liceu.ro .