0% au considerat acest document util (0 voturi)
61 vizualizări

Laborator 5 Java

Documentul prezintă o serie de probleme de programare care implică tablouri unidimensionale și multidimensionale, clase, structuri de date și alte concepte legate de programare. Problemele variază de la generarea de numere aleatoare și reprezentarea multimilor până la validarea adreselor de e-mail, calcularea ariilor poligoanelor și reprezentarea rezervărilor de locuri într-un avion.

Încărcat de

Catalin Istratoae
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
61 vizualizări

Laborator 5 Java

Documentul prezintă o serie de probleme de programare care implică tablouri unidimensionale și multidimensionale, clase, structuri de date și alte concepte legate de programare. Problemele variază de la generarea de numere aleatoare și reprezentarea multimilor până la validarea adreselor de e-mail, calcularea ariilor poligoanelor și reprezentarea rezervărilor de locuri într-un avion.

Încărcat de

Catalin Istratoae
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
Sunteți pe pagina 1/ 2

Laborator 5. Tablouri.

Siruri de caractere
1. Sa se creeze un tablou uni-dimensional care memoreaza 20 de numere generate aleator, fiecare intre
10 si 100, inclusiv. Pe masura ce un numar este generat si memorat, este afisat numai daca nu este un
duplicat al unui numar deja memorat.
2. Creati clasa MultimeIntregi. Fiecare obiect al clasei poate pastra 10 numere intregi intre 0 si 9. O
multime este reprezentata intern ca un tablou de 1 si 0-uri. De exp, elementul a[i]=1 daca numarul i
apartine multimii, altfel a[i]=0. Un constructor al clasei nu are parametri si initializeaza multimea
vida, adica o multime a carui tablou are numai elemente nule. Al doilea constructor al clasei
initializeaza tabloul ce memoreaza elementele multimii, cu ajutorul tabloului transmis ca parametru
formal. Al treilea constructor are un parametru int si creaza si initializeaza multimea cu elemente
generate aleator.
Furnizati urmatoarele metode :
- reuneste MultimiIntregi creaza o alta multime care este teoretic reuniunea celor doua multimi date (a
doua multime este data ca parametru al metodei) (ie, un element din tabloul celei de-a treia multimi
este setat cu 1, daca acel element este 1 in una sau ambele multimi),
- intersecteaza MultimiIntregi creaza o alta multime care este teoretic intersectia celor doua multimi
(ie, un element din tabloul celei de-a treia multimi este setat cu 1, daca acel element este 1 in ambele
multimi),
- insereazaElement insereaza un nou numar intreg k in multime (ie a[k]=1),
- stergeElement sterge numarul j (a[j]=0) dat ca parametru al metodei,
- suntEgale determina daca doua multimi sunt egale.
- afiseaza multimea ca o lista de numere separate prin spatii.
Afisati ‘ ---‘ pentru multimea vida. Scrieti un program care testeaza aceasta clasa.
3. Sa se scrie un program care contine o clasa numita Parola ce contine o metoda ce genereaza parola
unui utilizator, folosind numele şi prenumele său, precum si data de nastere a acestuia. Programul va
realiza urmatoarele operatii:
a. cere utilizatorului sa introduca numele si prenumele său,
b. cere utilizatorului sa introduca data de naştere în format dd/mm/yyyy,
c. afiseaza parola.
Parola va fi generatǎ dupa urmatorul algoritm: primele doua litere din prenume vor fi concatenate cu
ultimele 2 cifre ale datei de naştere şi cu ultimele 2 litere din prenumele utilizatorului.
Indicatie: Informatiile cerute utilizatorului vor fi preluate prin intermediul ferestrei ce apare cand este
apelata metoda statica JOptionPane.showInputDialog(String) din pachetul javax.swing.
4. Fie un sir preluat din lina de comanda sau dintr-o fereastra de tip InputDialog. Verificati ca acest sir
este o dresa de e-mail valida de forma User_name@provider_name.extension (e.g.,
[email protected] sau mailto:[email protected]). In caz afirmativ, afisati numele utilizatorului si
numele provider-ului. Altfel, afisati un mesaj de eroare.
5. Să se scrie două metode ale clasei Poligon:
public double calculeazaPerimetru() {. . .} şi
public double calculeazaArie() {. . .}
care calculează perimetrul şi aria unui poligon. Pentru a calcula perimetrul, calculaţi distanţa dintre
punctele adiacente şi adunaţi aceste distanţe. Aria unui poligon cu punctele (x0, y0), …, (xn-1, yn-1) este:
|x0y1+x1y2+x2y3+…+xn-1y0-y0x1-y1x2-…-yn-1x0|/2
6. Folosind structura de tablou, sǎ se implementeze o mulţime M de puncte din plan. Ştim cǎ un punct
din plan este caracterizat prin coordonatele sale (x, y). Fie P un alt punct din plan care nu aparţine
multimii M. Coordonatele punctul P se vor prelua dintr-o fereastra de tip JOptionPane. Să se
determine şi să afişeze coordonatele punctului din M care se află la cea mai mică distanţă de P.
Indicaţie: distanţa(p1, p2)=sqrt((p1.x-p2.x)2+(p1.y-p2.y)2)
7. O companie aeriana foloseste un sistem automat de rezervare a locurilor unui avion. Sa se scrie un
program care realizeaza acest lucru pentru un singur avion cu capacitatea de 10 locuri la fiecare zbor.
Folosind o fereastra JOptionPane, programul ar trebui sa afiseze urmatorul meniu de alternative:
Alegeti 1 pentru sectiunea de Fumatori
Alegeti 2 pentru sectiunea de Nefumatori
Daca persoana scrie cifra 1, atunci programul ar trebui sa rezerve un loc in sectiunea fumatori (1..5).
Altfel, se alege un loc la nefumatori (locurile 6-10). Apoi programul ar trebui sa afiseze un mesaj cu
numarul locului si sectiunea fumatori sau nefumatori a avionului. Rezervarea unui loc ar trebui marcata
printr-un 1.
Cand o sectiune este plina, programul ar trebui sa intrebe clientul daca doreste sa i se rezerve un loc la
cealalta sectiune. Daca da, se face rezervarea respectiva. Altfel, se afiseaza mesajul “Urmatorul zbor este
in 3 ore.” Acelasi mesaj va fi afisat si daca nu mai exista nici un loc liber.
8. Să se scrie o clasă Matrice ce memorează cu ajutorul constructorului elementele unei matrici pătrate
(3x3) şi conţine metode pentru implementarea următoarelor operaţii pe matrici:
- calcularea matricii transpuse,
- adunarea, respectiv scăderea a două matrici,
- înmulţirea a două matrici.
Să se scrie o altă clasă Test care testează funcţionalitatea acestei clase.
Indicaţie. A doua matrice folosită în metodele de adunare, scădere, respectiv înmulţire va fi dată ca
parametru actual al acestor metode.

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