Documente Academic
Documente Profesional
Documente Cultură
Structura proiectului
Dosarul proiectul la disciplina Programarea calculatoarelor si limbaje de programare
trebuie sa contina urmatoarele elemente:
1.
2.
3.
4.
5.
6.
7.
8.
9.
Pagina de titlu
Descrierea temei, numarul temei.
Pagina de cuprins
Capitolul 1: Introducere
Capitolul 2: Analiza cerintelor
Capitolul 3: Proiectarea aplicatiei
Capitolul 4: Aspecte teoretice utilizate
Capitolul 5: Codul sursa si metoda de implementare
Capitolul 5: Testarea aplicatiei si studii asupra rezultatelor, tratarea erorilor, sugestii
modificare enunt.
10. Capitolul 6: Concluzii
11. Referinte bibliografice
Pagina de titlu Contine:
titlul Programarea calculatoarelor si limbaje de programare
Anul universitar 2015/2016
numele si grupa studentului- sectia
numele coordonatorului
Copierea proiectului in proportie mai mare de 30% conduce la anularea intregului punctaj
( proiect) de la seminar.
Conditii realizare proiect:
1) a. Pe dou rafturi din bibliotec avei mai multe cri. Se cunoate inltimea n
cm a fiecrei cri i faptul c, pe fiecare raft, crile sunt aranjate de la stnga la
dreapta n ordine descresctoare a nlimii. Mutai toate crile pe un al treilea
raft pe care s fie ordonate tot descresctor. Afiati nlimile crilor de pe acest
al treilea raft.
Exemplu:
Date de intrare: numar carti pe primul raft: 5 inaltimi: 18 18 17 15 15 numar carti pe
al doilea raft: 3 inaltimi: 15 14 12
Date de ieire: 18 18 17 15 15 15 14 12.
b. Se consider un ir de maxim 255 litere c1, c2, , cn nu neaprat distincte,
din alfabetul englez. Cerine: a) s se determine poziia p i lungimea l a
secvenei maxime format din litere consecutive egale din irul dat (1<=p,
1<=n); b) s se determine literele distincte i frecvena lor de apariie n irul
iniial; c) din irul literelor distincte de la punctul b), s se afieze cte
posibiliti de aranjare a 3 litere diferite sunt.
Date de intrare se citesc in urmtoarea structur: n c1 c2 cn.
Datele de ieire se vor afia pe ecran.
Exemplu: daca se citeste 6 abbacx, se va afia
a) p=2 l=2
b) a b c x 2 2 1 1
c) 24
2) Automat bancar
Automatele bancare sunt sisteme automate ce realizeaza servicii bancare catre populatie.
Acestea pot accepta tranzactii bancare pentru o anumita banca, posesoare a automatului.
Meniul automatului trebuie sa permita principalele operatii efectuate in timpul unei sesiuni
de lucru:
deschiderea unei sesiuni de lucru;
inchiderea sesiunii de lucru;
efectuarea principalelor tranzactii:
a. extragerea unei sume de bani din contul curent;
b. afisarea soldului curent;
c. transferul unei sume de bani din contul curent intr-un alt cont al clientului de
la aceeasi banca.
Deschiderea unei sesiuni de lucru incepe prin introducerea unui card in automat si
verificarea validitatii informatiilor de pe card.
Un card este emis de o anumita banca si este asociat unui client al bancii si unui anumit
cont al clientului deschis la banca respectiva. El memoreaza informatiile aferente clientului:
numele si prenumele clientului; pinul; codul contului asociat cardului.
La selectarea meniului iesire, se va inchide sesiunea de lucru, iar automatul va elibera
cardul utilizatorului.
3) a. Oaza Lacotrop din deertul Etpas este nconjurat de n portocali care conin
fructe, dispui sub form de cerc i numerotai de la 1 la n, n sensul acelor de
ceas. Maimua Gino pornete de la un portocal m i numr, n sensul acelor de
ceas, k portocali care conin fructe. Culege toate fructele din portocaul de pe
poziia k. Continu numrtoarea ncepnd cu portocalul urmtor celui din care
a cules, dar care conine fructe. n final rmne un singur portocal p necules, n
care Gino i face adpost. Cerin: Cu ce portocal m trebuie s nceap
numrtoarea pentru ca s-i fac adpost exact n portocalul p?.
Date de intrare: numerele n, k i p.
Date de ieire: numrul natural m cerut.
Restricii: 2<=n<=1000, 1<=k<=10000, 1<=p<=1000.
Exemplu: in 6 8 5 si out 3.
b. Un acrostih este o poezie la care, citind nceputul fiecrui vers, se obine un
mesaj. S se introduc un acrostih, vers cu vers, i s se afieze mesajul dat de
primele litere.
Exemplu: pentru
Vreau s dorm
Rd n somn
Este ca un drog
Acest drag somn
Uitat n pat
Se va afia: VREAU
4) Jocul Nu te supra, frate! se joac de ctre doi jucatori. Pe o pist circular cu
n csue numerotate de la 1 la n, n ordinea dat de sensul acelor de ceasornic, se
afl nscrise valorile 0, 1 i 10. Cei doi juctori vor avea fiecare cte un pion i
vor porni pe rnd, din csua 1. ncepe juctorul 1. Fiecare juctor va muta
pionul su conform cu valoarea obinut prin aruncarea zarului, cumulnd sau
pierznd puncte n funcie de csua n care ajunge. Fiecare juctor citete
valoarea zarului cnd i vine rdul.
Jocul are urmatoarele reguli:
a). Ctigtorul poate fi:
- juctorul care ajunge primul din nou n csua cu numrul 1, indiferent de punctaj
(exceptnd cazul n care are punctaj 0)
- n cazul n care se termin irul aruncrilor cu zarul, nseamn c juctorii s-au plictisit
i ctig cel care a cumulat mai multe puncte, iar dac au punctaje egale ctig cel
care se afl n csua cu numr de ordine mai mare.
b). Dup aruncarea zarului, juctorul mut pionul cu attea csue ct indic
valoarea zarului, n ordinea acelor de ceasornic, ncepnd numrtoarea cu csua
urmtoare poziiei pe care se afl. Prima csu nu conine valoarea 0 (zero).
c). Dup mutare pot apare urmtoarele situaii:
- ajunge ntr-o csu cu valoarea 0 (zero) juctorul este penalizat, pierde toate
punctele acumulate i reia jocul din pozitia 1
- ajunge ntr-o csu cu valoarea 10 primete un bonus de 10 puncte
0023
i se va afia suma 1 3 6 9 5.
6) Evidenta locuri cazare
Sa se realizeze un program care sa puna in evidenta administrarea locurilor intr-un hotel.
Despre un hotel se cunosc urmatoarele informatii: numarul de camere; pentru fiecare
camera numarul de paturi; numarul de apartamente; numele persoanei care locuieste intr-o
anumita camera sau are rezervare;
perioada pe care este ocupata o camera; Operatii cerute:
1. inchiriere -> introducere de noi date;
2. modificare -> modificarea datelor din fisier pentru o anumita camera;
3. stergere -> stergerea unei inregistrari datorata eliberarii unei camere;
4. listare -> afisarea datelor existente;
2. marca;
3. datele tehnice (cilindree, etc.); alte caracteristici (culoare, etc.);
4. numarul de inmatriculare; data inmatricularii; proprietarul;
5. data ultimei revizii tehnice;
Operatii cerute:
1. actualizare autoturisme;
2. inmatricularea unui nou autoturism;
3. modificare caracteristici autoturism inmatriculat;
4. cautare autoturism dupa numarul de inmatriculare;
5. cautare autoturism dupa nume proprietar;
6. revizie autoturism; radiere autoturism;
7. afisarea autoturismelor inmatriculate dupa o anumita data;
8. afisarea autoturismelor a caror ultima revizie este inainte de o anumita data
9. introdusa de la tastatura;
10. sortarea autoturismelor dupa tipul autovehiculului;
11. alocarea unui numar de inmatriculare astfel incat sa nu avem doua autoturisme cu
numere identice;
b. Un pitic vrea s urce o scar care are n trepte de nlimi date, ordonate
cresctor. nlimile treptelor sunt n cm i sunt valori ntregi. Acolo unde
diferena ntre dou trepte consecutive este de 1 cm piticul urc fr dificulti,
unde diferena este mai mare dect 1 cm piticul trebuie s ia o pastil care i d
putere s sar pe treapta urmtoare. Cunoscnd nlimile treptelor, prima fiind
obligatoriu 0, piticul vrea s afle care este numrul minim de pastile de care are
nevoie pentru a urca scara i de asemenea care este cea mai mare diferen dintre
dou trepte consecutive.
Exemplu: pentru n=9 i nlimile treptelor 0 3 4 6 7 10 19 20 21, se va afia:
numar minim de pastile =4 diferenta maxima=9
11) Evidenta angajati
Se cere realizarea unui program pentru evidenta angajatilor unei institutii: numele
angajatului, datele personale, data angajarii, postul ocupat, si calculul salariului pe baza
informatiilor despre salarizare:
1. salariul de baza;
2. sporul de vechime (in functie de vechimea in munca) si sporurile de periculozitate,
de stress, s.a. (anumite procente din salariul de baza);
3. salariul brut (salariul de baza plus sporurile);
4. impozitul (trepte de impozitare);
5. contributia pentru asigurarile de sanatate, cea pentru ajutor somaj si cea pentru
fondul de pensii (anumite procente din salariul brut), cotizatia la sindicat, etc.;
6. salariul net (calculat scazind din salariul brut impozitul si celelalte contributii).
Programul va permite efectuarea de operatii de actualizare a acestor date: noi angajari,
concedieri, mariri/micsorari de salarii, modificarea procentelor pentru diversele sporuri si
contributii, precum si bilanturi totale de sfirsit de luna: total salarii brut/net, total impozite,
etc.
12) a.Un tren este format din n vagoane de clasa I-a i a II-a. eful de tren nu vrea s
fie mai mult de k vagoane de aceeai clas unul dup altul. Introducndu-se o
aranjare a vagoanelor, s se testeze dac exist mai mult de k vagoane de acelai
fel consecutive. Se va afia un mesaj corespunztor. n caz afirmativ, s se
afieze i poziia de nceput a subirurilor cu mai mult de k elemente de acelai
fel.
Exemplu:
Date de intrare: n=6 k=3 tip vagoane: 1 1 2 2 2 2
Date de ieire: Da, pozitia de inceput 3.
b.ntr-o nchisoare cu n celule se afl, la un moment dat, n deinui. Se ia
hotrrea s fie eliberai anumii deinui, alegerea lor fcndu-se ntr-un mod
special. n nchisoarea aceea erau tot n gardieni. Procedeul de determinare a
deinuilor ce vor fi eliberai este urmtorul: gardianul k pleac de la celula k i
mergnd din k n k celule, schimb starea uilor pe la care trece,1<=k<=n. n
final anumite celule vor rmne deschise, deinuii respectivi fiind eliberai.
Putei afla care? Iniial toate uile sunt nchise.
15) a.Afiai cte cifre distincte conine un numr nenul. Exemplu : date de intrare
234323 Date de ieire 3 cifre.
b. Se dau dou numere naturale a,b cu maxim 9 cifre. a) S se determine cifrele
distincte comune numerelor a i b. b) S se afieze numrul cel mai mare format
din toate cifrele lui a i b Exemplu : pentru a=2115 b=29025 se va afia a) 2 5 b)
955222110 (OJI, clasa a V-a, 2004)
16) a.Se introduc dou numere, a i b, a<b<5000000. S se afieze ultima cifr a
sumei tuturor numerelor aflate ntre a i b. Exemple: Date de intrare a=12 b=14
date de ieire 9 ; date de intrare a=1000000 b=3000000 date de ieire 0.
b.Se dau dou numere avnd acelai numr de cifre. Cte cifre trebuie
modificate pentru a transforma un numr n cellalt ? Exemplu : pentru n1= 2135
i n2= 7139 este necesar modificarea a dou cifre.
17) Campionate de handbal
Sa se dezvolte o aplicatie care sa gestioneze desfasurarea tuturor campionatelor de handbal
din Romania (masculin, feminin, seniori si juniori Liga Nationala si Divizia A). Pentru
informatii suplimentare puteti consulta site-ul Federatiei Romane de Handbal
(http://www.frh.ro/frh/). Pentru fiecare campionat se cunosc urmatoarele informatii:
numele campionatului; numarul de echipe inscrise in campionat; numarul de etape jucate;
Pentru fiecare echipa inscrisa se cunosc: numele echipei; valoarea estimata a echipei;
numar de victorii, de egaluri si de infrangerii;
Operatii:
1. adaugarea unui nou campionat;
2. retrogradarea unei echipe; promovarea unei echipe;
23)
a. O broscu se deplaseaz efectund cte o sritur de lungime p cm la fiecare
secund. Dup fiecare n secunde broscua devine mai obosit, iar lungimea
sriturii pe care o face se njumtete. Scriei un program care s citeasc de la
tastatur lungimea iniial a sriturii, p, numrul de secunde dup care broscua
i injumtete saltul, n, precum i durata total a deplasrii broscuei T
(exprimat n secunde) i care s determine distana total pe care a parcurs-o
broscua. Distana total determinat va fi afiat pe ecran cu dou zecimale.
Restricii: p, n, T sunt numere naturale; p, n, T<30000;T/n<16 Exemplu Pentru
n=10, p=20 i T=33, distana total pe care se deplaseaz broscua este 357.50
cm.
Operatii:
1. adaugarea unui nou jucator;
2. stergerea unui jucator;
3. schimbarea valorii unui anumit jucator;
4. afisarea, dupa fiecare etapa a campionatului, a clasamentul in functie de numarul de
puncte;
5. determinarea locului ocupat de o anumita echipa;
6. realizarea unui clasament luand in calcul valorile intrinseci ale jucatorilor echipelor;
7. compararea intre clasamentul determinat la punctul anterior si cel real, si generarea
unui raport;
8. determinarea echipelor ce au primit un numar de goluri mai mare decat un intreg
pozitiv introdus de la tastatura;
9. determinarea echipelor ce au marcat un numar de goluri mai mare decat un intreg
pozitiv introdus de la tastatura;
10. determinarea echipelor ce au un numar de puncte mai mic decat un intreg pozitiv
introdus de la tastatura;
25) a.La un concurs de matematic particip elevi din mai multe coli din diferite
orae. Pentru a se putea deosebi ntre ele lucrrile lor, fiecare lucrare este
codificat printr-un numr natural cu 3 cifre, s zicem abc, unde a este codul
oraului, b este codul colii din oraul a iar c este codul unui elev din coala b
din oraul a. Ex.: lucrarea cu codul 328 este lucrarea elevului cu codul 8 de la
coala cu codul 2 din oraul cu codul 3. Se cunosc: un cod (al lucrrii unui elev
H, prietenul nostru), numrul n de lucrri i codurile acestora. Cerin: Se cere
s se rezolve cerinele:
26)
a.ntr-o parcare sunt n maini care au numere de nmatriculare provizorii
(numere ntregi, din cel mult 5 cifre). Mainile sunt aezate n ordinea de citire a
numerelor de nmatriculare. S se afieze poziiile pe care se afl mainile pentru
care suma cifrelor numrului de nmatriculare este impar ( n<= 20). Exemplu:
pt. n=5 i numerele de nmatriculare: 634 90281 63721 30361 70915 se vor afia
poziiile: 1 3 4
b.n vacan la mare dup ce se plictisete de plaj i ap, Ionic este mai tot
timpul n Parcul de distracii. Dintre toate locurile de distracie el a ales tirul.
Astfel, ntr-o sear Ionic obine S puncte, dup un anumit numr de trageri (cel
puin dou trageri). tiind c la toate tragerile efectuate a obinut puncte i c
dup fiecare tragere el progreseaz constant, adic obine cu un punct mai mult
dect la tragerea anterioar, se cere s se determine toate modalitile de
obinere a punctajelor (cu suma lor egal cu S). Date de intrare: de la tastatur se
va citi valoarea lui S (numr natural nenul 998877). Date de ieire: Pentru
fiecare soluie se va afia pe cte un rnd numrul de trageri i punctajul primei
trageri cu un spaiu ntre ele, iar la sfrit pe ultima linie se va afia mesajul
Numar solutii, urmat de numrul de soluii. Exemplu: Pentru S=15 pe ecran se
va afia: 5 1 2 7 3 4 Numr soluii: 3
27) a.Pentru a descoperi numrul cheii ce trebuie s o foloseasc pentru a putea s o
elibereze pe Ileana Cosnzeana, Ft-Frumos are de rezolvat urmtoarea
problem: Pentru numrul citit pe u, trebuie s calculeze suma divizorilor i,
dac aceast sum este un numr prim, atunci codul este egal cu suma cifrelor
numrului citit. n caz contrar, codul este egal cu suma cifrelor impare ale
numrului citit. Ajutai-l pe erou s descopere numrul cheii. Exemple: date de
intrare 472 date de ieire cheia 7 ; Date de intrare 4 date de ieire cheia 4.
b.Se dau dou numere avnd acelai numr de cifre. Cte cifre trebuie
modificate pentru a transforma un numr n cellalt? Exemplu: date de intrare
n1=2135 n2=7139 date de ieire 2 cifre.
33) Se citesc de pe prima linie a fiierului monede.in dou numere naturale s (de
maxim 9 cifre) i n (1<=n<=10) i de pe urmtoarea linie se citete un ir de n
numere naturale de maxim 5 cifre. Se cere s se afieze n fiierul monede.out
toate posibilitile de plat a sumei s folosind n tipuri de monede ale cror valori
sunt memorate n irul citit.
34) Evaluare studenti
Se cunosc informatii despre studentii unui an de studiu si notele acestora la sfarsitul unui an
de studiu.
Sa se scrie o aplicatie care asista secretariatul decanatului in evidenta si activitatea sa:
1. afisarea tuturor studentilor;
2. clasarea studentilor absolventi, respectiv repetentii;
3. determinarea numarului de studenti care au media mai mare daca o medie data;
4. ordonarea studentilor dupa medie;
5. afisarea studentilor bursieri;
6. clasarea studentilor dupa numarul de restante;
7. ordonarea studentilor dupa nota de la o anumita materie.
adresa
Operatii cerute:
1. actualizare lista furnizorii;
2. adaugarea unui nou furnizor;
3. stergere furnizor dupa denumire;
4. cautare furnizor dupa cod fiscal;
5. adaugare produs sau produse oferite de un anumit furnizor;
6. stergere produs sau produse oferite de un anumit furnizor;
7. sortare furnizori dupa denumire;
36) Se
38) Problema rucsacului (cazul continuu) O persoana are un rucsac cu care poate
transporta o greutate maxima g. Persoana are la dispozitie n obiecte pentru care
stie greutatea si castigul obtinut daca transporta obiectul. Fiecare obiect poate fi
transportat integral sau taiat. Sa se precizeze ce obiecte alege persoana si in ce
proportie le ia astfel incat castigul total sa fie maxim si sa nu se depaseasca
greutatea maxima a rucsacului.
Exemplu:
g=3 n=3
obiectele(greutate,castig):
22
14
36
Solutie(greutate, castig, raport taiere):
1,4,1
3,6,0.6667 (al doilea obiect se ia in raport de 2/3)
castig maxim=8
39) Jocul vieii. Se consider o matrice de dimensiune NxM (N linii, M coloane).
Matricea are n total NxM celule. n unele din aceste celule se gsesc virui,
maxim un virus n celul. O celul se nvecineaz cu 8 alte celule. Celulele de pe
marginea matricii se nvecineaz doar cu 5 alte celule, iar celulele din colurile
matricii se nvecineaz doar cu 3 alte celule.
Populaia de virui evolueaz n etape, dup urmtoarele reguli:
1. O celul care la etapa K este goal i are exact trei virui vecini, va da natere unui
virus n etapa K+1.
2. O celul care la etapa K conine un virus i are doi sau trei vecini virui, va pstra
virusul i la etapa K+1.
3. n orice alt situaie o celul care la etapa K conine sau nu virus, la etapa K+1 va
deveni goal.
40) Evidenta cartilor dintr-o biblioteca
Sa se dezvolte o aplicatie care preia informatii despre cartile unei biblioteci si tipareste
tabele cu cartile care au o anumita caracteristica:
1. Sunt scrise de un autor cerut;
2. Sunt caracterizate prin o anumita descriere;
3. Sunt aparute n o perioada de timp data;
4. Se incadreaza in un anumit domeniu;
5. Sunt tiparite de o anumita editura.
Aplicatia trebuie sa permita introducerea de noi carti, actualizarea cartilor.
41) Salariati universitate
Se cunosc informatii complete despre salariatii universitatii. Sa se implementeze o aplicatie
care sa poata furniza mai multe situatii:
1. Generarea fluturasilor cu venitul lunar;
2. Tabel cu salariatii ce au un salariu mai mic decat 4 milioane lei;
3. Tabel cu persoanele ce au implinit sau implinesc varsta pensionarii n anul curent;
4. Tabel cu persoanele ce au de achitat rate lunare si suma totala;
5. Tabel cu cadrele didactice de la facultatea de automatica-calculatoare;
6. Tabel cu persoanele ce au plecat de la universitate in ultimii 5 ani.
2. realizarea unei revizii pentru fiecare masina dupa parcurgerea unui numar de
kilometri;
3. modificare treaseului pentru fiecare cursa astfel incat sa se minimize numarul
4. de curse;
5. cautare autoturism dupa numarul de inmatriculare;
6. cautare autoturism dupa numele soferului;
7. afisarea autoturismelor cu un numar de kilometri mai mare decat o valoare
specificata;
8. sortarea autoturismelor dupa tipul autovehiculului;
9. alocarea soferilor astfel incat sa nu avem doua autoturisme cu acelasi sofer;
3.
4.
5.
6.
7.
8.
2.
3.
4.
5.