Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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|}}
  
sda-aa/laboratoare/05.1616959485.txt.gz · Last modified: 2021/03/28 22:24 by cristian.rusu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0