Differences

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

Link to this comparison view

sd-ca:laboratoare:laborator-09 [2015/05/08 09:29]
daniel.ciocirlan1607 [Exerciții]
sd-ca:laboratoare:laborator-09 [2015/05/10 08:43] (current)
mihai.neacsu2901 [Exerciții] Update tasks solution file name
Line 7: Line 7:
  
 În urma parcurgerii laboratorului,​ studentul va fi capabil să: În urma parcurgerii laboratorului,​ studentul va fi capabil să:
-  *să înţeleagă noţiunea de arbore şi structura unui arbore binar +  *înţeleagă noţiunea de arbore şi structura unui arbore binar 
-  *să construiască,​ în limbajul C++, un arbore binar +  *construiască,​ în limbajul C++, un arbore binar 
-  *să realizeze o parcurgere a structurii de date prin mai multe moduri +  *realizeze o parcurgere a structurii de date prin mai multe moduri 
-  *să citească o expresie matematică şi să-i construiască arborele binar asociat +  *citească o expresie matematică şi să-i construiască arborele binar asociat 
-  *să evalueze o expresie matematică dată printr-un arbore binar.+  *evalueze o expresie matematică dată printr-un arbore binar.
 ===== Noțiuni teoretice ===== ===== Noțiuni teoretice =====
  
Line 157: Line 157:
 ===== Exerciții ===== ===== Exerciții =====
  
- +Acest laborator se va realiza pornind de la **{{:​sd-ca:​laboratoare:​labbinarytree-tasks.zip|scheletul de cod}}**.
-Acest laborator se va realiza pornind de la **{{:​sd-ca:​laboratoare:​lab08-tasks.zip|scheletul de cod}}**.+
  
 În cadrul arhivei, aveți la dispoziție un parser pentru expresii logice sub **forma normal disjunctivă - DNF**: În cadrul arhivei, aveți la dispoziție un parser pentru expresii logice sub **forma normal disjunctivă - DNF**:
Line 196: Line 195:
 </​note>​ </​note>​
  
 +<​hidden>​
 3. [**3p**] (main.cpp) Terminați de implementat parser-ul, actualizând și populând conținutul nodurilor din arbore. 3. [**3p**] (main.cpp) Terminați de implementat parser-ul, actualizând și populând conținutul nodurilor din arbore.
   *[**1p**] Folosiți drept model parseExpression și terminați parseTerm (**TODO 3.1**) ​   *[**1p**] Folosiți drept model parseExpression și terminați parseTerm (**TODO 3.1**) ​
   *[**1p**] Folosiți drept model parseExpression și terminați parseLiteral (**TODO 3.2**)   *[**1p**] Folosiți drept model parseExpression și terminați parseLiteral (**TODO 3.2**)
   *[**1p**] Verificați că expresia afișată este chiar cea pe care ați dat-o ca parametru (trebuie să faceți parcurgere în inordine și fără indentare) (**TODO 3.3**)   *[**1p**] Verificați că expresia afișată este chiar cea pe care ați dat-o ca parametru (trebuie să faceți parcurgere în inordine și fără indentare) (**TODO 3.3**)
-  * + 
-<​hidden>​+Pentru testarea acestui exercițiu, folosiți o expresie fără variabile, de exemplu: 0 & 1 | 1 & !0 | !1 | 1 & 1 & 1
  
 4. [**4p**] (main.cpp) Implementați evaluarea unei expresii în evaluateAST() 4. [**4p**] (main.cpp) Implementați evaluarea unei expresii în evaluateAST()
  
-Pentru testarea acestui exercițiu, folosiți o expresie fără variabile, de exemplu: 0 & 1 | 1 & !0 | !1 | 1 & 1 & 1 
  
 5. [**2p**] Folosiți un hashtable pentru a ține evidența valorilor variabilelor. Variabilele sunt declarate la început, folosind atribuiri ''​variabila = valoare''​. Pentru fiecare astfel de linie citită, parsați-o și introduceți variabila împreună cu valoarea ei într-un hashtable (puteți folosi clasa [[http://​www.cplusplus.com/​reference/​unordered_map/​unordered_map/​ | unordered_map]] din STL. ) 5. [**2p**] Folosiți un hashtable pentru a ține evidența valorilor variabilelor. Variabilele sunt declarate la început, folosind atribuiri ''​variabila = valoare''​. Pentru fiecare astfel de linie citită, parsați-o și introduceți variabila împreună cu valoarea ei într-un hashtable (puteți folosi clasa [[http://​www.cplusplus.com/​reference/​unordered_map/​unordered_map/​ | unordered_map]] din STL. )
 Pentru evaluarea expresiei, de fiecare dată când intâlniți o variabilă, vedeți ce valoare îi este atribuită în hashtable și folosiți acea valoare pentru evaluarea expresiei. Pentru evaluarea expresiei, de fiecare dată când intâlniți o variabilă, vedeți ce valoare îi este atribuită în hashtable și folosiți acea valoare pentru evaluarea expresiei.
 </​hidden>​ </​hidden>​
 +<note tip>​**{{:​sd-ca:​laboratoare:​labbinarytree-sol.zip|Soluție laborator}}** </​note>​
 ===== Interviu ===== ===== Interviu =====
  
sd-ca/laboratoare/laborator-09.1431066580.txt.gz · Last modified: 2015/05/08 09:29 by daniel.ciocirlan1607
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