1. Ce erori de sintaxă conţin expresiile de mai jos?
a) (x+3, unde x este o variabilă întreagă
b) x+1, unde x este o variabilă de tip str (șir de caractere)
c) (x+1/((x+2)-1 (x este variabilă întreagă)
d) y=5x (x,y sunt variabile reale)
2.Considerăm
a = 2
b = 5
Care este valoarea rezultată în urma evaluării expresiei de mai jos?
True == a < b
Dar True == (a < b) ?
Dar not a + b ?
Dar a += b+1 ?
Explicați rezultatele.
Răspunsuri la întrebare
1. a) paranteza nepereche
b) operatorul '+' folosit asupra a doua tipuri de variabile incompatibile
c) paranteza nepereche
d) lipsa operatorului dintre 5 si x
2. True == a<b
a este intr-adevar mai mic decat b, deci a<b este adevarat.
true == true este adevarat
deci valoarea expresiei va fi true.
la fel si pentru true == (a<b), pentru ca oricum se evalueaza intai fiecare parte a operatorului == iar apoi se compara, deci parantezele nu schimba nimic.
not a are valoarea 0, daca a e diferit de 0, si valoarea 1, daca a e 0.
a este 2, deci not a va fi 0.
deci valoarea not a + b va fi 0+5, adica 5
operatorul += adauga la valoarea initiala a variabilei valoarea din dreapta sa. deci a+=b+1 va adauga valorii lui a valoarea b+1, adica noua valoare a lui a va fi 2+5+1, adica 8.
se poate efectua operatia de adunare dintre a si b+1, deci daca ai folosi expresia a += b+1 drept conditie pentru o instructiune if spre exemplu, valoarea sa va fi true.