You are on page 1of 4

LUCRAREA PRACTICA NR.

1
PROGRAMARE ORIENTATA PE OBIECTE - 1412

Aceasta lucrare practica trebuie rezolvata si trimisa prin e-mail la adresa <sorina.predut@gmail.com> pana in data de 26 martie 2012 ora 20:00, urmand ca in cadrul laboratorului din 29 martie sa fie prezentata. Dupa data de 26 martie, lucrarea practica se mai poate trimite prin email pentru o perioada de gratie de 2 zile (48 de ore). Pentru fiecare zi partiala de intarziere se va scadea 1 punct din nota atribuita pe lucrare. Dupa expirarea termenului de gratie, lucrarea nu va mai fi acceptata si va fi notata cu 1. Implementarea fiecareia dintre temele de mai jos se va face in C++ si trebuie sa contina datele si operatiile specificate mai jos, inclusiv operatiile comune scrise imediat deasupra listei celor 20 de teme. Ideal ar fi sa implementati tipurile de date din aceste teme sub forma de clase, dar, deocamdata, pentru primul proiect, aceasta cerinta nu este obligatorie. Lista proiectelor, cu toate cerintele lor. La toate proiectele din lista de mai jos: - crearea unui obiect de tipul respectiv, prin citire de la tastatura sau dintr-un fisier; - afisarea unui obiect de tipul respectiv. 1. Liste de numere intregi reprezentate ca tablouri unidimensionale - suma tuturor elementelor; - gasirea maximului si a pozitiei lui; - sortarea crescatoare; - produsul scalar a doi vectori de aceeasi lungime. 2. Vectori de numere complexe - determinarea vectorului modulelor; - suma tuturor elementelor; - sortarea crescatoare dupa module; - produsul scalar a doi vectori de aceeasi lungime. 3. Stive de caractere (implementate dinamic) - push; - pop; - top (afisarea varfului stivei); - afisarea stivei, concomitent cu golirea ei. 4. Cozi de caractere (implementate dinamic) - push; - pop; - top (afisarea varfului cozii); - afisarea cozii, concomitent cu golirea ei. 5. Liste circulare de numere intregi (implementate dinamic) - introducerea unui element (unde alege programatorul);
1

pana ce in lista ramane un singur element.eliminarea elementelor din k in k. in celalalt sens. .produsul a doua polinoame. 12.diferenta dintre doua multimi. Polinoame reprezentate ca tablouri unidimensionale (prin gradul polinomului si vectorul coeficientilor.suma a doua polinoame.suma a doua polinoame.determinantul unei matrici patratice. .LUCRAREA PRACTICA NR. . 11. . .suma a doua matrici. .produsul a doua matrici.reuniunea a doua multimi. cu afisarea elementelor care se elimina.suma a doua matrici.diferenta a doua polinoame. .introducerea unui element (unde alege programatorul). in unul dintre sensuri. 7.stergerea unui element (de unde alege programatorul). Matrice de numere complexe reprezentate ca tablouri bidimensionale (nu neaparat ca matrici patratice) . unde k este un numar natural nenul citit de la tastatura sau dintr-un fisier. Matrice de numere complexe reprezentate ca structuri inlantuite (ca matrici rare. .inversa unei matrici patratice cu determinantul nenul.transformarea unei liste inlantuite in multime. crescatoare dupa exponent. nu neaparat patratice) .stergerea unui element (de unde alege programatorul). de la cel al termenului liber la cel de grad maxim) . de dimensiune egala cu gradul plus 1. .produsul a doua matrici.intersectia a doua multimi.inversa unei matrici patratice cu determinantul nenul. 1 2 . . 9. 8.valoarea unui polinom intr-un punct. . . . . prin eliminarea duplicatelor din respectiva lista. .diferenta dintre doua multimi. . . in ordinea in care se elimina. Polinoame reprezentate ca liste inlantuite (ca liste de perechi (coeficient. . Liste dublu inlantuite de numere reale (implementate dinamic) . si nu neaparat cu exponentii consecutivi) . . Multimi finite de numere intregi reprezentate ca tablouri unidimensionale . exponent). 6. .inversarea legaturilor listei. . 10.produsul a doua polinoame. prin eliminarea duplicatelor din respectivul vector. .afisarea listei.afisarea listei.diferenta a doua polinoame.transformarea unui vector in multime. . .determinantul unei matrici patratice.reuniunea a doua multimi. Multimi finite de numere intregi reprezentate ca liste inlantuite .intersectia a doua multimi.valoarea unui polinom intr-un punct.

determinarea componentelor tare conexe.parcurgerea in adancime.determinarea componentelor conexe.determinarea componentelor conexe. 17. . prin aplicarea algoritmului lui Euclid folosind scaderi repetate. 14.scrierea unui numar rational mare ca fractie ireductibila.parcurgerea in latime.determinarea arborelui partial de cost minim al componentei conexe a unui nod dat. .determinarea matricii drumurilor.determinarea matricii drumurilor.determinarea inaltimii arborelui. . . Arbori binari de cautare . Grafuri orientate . . prin efectuarea impartiriilor valorilor absolute ale numaratorului si respectiv numitorului la cel mai mare divizor comun al acestor valori absolute. incepand cu cifra unitatilor . 1 3 13. . 19. 16. fiecare element al unei astfel de perechi fiind reprezentat ca la proiectul 18 de mai sus.stergerea unui element.suma a doua numere rationale mari.afisarea listei frunzelor.LUCRAREA PRACTICA NR.determinarea celui mai mare divizor comun al valorilor absolute ale numaratorului si numitorului. impartiri efectuate prin scaderi repetate (daca nu cumva rezultatele acestor impartiri si pot deduce din algoritmul lui Euclid) .parcurgerea in adancime. elementele unei astfel de perechi reprezentand respectiv numaratorul si numitorul fractiei care defineste numarul rational mare) . .suma a doua numere intregi mari. . Numere intregi mari (reprezentate ca indicator de semn si liste dinamice de cifre. Numere rationale mari (reprezentate ca perechi de numere intregi mari. .inserarea unui element. Grafuri ponderate .diferenta a doua numere intregi mari.produsul a doua numere intregi mari.parcurgerea in inordine.determinarea nodurilor intermediare de pe drumul de pondere minima intre doua noduri. . . Arbori oarecare . 18. .produsul a doua numere rationale mari.determinarea inaltimii arborelui. . incepand cu cifra dominanta si incheind cu cifra unitatilor) . .parcurgerea pe niveluri. . . .vor fi afisate uzual. . 15.parcurgerea in adancime.determinarea matricii ponderilor drumurilor cu ponderi minime. cu numitorul pozitiv.parcurgerea in latime. . Grafuri neorientate . .determinarea maximului dintre valorile absolute a doua numere intregi mari. .

1 4 20.determinarea maximului dintre valorile absolute a doua numere reale mari. fiecare element al unei astfel de perechi sa fie reprezentat ca la proiectul 18 de mai sus) . astfel incat valoarea unui numar real mare reprezentat astfel sa fie egala cu primul numar intreg mare din pereche inmultit cu 10 la puterea al doilea numar intreg mare din pereche. .inmultirea a doua numere reale mari. . adica la cifrele cel mai putin semnificative.adunarea a doua numere reale mari.LUCRAREA PRACTICA NR.scrierea unui numar real mare nenul astfel incat primul numar din perechea care il reprezinta sa nu aiba zerouri consecutive la sfarsit. Numere reale mari (reprezentate ca perechi de numere intregi mari. . .