Cflp

Laborator

 

Facultatea de Automatica şi Calculatoare

Departamentul de Calculatoare


 
  Lucrarea 8 Lucrarea 9 Lucrarea 10 Lucrarea 11 Lucrarea 12 Lucrarea 13 Proiect Orar


Lucrarea 12

Subiecte

  

Tipuri recursive

Folosind tipuri cu variante pot fi declarate structuri recursive.

Declaraţia unei nod din arbore

Următorul exemplu defineşte un nod al unui arbore binar ordonat.

# type 'tipelement nod = Empty
    | Nod of ('tipelement nod*'tipelement*'tipelement nod);;
type 'a nod = Empty | Nod of ('a nod * 'a * 'a nod)

Se observă că nodul conţine un element de tip oarecare.

# let a= Nod (Empty,1,Empty);;
val a : int nod = Nod (Empty, 1, Empty)

Problema 1.

Scrieţi funcţiile care inserează un element într-o arbore, caută un element în arbore şi returnează elementele arborelui în inordine şi preordine.

Problema 2.

Fiind dată o expresie prin strucura:
type expresie = Valoare of float
   | Adunare of (expresie*expresie)
   | Scadere of (expresie* expresie)
   | Inmultire of (expresie*expresie)
   | Impartire of (expresie* expresie)
   | Fc1 of ((float->float)*expresie)
   | Fc2 of ((float->float->float)*expresie*expresie);;
să se scrie expresia corespunzătoare lui 6/2-2^3+cos(2*asin 1) precum şi o funcţie cu semnătura (expresie -> float) care evaluează orice expresie specificată prin structura de mai sus.

Probleme

Problema 1. Arbori binari

Problema 2. Expresii