

	Se considera expresiile aritmetice formate cu cifrele 0,1,..,9 si operatiile binare '+','-',
'*','/'; operatiile au prioritatile uzuale din calcule aritmetice, dar acestea pot fi modificate
folosind '(' si ')'.

a) Sa se construiasca pt. expresiile considerate un arbore binar a carui parcurgere in postordine
releva operatiile in ordinea prioritatilor de executie. De exemplu pt. expresia 1*(2+3), arborele
este:
	*		si parcurgerea 123+* arata ordinea prioritatilor de executie.
       / \
      1   +
	 / \
 	2   3

b) Sa se semnaleze pt. expresiile gresite cel mai probabil element care trebuie sa apara in locul
depistarii erorii.
c) Presupunem ca aceste expresii vor fi calculate folosind un calculator simplu alcatuit din: o
stiva, 2 locatii de memorie notate cu x si y, o band de locatii care pot contine simboluri de ope-
ratii sau numere intregi si operatiile:
ld a	: incarca elementul din varful stivei in locatia a;
st a	: memoreaza in stiva elementul din locatia a;
get a	: citeste in a elementul din pozitia curenta de pe banda si avanseaza la pozitia urmatoare
add a b	: a:=a+b
dif a b	: a:=a-b
mult a b: a:=a*b
div a b	: a:=a/b

	Sase furnizeze continutul initial al benzii si succesiunile de operatii necesare pt. cal-
cularea expresiei cu rezultatul depus in stiva. De exemplu pt. simbolul curent pe banda si 2 valori
numerice din stiva, secventa de calcul pt. diferenta este:
get x
ld y
dif x y
st x