Expresii

Asa cum am mai spus, orice algoritm porneste de la datele de intrare (acele date cunoscute in problema) pe care le prelucreaza si ajunge astfel, la datele de iesire (datele care trebuiau aflate). Datele pot fi de mai multe tipuri: reale, intregi, caractere, siruri de caractere, logice...

Variabilele sunt acele date care nu-si pastreaza valoarea. Tipurile de variabile coincid cu tipurile de date. O variabila se caracterizeaza prin: numele variabilei, tipul variabilei, valoarea variabilei si locul ocupat in memoria calculatorului (adresa ei).

Sarcina principala a calculatorului este aceea de a efectua calcule. Pentru a putea realiza acest lucru, calculatorul trebuie sa primeasca o descriere a operatiilor pe care trebuie sa le efectueze. Calculele sunt descrise cel mai bine prin expresii. Notiunea de expresie s-a mai intalnit si la matematica.

Putem spune pe scurt, ca o expresie este formata din unul sau mai multi operanzi legati prin operatori.

Operanzii cei mai desi intalniti sunt:

- o constanta

- numele unei variabile simple

- expresie introdusa intre paranteze rotunde

- functii predefinite cum ar fi cos, sin, abs, sqrt...

- numele unui tablou, referirea la un element al unui tablou, apelul unei functii etc.

Unui operand ii corespunde un tip si o valoare.

Operatorii sunt sunt simboluri utilizate pentru precizarea oparatiilor care trebuie executate asupra operanzilor. 

Operatorii cei mai cunoscuti sunt:

1. unari: se aplica unui singur operand

2. binari: se aplica la doi operanzi

...

Operatorii sunt de mai multe tipuri, cei mai importanti fiind:

- operatori aritmetici

- operatori logici

- operatori relationali

Dupa ordinea de succedare a operatorilor si operanzilor, operatorii se pot grupa in:

- prefixati

- infixati

- postfixati

Cu alte cuvinte, putem defini o expresie ca fiind o serie de valori care intra in calcul numire operanzi si din simboluri care specifica operatiile care trebuiesc efetuate cu valorile, numite operatori.

Un rol important in evaluarea unei expresii o au regulile pentru conversie implicita si prioritatea operatorilor.

Reguli de conversie implicita

Aceaste reguli sunt aplicate atunci cand asupra a doi operanzi de tipuri diferite li se aplica un operator binar.

Operandul de tipul "inferior" va fi convertit la tipul operandului "superior" rezultatul obtinut fiind de tipul operandului "superior".

Prioritatea operatorilor

Si la expresiile din algoritmi avem aceiasi prioritate a operatorilor ca la expresiile matematice. Avand in vedere principalii operatori reamintim prioritatea operatorilor:

1. negatia

2. ridicarea la putere

3. inmultire si impartire  (and pentru operatorii logici)

4. adunare si scadere    (or pentru operatorii logici)

5. comparare (>, <,  =, <=, >=, <>)

 

 

In pseudocod se intalnesc urmatorii operatori:

1. Operatori aritmetici

- aditivi: adunare (+), scadere (-)

- multiplicativi: inmultire (*) , impartire (/), restul impartirii a doua numere intrgi (%)

Observatie: Daca ambii oparatanzi din expresia a/b sunt numere intregi atunci rezultatul expresiei este un numar intreg, reprezentand catul impartirii lui a la b.

De exemplu:

E=3+5 ; + este operator aditiv, rezultatul evaluarii expresiei E este 8

E=3*5; * este operator aditic, rezultatul expresiei E este 15

E=5%3; Rezultatul expresiei este restul impartirii lui 5 la 3, adica 2

E=5/3; 5 si 3 sunt 2 numere intregi, rezultatul expresiei este 1

E=5.0/3; 5.0 este numar real iar 3 este numar intreg. Rezultatul evaluarii expresiei este 1.66

 

2. Operatori relationali: descriu relatia de ordine sau egalitate dintre 2 operanzi.

>   mai mare

<   mai mic

>= mai mare egal

<= mai mic egal

= egal (mai e intalnit si sub forma  == )

<> diferit (mai e intalnit si sub forma != )

 

3. Operatori logici: definesc o relatie logica. O expresie cu operatori logici va avea dupa evaluare valoare "Adevarat" (True) sau "Fals" (False).

Operatorii logici sunt:

!                            negatie logica

si  / and                conjunctie logica

sau / or                 disjunctie logica 

De exemplu, sa se afiseze pentru diferitele valori logice ale lui a si b valoarea expresiei: (a or b)and !(a and b) or a

 

 

 

counter for wordpress

View My Stats