Sunteți pe pagina 1din 8

STRUCTURI DE TIP NREGISTRARE

1. Se citesc data naterii unei persoane si data curenta . sa se determine vrsta in ani mpliniti a persoanei respective. 2. In registrul unei discoteci sunt trecute persoanele care intra si vrstele lor ( in ani si luni ). tiind ca ultima persoana intrata este Dorina Vlad , sa se calculeze media de vrsta a celor ce frecventeaz discoteca (in ani si luni, aproximativ la numere naturale ).
3.

Se citesc de la tastatura n perechi de numere reale reprezentnd puncte din plan (n ordinea abscis, ordonat). Scriei un program care s determine msura celui mai mare segment avnd ca extremiti dou dintre punctele date.

4. Se introduc de la tastatur mediile generale, numerele i sexul elevilor dintro clas , s se afieze clasamentul la nvtur ale elevilor i mediile lor n ordine descresctoare , marcnd cu o fetele i cu un # bieii cu medii pn la 6 (exclusiv), cu dou stelue respectiv cu dou caractere# elevii cu medii ntre 6 i 9 (incliv) i cu trei stelue respectiv trei caractere # pe cei cu medii peste 9. 5. Cunoscandu-se coeficienii unui numr complex, sa se afieze modulul si conjugatul sau.
6.

Pentru fiecare luna a anului se citeste un sir de valori termice inregistrate in luna respectiva (numarul de valori nu depaseste 100, nefiind neaparat acelasi pentru toate lunile).Sa se afiseze alfabetic numele lunilor care au toate temperaturile inregistrate aflate intre doua valori termice date.Programul trebuie sa permita introducerae repetata a celor doua valori limita.

7. Pentru n (n 50 dat) puncte din plan se cunosc: coordonatele carteziene (abcisa, ordonata) si culuarea (o litera). Sa se afle cate patrate cu varfurile de aceasi culoare se pot forma folosind punctele date.
8.

La un depozit se lucreaza cu cel mult 400 de sortimente de marfa. O factura de vanzare respectiv cumparate contine cel mult 10 tipuri de marfuri vandute (cumparate),pentru fiecare tip precizindu-se cantitatea si preul. tiind ca s-au inregistrat m astfel de facturi , sa se precizeze:

9. Se cunosc numele i timpii obinui la 5 probe de vitez (50m, 100m, 400m, 1200m i 3000) pentru n sportivi (n<100). Sa se formeze ct mai putine grupe de sportivi i sa se afieze numele lor, astfel nct: 10. Se dorete reprezentarea pe ecram a unor ferestre subrapuse. Pentru fiecare fereastra se citete o linie coninnd 6 numere: coordonatele (coloan linie) ale coltului din stnga-sus i ale dreapta-jos, adncimea ferestrei (fereastra de adncime minimva fi deasupra celorlalte, deci total vizibil) icodul ASCII al caracterului cu care se va umple fereastra.Se citesc de la dispoyitivul de intrare mai multe linii pina ce se da o linie cu 6 valori nule. In repreyentarea marginilor restectiv colturilor ferestrelor se vor folosi caracterele l, - i respectiv +.

11.

Se citesc de la tastatur datele referitoare la mai multe figuri geometrice codificate prin caracterele T(triunghi), C(cerc),D(dreptunghic), i P (ptrat). Pentru cerc se cunoaste raza, pentru patrat latura, pentru triunghi laturile, iar pentru dreptunghi lungimea i latimea. Sa se tipreasc toate datele figurilor cu arii ce difer prin cel mult o unitate .4.11 Pentru toate figurile se folosesc date de tip inregistrat cu variante, o nregistrare coninnd cimpurile comune tip, arie i cimpurile specifice fiecarui tip de figura a ,b,c laturile triunghiului r raza cercului, l latura ptratului i lung , lung , lat dimensiunile dreptunghiului. De remarcat

12. Se citeste un stribg repreyebtind un numar complex de forma a + bi de exemplu - 3,6 + 4i fara paranteye. Sa se priciyeye daca forma itrodusa este corecta. 13. Se citesc coeficintele reali ai unor numere complexe cel mult 40. Sa se afiseye pe trei coloa-ne numerale reale, numeralile imagenare i numerale cu componentele reale i imagenare nenule din aceasta lista. 14. Se citesc coordonatele carteziene ale unor puncte din plan.Sa se afiseze coordonatele polare corespunzatoare acelor puncte care se situiaza strict in interiorul cercului trigonometric de raza 10 centratin origine.
15.

Se definesc ( 1 n ) ri nsoite de culorile drapelelor lor . Se citete apoi de la tastatur anumit culoare. Se cere listarea rilor care au acea culoare n componena drapelului. Se dau n orae ( 1 n 20 ) mpreun cu coordonatele lor (latitudinea sud/nord, longitudine Est/vest ). Fiind nominalizat un ora de la tastatur, s se determine cel mai apropiat ora de acesta. Se d un vector cu maxim n elemente ( 1 n 100 ). Fr a folosi tablouri suplimentare i fr a modifica poziia elementelor n tablou, s se listeze elementele din vector n ordine cresctoare,apoi descresctoare.

16.

17.

Indicaie : Fiecare element al vectorului este o nregistrare cu doua cmpuri , unul este elementul propriu-zis, cellalt este indicele elementului n irul ordonat (iniial indicele elementului al I-lea este I). 18. Se dau numele a n concureni i notele obinute la proba de gimnastic. S se calculeze media notelor i s se listeze concurenii n ordinea clasrii lor. 19. Mrimile n radiani a n unghiuri(n<50) se furnizeaz de la tastatur. Se s afieze mrimile n grade, minute i secunde ale perechilor de unghiuri complementare dintre cele date. Observaii: n testarea condiiei de complementaritate se va permite o toleran de cel mult 0, 0001; - reprezentarea mrimii n grade, minute i secunde se va face folosind numai numere ntregi.
20.

Caracteristicele unui produs sunt date prin: pretul in lei la data intrarii in magazin si data pana la care este garantata calitatea produsului.Stiind ca pretul scade progresiv cu aceasi suma, asfel in ziua imediat urmatoare datei de expirare acesta

sa devina O, sa se calculeze pretul produsului la o anumita data sau sa se semnaleze ca i-a expirat termenul de valabilitate. 21. Se citete un srting reprezentand un numar complex de forma Z=A+BI (de exemplu-3.6+4I)fara paranteze. Coeficienii a si b nu pot fi simultan O. a) Sa se precizeze daca forma introdusa este corecta; b) In caz afirmativ, se cere sa se tipareasca toate numerele complexe care au acelasi modulsi fie aceeasi parte reala, fie aceeasi parte imaginara cu numarul dat. 21. Un candidat la un concurs de admitere poate opta pentru unul dintre cele 3 profile de clase existente (A,B sau C) i obine o not calculat ca medie a mai multor probe(numar real ntre 0 i 10) .El a optat pentru toate cele 3 profiluri ntr-o anumit ordine.Repartizarea candidaiilorse face n orinea mediilor,la profilul la care au optat sau la profilurile urmatoare,n ordine,dac la cel curent nu mai snt locuri. Cunoscndu-se numrul de locuri aprobate pentru fiecare profil, numrul de candidai i pentru fiecare candidat numele, opinute i media, s se afieze numele candidailor i profilul la care au fost admii. 22. Se citesc de la tastatur numele unor firme specializate n vnzarea componentelor electronice i a echipamentulor de calcul. Fiecare firm practic un adaos comercial p% cunoscut i are o firm furnizoare dintre firmele date anterior (furnizoarea primei dintre firme i adaousul celei din urm nu se produc). Cunoscndu-se preul unui calculatorr vndut la una dintre firne, s se afieze preul aceluiai calculator vndut de alt firm dat. 4.1 Se citesc data nasterii unei persoane si data curenta.Sa se determine virsta in anii impliniti a persoanei respective. Exemplu: data nasterii(zi ,luna,an)=12 7 1949 data curenta (zi,luna,an)=1 6 1996 Se afiseaza: program ani impliniti; var n,c:record zi:1..31; lu:1..12; an:integer end: virsta:integer; begin repeat write('Data nasterii (zi luna an) :'); readln(n.zi,n.lu,n.an) until(n.zi in [1..31]) and (n.lu in[1..12]) and (n.an>0); repeat write('Data curenta (zi luna an) :'); readln(c.zi,c.lu,c.an)

until(c.zi in[1..31]) and (c.lu in[1..12]) and (c.an>0); virsta:=c.an-n.an; if (c.lu<n.lu) or ((c.lu=n.lu)and(c.zi<n.zi)) then virsta:=virsta-1; if virsta<0 then writeln('Date incorecte') else writeln('virsta=',virsta,' ani impliniti'); readln end. 4.2 In registrul unei discoteci sunt trecute persoanele care intrasi virstele lor( in ani si luni). Stiind ca ultima persoana intrata este DorinA Vlad,sa se calculeze media de virsta a celor ce frecventeaza discoteca (in ani si luni,aproximate la numere naturale). program discoteca; const max=500; ulti1='DORINAVLAD'; ULTI2='VLADDORINA'; type persoana = record nume:string[30]; ani,luni:byte end; var p :persoana;ultima:boolean; med,i:word; nr:0..max; begin nr:=0; med:=0; repeat nr:=nr+1; write('Numele :');readln(p.nume); repeat write('Varsta (ani luni):'); readln(p.ani, p.luni); until p.luni in [0..11]; med:=med+p.ani*12+p.luni; while pos(' ',p.nume)<>0 do delete(p.nume,pos(' ',p.nume),1); for i:=1 to length(p.nume) do p.nume[i]:=upcase(p.nume[i]) until (p.nume=ulti1)or (p.nume = ulti2); med:= med div nr; write('Varsta medie= ',med div 12,' ani si ',med mod 12,' luni') end. 4.3 Se citesc de la tastatura n perechi de numere realereprezentind puncte din plan(in ordinea abscisa,ordonata).Scrieti un program care sa determine masura celui mai mare segment avind ca extremitati doua dintre punctele date. program discoteca; const max=500; ulti1='DORINAVLAD';

ULTI2='VLADDORINA'; type persoana = record nume:string[30]; ani,luni:byte end; var p :persoana;ultima:boolean; med,i:word; nr:0..max; begin nr:=0; med:=0; repeat nr:=nr+1; write('Numele :');readln(p.nume); repeat write('Varsta (ani luni):'); readln(p.ani, p.luni); until p.luni in [0..11]; med:=med+p.ani*12+p.luni; while pos(' ',p.nume)<>0 do delete(p.nume,pos(' ',p.nume),1); for i:=1 to length(p.nume) do p.nume[i]:=upcase(p.nume[i]) until (p.nume=ulti1)or (p.nume = ulti2); med:= med div nr; write('Varsta medie= ',med div 12,' ani si ',med mod 12,' luni') end. program segmente; type punct=record x,y:real end; var p:array[1..500] of punct; n,i,j:integer; max,mas:real; mai_este:boolean; begin write('numarul de puncte:');readln(n); for i :=1 to n do repeat write('coord. punctului',i,'(abscisa ordonata):'); readln(p[i].x , p[i].y) mai_este:=false; for j:=1 to i-1 do if(p[j].x = p[i].x ) and(p[j].y = p[i].y)then mai_este:=true; if mai_este then writeln('Ati mai dat acest punct ') until not mai_este; max:=0; for i:=1 to n do for j:=i+1 to n do begin mas:=sqrt(sqr(p[i].x-p[j].x)+sqr(p[i].y-p[j].y)); if mas>max then max:=mas end; writeln('segmentul de lungime maxima are masura:' ,max:10:3);

end. 4.4 Se introduc de la tastatura mediile generale,numele si sexul elevilor dintr-o clasa ; sa se afiseze clasamentul la invatatura al elevilor si mediile lor in ordine descrescatoare, marcind cu o steluta fetele si cu un "#" baietii cu medii pina la 6(exclusiv), cu doua stelute respectiv cu doua caractere "#" elevii cu vedii intre 6 si 9(ibclusiv) si cu trei stelute respectiv trei caractere "#" pe cei cu vedii peste 9 . Exemplu:hebtru 5 elevi Marin Elena F 7.33 Ion Catalin M 9.65 Vasile Dana F 9.88 Ganea Dorin M 5.66 Tudor Vlad M 5.33 se afiseaza : Vasile Dana F 9....88*** Ion Catalin M 9.65 ### Vasile Dana F9.88 ** Ganea Dorin M 5.66 # Tudor Vlad M 5.33 # PROGRAM CLASAMENT; const nr_max=50; type elev = record nume:string[30]; medie:real; sex:char {'B' pentru baieti si'F' pentru fete} end; var e:array [1..nr_max] of elev; aux:elev; {inregistrare auxiliara de interschimbare} n,i,j,k:shortint; c:char; ordo :boolean; begin write('numarul de elevi=');readln(n); for i:=1to n do begin writeln('elevul',i); write('numele:'); readln(e[i].nume); repeat write('baiat sau fata (b/f)?'); readln(c); e[i].sex:=upcase(c) until e[i].sex in ['B','F']; repeat write('media:');readln(e[i].medie) until (e[i].medie>=1)and(e[i].medie<=10) end; repeat

ordo:= true; for i:=1to n-1 do if e[i].medie <e[i+1]. medie then begin aux:=e[i]; e[i]:=e[i+1]; e[i+1]:=aux; ordo:=false end; until ordo; writeln;writeln('CLASAMENTUL'); for i:=1 to n do begin write(e[i].nume,'':30-length(e[i].nume),e[i].medie:7:2); if e[i].sex='B' then c:='#' else c:='*'; if e[i].medie<6 then k:=1 else if e[i].medie<=9 then k:=2 else k:=3; for j:=1 to k do write(c); writeln end. Se recomanda,pentrua identifica direct cimpurile unei inregistrari,sa se foloseasca instructiunea WITH. De exemplu secventa de scriere a rezultatelor devine. for i;=1 to n do with e[i] do begin write (nume,'':30-lenght(nume),medie:7:2); if sex ='B' then c:='#' else c:='*'; k:=1+byte(medie>=6)+byte (medie>9) for j:=1 to k do wtite (c); writeln end. Oservatie: byte(medie>9)=1 daca medie>9,operatia typecanstic care transfoma valoarea unei variabile de un anumit tip innn alta valoare de alt tip. 4.5(X) Cunoscindu-se coeficientii unui numar complex, sa se afiseze modul si conjugatul sau. R 4.5 Suportul matematic (cunoasterea notiunilor si formulelor) este aici determinat. Numarul complex este memorat folosind un tip de inregistrare cu 2 cimpuri. program nr-complex; type complex=record re,imperial end; var n,nc;complex; modul;real; [nc-numarul conjugat] begin with n do begin writeln('Dati numarul complex:'); write('Coeficientul partii reale:'); readln(re);

write('Coeficientul partii imaginare:'); realdn(im); nc:=n; nc.im:=-nc.im; modul:=sgrt(sgr(re)+sgr(im)); writeln('Modul este :',modul:10:3);
2.13 Scriei un program care calculeaz media general a unei clase cunoscnd numrul de materii, numrul elevilor i mediile acestora. 2.17. Scriei un program care afieaz muncitorii unei S.R.L., ordonai descresctor dup salar. 2.46 Scriei un program care s citeasc numele i data naterii pentru un numr N de persoane, apoi s gseasc i s afieze numrul de zile corespunztor celei mai mari diferene de vrst dintre dou persoane introduse succesiv, precum i numele lor. 3.17 Realizai ordonarea cresctoare a unui vector avnd componente de tip RECORD, dup un anumit cmp, utiliznd metoda de sortare prin nserare direct. Observaie; Programul sorteaz un vector de nr- componente n ordine alfabetic dup cmpul nume indiferent de tipul literelor (mici/mari). 3.18 Realizai ordonarea cresctoare a unui vector avnd componente de tip RECORD, dup un anumit cmp, utiliznd metoda bulelor. Observaie: Programul sorteaz un vector de nr-componente n ordine cresctoare dup cmpul nume.

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