Advertisement
Guest User

Untitled

a guest
Jan 24th, 2019
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.82 KB | None | 0 0
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6. Classes, SysUtils;
  7.  
  8. type
  9. Avenger=record
  10. name: string;
  11. firstname: string;
  12. lastname: string;
  13. skill: string;
  14. level: integer;
  15. end;
  16.  
  17. PTeam=^Team;
  18. Team= record
  19. data: avenger;
  20. next: PTeam;
  21. prev: PTeam;
  22. end;
  23. procedure dodajAvengera(var listaAv:PTeam; data:Avenger);
  24. procedure zwiekszLvl(listaAv:PTeam; name:string; level:integer);
  25. function sortujAvengera(listaAv:PTeam):PTeam;
  26. procedure pstryk(listaAv:PTeam);
  27. procedure wyswietlAvengersow(listaAv:PTeam);
  28.  
  29. implementation
  30. procedure dodajAvengera(var listaAv:PTeam; data:Avenger);
  31. var
  32. nowyAvenger:PTeam;
  33. begin
  34. new(nowyAvenger);
  35. nowyAvenger^.data:=data;
  36. nowyAvenger^.prev:=NIL;
  37.  
  38. if(listaAv=NIL) then
  39. begin
  40. nowyAvenger^.next:=NIL;
  41. end
  42. else
  43. begin
  44. listaAv^.prev:=nowyAvenger;
  45. nowyAvenger^.next:=listaAv;
  46. end;
  47. listaAv:=nowyAvenger;
  48. end;
  49.  
  50. procedure zwiekszLvl(listaAv:PTeam; name:string; level:integer);
  51. begin
  52. while listaAv <> NIL do
  53. begin
  54. if(listaAv^.data.name=name) then
  55. begin
  56. listaAv^.data.level:=listaAv^.data.level + level;
  57. break;
  58. end;
  59. listaAv:=listaAv^.next;
  60. end;
  61. end;
  62.  
  63. function sortujAvengera(listaAv:PTeam):PTeam;
  64. var
  65. zmiana:boolean;
  66. tmp, tmp1:Avenger;
  67. begin
  68. if (listaAv=NIL) OR (listaAv^.next=NIL) then
  69. begin
  70. sortujAvengera:=listaAv;
  71. end
  72. else
  73. repeat
  74. zmiana:=FALSE;
  75. while listaAv^.next <> NIL do
  76. begin
  77. if (listaAv^.data.level) > (listaAv^.next^.data.level) then
  78. begin
  79. tmp:=listaAv^.data;
  80. tmp1:= listaAv^.next^.data;
  81.  
  82. listaAv^.data:=tmp1;
  83. listaAv^.next^.data:=tmp;
  84. zmiana:=TRUE;
  85. end;
  86. listaAv:=listaAv^.next;
  87. end;
  88.  
  89. while listaAv^.prev<>NIL do
  90. begin
  91. listaAv:=listaAv^.prev;
  92. end;
  93.  
  94. until zmiana=FALSE;
  95.  
  96. sortujAvengera:=listaAv;
  97. end;
  98.  
  99. procedure pstryk(listaAv:PTeam);
  100. var
  101. i:Integer;
  102. tmp, tmp1:PTeam;
  103. begin
  104. i:=0;
  105. while listaAV<>NIL do
  106. begin
  107. i:=i+1;
  108. if (i mod 2)=0 then
  109. begin
  110. tmp:=listaAv^.next;
  111. tmp1:=listaAv^.prev;
  112.  
  113. tmp1^.next:=tmp;
  114. tmp^.prev:=tmp1;
  115.  
  116. listaAv:=tmp;
  117. end
  118. else
  119. begin
  120. listaAv:=listaAv^.next;
  121. end;
  122. end;
  123. end;
  124.  
  125. procedure wyswietlAvengersow(listaAv:PTeam);
  126. begin
  127. while listaAv^.next <> NIL do
  128. begin
  129. listaAv:=listaAv^.next;
  130. end;
  131.  
  132. while listaAv<>NIL do
  133. begin
  134. writeln('Avenger: ', listaAv^.data.name);
  135. listaAv:=listaAv^.prev;
  136. end;
  137. end;
  138.  
  139. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement