Ieri la cursul de Evaluare de Expresii, Andreea se chinuia din greu să-și dezgândăcească codul. Venind la ea să o ajute, Oana s-a oripilat de forma pe care o aveau expresiile cu care se lupta Andreea și a zis că așa ceva nu se poate rezolva și că primul pas ar fi să le aducă într-o formă mai simplă.
Expresiile cu care lucrează Andreea sunt exprimate într-o formă funcțională care poate conține următoarele elemente:
În cele de mai sus $e_i$ sunt la rândul lor expresii și operația $/$ este împărțire pe numere reale (nu doar câtul împărțirii).
Oana o sfătuiește ca înainte de toate să-și traducă expresia din forma funcțională în forma normală care poate conține:
Pentru ca Andreea să poată rezolva mai departe problema corect, trebuie ca expresia rezultată să fie perfect echivalentă cu cea inițială. Două expresii se consideră echivalente dacă înlocuind variabilele din ele cu aceleași valori și se evaluează corespunzător cele două expresii, rezultatul final este același.
Întrucât Andreea se simte depășită de această transformare, voi, ca niște cavaleri ce sunteți, îi săriți în ajutor.
Dându-se o expresie în forma funcțională, să se traducă într-o expresie echivalentă în forma normală.
Pe prima linie se va afla un șir de caractere care nu conține spații și descrie o expresie corectă în formă funcțională.
Pe prima linie se va afișa un șir de caractere care nu conține spații și reprezintă o expresie în formă normală echivalentă cu expresia primită.
| |
Punctaj | Restricții |
|---|---|---|
| 1 | 31 | Expresia primită va conține doar funcții de tipul sum. |
| 2 | 32 | În expresia primită, toate funcțiile primite vor avea exact doi parametri. |
| 3 | 37 | Fără restricții adiționale. |
Intrare
sum(A,div(B,C),sub(D,E),mul(B,A))
Ieșire
A+B/C+D-E+B*A
Intrare
mul(I,div(V,sum(U,U),mul(N,E,P)))
Ieșire
I*V/(U+U)/(N*E*P)
| Autor: | Livia Măgureanu |
| Publicat de: | Oepeling |
Tags:
Stive Evaluare de expresii