with ada.integer_text_io; use ada.integer_text_io; with P_pile; procedure evalue is package pile_int is new P_pile(integer); use pile_int; function post_fix return integer is type Tvect is array (integer range <>) of character; vect:Tvect:=('4',' ','2','5','+'); p:Tpile; d1,d2:integer; nb:integer:=0; resultat:integer:=0; begin creer(p); for I in vect'range loop if (vect(I)/='+' and vect(I)/='-' and vect(I)/='*' and vect(I)/='/') then if vect(I)>='0' and vect(I)<='9' then -- nb:=nb*10+vect'pos(vect(I)-vect'pos('0')); nb:=nb*10+(character'pos(vect(I))-character'pos('0')); else empile(p,nb); nb:=0; end if; else -- empile(p,nb); -- d1:=v_sommet(p); depile(p); d2:=v_sommet(p); depile(p); case vect(I) is when '+' => resultat:=d1+d2; when '-' => resultat:=d2-d1; when '*' => resultat:=d1*d2; when '/' => resultat:=d2/d1; when others => null; end case; empile(p,resultat); end if; end loop; return resultat; end post_fix; begin put(post_fix); end evalue;