Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program lista; uses crt;
- type AdresaCandidat=^Candidat;
- Candidat=record
- Nume,Prenume:string;
- virsta:integer;
- NotaMedie:real;
- urm:AdresaCandidat;
- end;
- var p,u,l9:AdresaCandidat;
- virsta:integer;
- c:char;
- Nume,Prenume:string;
- NotaMedie:real;
- procedure Introduc;
- var R:AdresaCandidat;
- num,i:integer;
- begin
- write('Introdu numarul de elevi:');
- readln(num);
- for i:=1 to num do
- begin
- new(R);
- write('Numele:');
- readln(r^.Nume) ;
- write('Prenumele:');
- readln(r^.Prenume) ;
- write('Virsta:');
- readln(virsta);
- write('Nota medie:');
- readln(r^.NotaMedie);
- writeln('--------------------');
- r^.urm:=p;
- p:=r;
- end;
- end;
- procedure Afisare;
- var r:AdresaCandidat;
- begin
- if p=nil then writeln('Nu este nici un candidat') else
- begin
- writeln('-----LISTA DE ELEVI-----');
- r:=p;
- while r<> nil do
- begin
- writeln(r^.Nume);
- writeln(r^.Prenume);
- writeln(r^.NotaMedie:2:2);
- writeln('--------------------');
- r:=r^.urm;
- end;
- end;
- readln;
- end;
- procedure Afisarea7;
- var r:AdresaCandidat;
- begin
- if p=nil then writeln('Nu este nici un candidat') else
- begin
- writeln('-----LISTA DE ELEVI CU MEDIE MICA-----');
- r:=p;
- while r<> nil do
- begin
- if r^.NotaMedie<7.5 then begin
- writeln(r^.Nume);
- writeln(r^.Prenume);
- writeln(r^.NotaMedie:2:2);
- writeln('--------------------');
- end;
- r:=r^.urm;
- end;
- end;
- readln;
- end;
- procedure Afisarea8;
- var r:AdresaCandidat;
- begin
- if p=nil then writeln('Nu este nici un candidat') else
- begin
- writeln('-----LISTA DE ELEVI CU MEDIE MARE-----');
- r:=p;
- while r<> nil do
- begin
- if r^.NotaMedie>=7.5 then begin
- writeln(r^.Nume);
- writeln(r^.Prenume);
- writeln(r^.NotaMedie:2:2);
- writeln('--------------------');
- end;
- r:=r^.urm;
- end;
- end;
- readln;
- end;
- procedure CreareL9;
- var r,r2:AdresaCandidat;
- begin
- if p=nil then writeln('Nu este nici un candidat') else
- begin
- r:=p;
- while r<> nil do
- begin
- if r^.NotaMedie > 9 then begin
- new(R2);
- r2^.nume:=r^.nume;
- r2^.prenume:=r^.prenume;
- r2^.virsta:=r^.virsta;
- r2^.notamedie:=r^.notamedie;
- r2^.urm:=l9;
- l9:=r2;
- end;
- r:=r^.urm;
- end;
- end;
- writeln('Lista cu elevi cu nota medie mai mare de 9 a fost creata. Afisati-o!');
- readln;
- end;
- procedure AfisareL9;
- var r:AdresaCandidat;
- begin
- if p=nil then writeln('Nu este nici un candidat') else
- begin
- writeln('-----LISTA DE ELEVI-----');
- r:=l9;
- while r<> nil do
- begin
- writeln(r^.Nume);
- writeln(r^.Prenume);
- writeln(r^.NotaMedie:2:2);
- writeln('--------------------');
- r:=r^.urm;
- end;
- end;
- readln;
- end;
- procedure Extrag;
- var r:AdresaCandidat;
- begin
- if p=nil then writeln('Lista este vida') else
- begin
- r:=p;
- write('A fost extras:');
- writeln(r^.Nume);
- writeln(r^.Prenume);
- p:=p^.urm;
- dispose(r);
- readln;
- end;
- end;
- begin
- p:=nil;
- repeat
- clrscr;
- writeln('Menu');
- writeln('i=Introducerea candidatului care isi include documentele:');
- writeln('e=Candidatul care isi extrage documentele:');
- writeln('a=Afisarea listei de candidati la ecran:');
- writeln('n=Afisarea listei de elevi cu media <7.5');
- writeln('s=Afisarea listei de elevi cu media >=7.5');
- writeln('l=Creaza lista cu elevi >9');
- writeln('q=Afisare lista noua');
- writeln('o=Oprirea programului:');
- write('Optiunea=');readln(c);
- case c of
- 'i':Introduc;
- 'e':Extrag;
- 'a':Afisare;
- 'n':Afisarea7;
- 's':Afisarea8;
- 'l':CreareL9;
- 'q':AfisareL9;
- 'o':
- else writeln('Optiune necunoscuta');
- end;
- until c='o';
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement