This shows you the differences between two versions of the page.
|
sda-aa:laboratoare:05 [2021/03/28 22:24] cristian.rusu |
sda-aa:laboratoare:05 [2021/03/29 12:00] (current) cristian.rusu |
||
|---|---|---|---|
| Line 168: | Line 168: | ||
| Scrieți un program care folosește arbori pentru a evalua expresii matematice cu cifre. | Scrieți un program care folosește arbori pentru a evalua expresii matematice cu cifre. | ||
| - | Să considerăm o expresie matematică: 2 + 4*5 + 1*2*3. | + | Să considerăm o expresie matematică: 2+4*5+1*2*3. |
| Pentru a crea un arbore de parsare avem nevoie să folosim următoarele structuri: | Pentru a crea un arbore de parsare avem nevoie să folosim următoarele structuri: | ||
| Line 187: | Line 187: | ||
| Algoritmul presupune: | Algoritmul presupune: | ||
| - | |||
| * Se parcurge expresia,termen cu termen (un termen poate fi operator sau operand) | * Se parcurge expresia,termen cu termen (un termen poate fi operator sau operand) | ||
| * Dacă termenul curent este operand aceasta se adaugă in stivă rezultat și se trece la termenul urmator | * Dacă termenul curent este operand aceasta se adaugă in stivă rezultat și se trece la termenul urmator | ||
| - | * Daca termenul curent este operator ($) | + | * Daca termenul curent este operator (!) |
| * Daca stiva operatorilor este vidă,se adaugă operatorul in stiva de operatori și se trece la termenul urmator | * Daca stiva operatorilor este vidă,se adaugă operatorul in stiva de operatori și se trece la termenul urmator | ||
| * Dacă stiva nu este vidă: | * Dacă stiva nu este vidă: | ||
| Line 199: | Line 198: | ||
| * Se creează un nou rezultat intermediar,aplicând operatorul extras pe cele două rezultate de mai sus | * Se creează un nou rezultat intermediar,aplicând operatorul extras pe cele două rezultate de mai sus | ||
| * Acest rezultat intermediar se adaugă în stiva de rezultate | * Acest rezultat intermediar se adaugă în stiva de rezultate | ||
| - | * Se verifică condițiile de la $(se compară din nou același operator curent cu operatorul din vârful stivei). | + | * Se verifică condițiile de la ! (se compară din nou același operator curent cu operatorul din vârful stivei). |
| + | |||
| + | Construiți arborele asociat expresiei. | ||
| + | |||
| + | {{:sda-aa:laboratoare:ast_stiva.jpg?800|}} | ||