Sunteți pe pagina 1din 3

Derivare Simbolica (In limbajul Lisp)

Mariutu Andrei

1. Cerinte : Se va realiza derivarea simbolic n raport cu o variabil i optimizarea (simplificarea) a expresiei rezultate. Se permite citirea expresiei de derivat ntr-o form mai uor interpretabil de program (de ex. forma prefix). Exemplu: 3*X^3 rezult 9*X^2. 2. Consideratii : Operatiile in Lisp sunt in forma prefix. Orice operatie se poate scrie de forma (+ a b), unde + reprizinta operatorul , iar a si b cei doi termeni. Daca vrem operatii mai complexe, cei doi termeni se pot inlocuii la randul lor cu alte expresii, expresia finala fiind de forma ( operator expresie1/atom1 expresie2/atom2 ). Programul necesita ca si date de intrare o expresie in forma infix (expresie1 operator expresie2) sau in forma prefix (operator expresie1 expresie2).

3. Utilizare : Programul se va rula folosind comanda (meniu) , apoi se va introduce expresia , programul va afisa ulterior lista de optiuni : 1.TRANSFORMARE - Transoforma expresia din infix in prefix sau din prefix in infix. 2.EVALUARE_INFIX Evalueaza expresia in starea infix.

3.EVALUARE_PREFIX - Evalueaza expresia in starea prefix. 4.SCHIMBA_EXPRESIA Schimba expresia cu o expresie noua citita de la tastatura. 5.AFISARE_EXPRESIE - Afiseaza expresia. 0.IESIRE - Iesirea din program.

Programul va astepta apoi introducerea unei optiuni. Dupa ce optiunea a fost aleasa si executata se va astepta intruducerea unei noi optiuni, pana la introducerea optiunii 0.

4. Teste :

1. ((2 * 3) + (3 * (4 + 5))) = 27 + 6 =33 2. ((2 * (1 + 4)) + (3 * ((1 + 3) + (2 * 3))))= 10 + 30 = 40 3. ((2 * (1 + (2 * (1 / 2)))) + (3 * ((1 + 3) + (2 * (3 * 2))))) = 4 + 48 = 52 Forma prefix : (+ (* 2 (+ 1 (* 2 (/ 1 2)))) (* 3 (+ (+ 1 3) (* 2 (* 3 2)))))

Bibliografie :

Continutul teoretic al laboratorului. Documentatia programului Lisp.

S-ar putea să vă placă și