Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit Unit1;
- interface
- uses
- Classes, SysUtils;
- type
- Avenger=record
- name: string;
- firstname: string;
- lastname: string;
- skill: string;
- level: integer;
- end;
- PTeam=^Team;
- Team= record
- data: avenger;
- next: PTeam;
- prev: PTeam;
- end;
- procedure dodajAvengera(var listaAv:PTeam; data:Avenger);
- procedure zwiekszLvl(listaAv:PTeam; name:string; level:integer);
- function sortujAvengera(listaAv:PTeam):PTeam;
- procedure pstryk(listaAv:PTeam);
- procedure wyswietlAvengersow(listaAv:PTeam);
- implementation
- procedure dodajAvengera(var listaAv:PTeam; data:Avenger);
- var
- nowyAvenger:PTeam;
- begin
- new(nowyAvenger);
- nowyAvenger^.data:=data;
- nowyAvenger^.prev:=NIL;
- if(listaAv=NIL) then
- begin
- nowyAvenger^.next:=NIL;
- end
- else
- begin
- listaAv^.prev:=nowyAvenger;
- nowyAvenger^.next:=listaAv;
- end;
- listaAv:=nowyAvenger;
- end;
- procedure zwiekszLvl(listaAv:PTeam; name:string; level:integer);
- begin
- while listaAv <> NIL do
- begin
- if(listaAv^.data.name=name) then
- begin
- listaAv^.data.level:=listaAv^.data.level + level;
- break;
- end;
- listaAv:=listaAv^.next;
- end;
- end;
- function sortujAvengera(listaAv:PTeam):PTeam;
- var
- zmiana:boolean;
- tmp, tmp1:Avenger;
- begin
- if (listaAv=NIL) OR (listaAv^.next=NIL) then
- begin
- sortujAvengera:=listaAv;
- end
- else
- repeat
- zmiana:=FALSE;
- while listaAv^.next <> NIL do
- begin
- if (listaAv^.data.level) > (listaAv^.next^.data.level) then
- begin
- tmp:=listaAv^.data;
- tmp1:= listaAv^.next^.data;
- listaAv^.data:=tmp1;
- listaAv^.next^.data:=tmp;
- zmiana:=TRUE;
- end;
- listaAv:=listaAv^.next;
- end;
- while listaAv^.prev<>NIL do
- begin
- listaAv:=listaAv^.prev;
- end;
- until zmiana=FALSE;
- sortujAvengera:=listaAv;
- end;
- procedure pstryk(listaAv:PTeam);
- var
- i:Integer;
- tmp, tmp1:PTeam;
- begin
- i:=0;
- while listaAV<>NIL do
- begin
- i:=i+1;
- if (i mod 2)=0 then
- begin
- tmp:=listaAv^.next;
- tmp1:=listaAv^.prev;
- tmp1^.next:=tmp;
- tmp^.prev:=tmp1;
- listaAv:=tmp;
- end
- else
- begin
- listaAv:=listaAv^.next;
- end;
- end;
- end;
- procedure wyswietlAvengersow(listaAv:PTeam);
- begin
- while listaAv^.next <> NIL do
- begin
- listaAv:=listaAv^.next;
- end;
- while listaAv<>NIL do
- begin
- writeln('Avenger: ', listaAv^.data.name);
- listaAv:=listaAv^.prev;
- end;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement