Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Program students_dynamic_list;
- type itemAddress = ^item;
- item = record
- name: string;
- grade: real;
- next: itemAddress;
- end;
- var p, v: itemAddress;
- name: string;
- grade: real;
- option: char;
- procedure initializeList;
- var r: itemAddress;
- name: string;
- grade: real;
- begin
- writeln();writeln();
- if p<>nil then
- writeln('Lista deja exista')
- else begin
- write('Introdu numele: ');
- readln(name);
- while name<>'' do begin
- write('Introdu nota medie: ');
- readln(grade);
- new(r);
- r^.name:= name;
- r^.grade:= grade;
- r^.next:= nil;
- if p=nil then
- p:= r
- else
- v^.next:= r;
- v:= r;
- write('Introdu numele: ');
- readln(name);
- end;
- end;
- end;
- procedure printList;
- var r: itemAddress;
- begin
- writeln('');writeln('');
- if p=nil then writeln('Lista este vida.')
- else begin
- writeln('Lista curenta:');
- r:= p;
- while r<>nil do begin
- writeln(r^.name:15, r^.grade:10:2);
- r:= r^.next;
- end;
- end;
- end;
- procedure removeItem(target: string);
- var q, r: itemAddress;
- begin
- writeln('');writeln('');
- r:= p;
- q:= r;
- while r<>nil do begin
- if r^.name = target then break;
- q:= r;
- r:= r^.next;
- end;
- if r=nil then writeln('Element inexistent')
- else begin
- if r=p then
- p:= r^.next
- else
- q^.next:= r^.next;
- writeln('Elevul a fost sters');
- end;
- end;
- procedure addItem(newName: string; newGrade: real);
- var r: itemAddress;
- begin
- writeln('');writeln('');
- new(r);
- v^.next:= r;
- r^.name:= newName;
- r^.grade:= newGrade;
- v:= r;
- writeln('Elevul a fost adaugat');
- end;
- begin
- repeat
- writeln();writeln();
- writeln('Alege optiunea:');
- writeln('c - creare lista');
- writeln('p - afiseaza lista');
- writeln('a - adauga un elev nou');
- writeln('s - sterge un elev din lista');
- writeln('q - termina executia programului');
- readln(option);
- case option of
- 'c': initializeList();
- 'p': printList();
- 'a': begin
- writeln();
- write('Introdu numele noului elev: ');
- readln(name);
- write('Introdu nota lui medie: ');
- readln(grade);
- addItem(name, grade);
- end;
- 's': begin
- writeln();
- write('Introdu numele elevului: ');
- readln(name);
- removeItem(name);
- end;
- end;
- until option = 'q';
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement