Extras din proiect
Descrierea problemei:
Se va realiza integrarea simbolică în raport cu o variabilă.
Se permite citirea expresiei de integrat într-o formă mai uşor interpretabilă de program (forma prefix). Se va urmării tratarea cazurilor cât mai general posibile.
Exemplu: 2*X rezultă X^2+C.
Consideraţii teoretice:
Pentru realizarea acestui proiect am folosit noţiunile de lisp invăţate la laborator precum şi alte funcţii învăţate din tutorialele prezentate in biblografie. Pentru parte matematică din proiect am folosit următoarele formule pentru integrală:
Consideraţii de implementare:
Am considerat expresia integralei ca fiind un polinom. Polinomul este implementat ca o listă, fiecare numar sau semn este considerat un atom din listă.
Programul este format din mai multe funcţii. În continuare este o scurtă prezentarea a acestor funcţii.
Funcţiile constant-p, variable-p, sum-p, dif-p, product-p, ridicare-p, trigo-p verifică dacă lista primită ca parametru este un număr; un simbol; o listă în care se face sumă, diferenţă, produs, ridicare la putere; sau este o funcţie trigonometrică.
Pentru a calcula suma sau diferenţa dintre două integrale, respectiv produsul dintre o constantă si o integrală se utilizează funcţiile make-sum, make-dif, make-product pentru a uşura operaţiile dintre cele două expresii de calculat.
Se folosesc trei funcţii pentru a citi de la tastatură expresia integralei(una dintre cele trei) şi anume citire1, citire2, citire3.
Pentru calculul integralelor simple se folosesc funcţiile următoare: log, alax, sinus, cosinus, tangenta, cotangenta.
Funcţia calcul realizează calculul unei expresii mai complexe formate din două expresii simple.
Pentru interacţiunea cu utilizator se foloseşte funcţia start ce este un meniu principal, iar pentru calculul unei expresii simple un submeniu, funcţia calcul-simplu.
Exemple:
Pentru calculul unei expresii simple:
-(x ** 3) (((X ** 4) / 4) + C)
-(y ** -1) ((LN Y) + C)
-(5 ** z) (((5 ** Z) / LN 5) + C)
-(sin w) ((-COS W) + C)
-(cos x) ((SIN X) + C)
-(tg x) ((-LN (COS X)) + C)
-(ctg y) ((LN (SIN Y)) + C)
-(ln z) ((Z * (LN Z) - Z) + C)
Pentru calculul unei expresii mai complexe:
- (2 * (ln x)) ((2 * (X * (LN X) - X)) + C)
- ((sin y) + (y ** 3)) (((-COS Y) + ((Y ** 4) / 4)) + C)
- ((tg z) - (23 ** z)) (((-LN (COS Z)) - ((23 ** Z) / LN 23)) + C
Preview document
Conținut arhivă zip
- Proiect Concepte Fundamentale ale Limbajelor de Programare.doc