Akaleaf

ListProj

Oct 24th, 2018
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.34 KB | None | 0 0
  1. program ListProj;
  2.  
  3. const MYSTERIOUS_NUMBER = 57978;
  4.  
  5. var
  6. count, userCount, elementIndex : byte;
  7. list : array[0..5] of integer;
  8. element, elementOld, i : integer;
  9. answer : string;
  10. wasFound : boolean;
  11.  
  12. function isAMysteriousNumber(number : integer) : boolean;
  13. begin
  14. if (number = MYSTERIOUS_NUMBER) then
  15. begin
  16. isAMysteriousNumber := true;
  17. end else
  18. begin
  19. isAMysteriousNumber := false;
  20. end;
  21. end;
  22.  
  23. function Push(element, elementIndex : integer) : integer;
  24. begin
  25. if (count <= 5) then
  26. begin
  27. List[elementIndex] := element;
  28. count += 1;
  29. end else
  30. begin
  31. if (count > 5) then
  32. writeln;
  33. writeln('!!!!!!!!!!ERROR: the List is overloaded!!!!!!!!!!');
  34. writeln;
  35. end;
  36. end;
  37.  
  38. function Pop(elementIndex : integer) : integer;
  39. begin
  40. if (count > 0) then
  41. begin
  42. if (List[elementIndex] <> 0) then
  43. begin
  44. List[elementIndex] := 0;
  45. count -= 1;
  46. end else
  47. begin
  48. writeln;
  49. writeln('!!!!!!!!!!ERROR: Element index is empty!!!!!!!!!!');
  50. end;
  51. end else
  52. begin
  53. writeln;
  54. writeln('!!!!!!!!!!ERROR: List is empty!!!!!!!!!!');
  55. writeln;
  56. end;
  57. end;
  58.  
  59. procedure PushBefore();
  60. begin
  61. write('Enter the element BEFORE which you want to add a new element: ');
  62. readln(elementOld);
  63. write('Enter the new element: ');
  64. readln(element);
  65. wasFound := false;
  66. if (count > 0) then
  67. begin
  68. for i := 0 to 5 do
  69. begin
  70. if (list[i] = elementOld) then
  71. begin
  72. if i > 0 then list[i - 1] := element else
  73. begin
  74. writeln;
  75. writeln('!!!!!!!!!!ERROR: The element ', list[i], ' is the first element!!!!!!!!!!');
  76. writeln;
  77. end;
  78. wasFound := true;
  79. break;
  80. end;
  81. end;
  82. if (not wasFound) then
  83. begin
  84. writeln();
  85. writeln('!!!!!!!!!!ERROR: The element ', elementOld, ' was not founded!!!!!!!!!!');
  86. writeln();
  87. end;
  88. end else
  89. begin
  90. writeln('!!!!!!!!!!ERROR: List is empty!!!!!!!!!!');
  91. end;
  92. end;
  93.  
  94. procedure PushAfter();
  95. begin
  96. write('Enter the element AFTER which you want to add a new element: ');
  97. readln(elementOld);
  98. write('Enter the new element: ');
  99. readln(element);
  100. wasFound := false;
  101. if (count > 0) then
  102. begin
  103. for i := 0 to 5 do
  104. begin
  105. if (list[i] = elementOld) then
  106. begin
  107. if i < 5 then list[i + 1] := element else
  108. begin
  109. writeln;
  110. writeln('!!!!!!!!!!ERROR: The element ', list[i], ' is the last element!!!!!!!!!!');
  111. writeln;
  112. end;
  113. wasFound := true;
  114. break;
  115. end;
  116. end;
  117. if (not wasFound) then
  118. begin
  119. writeln();
  120. writeln('!!!!!!!!!!ERROR: The element ', elementOld, ' was not founded!!!!!!!!!!');
  121. writeln();
  122. end;
  123. end else
  124. begin
  125. writeln('!!!!!!!!!!ERROR: List is empty!!!!!!!!!!');
  126. end;
  127. end;
  128.  
  129. begin
  130. count := 0;
  131. for i := 0 to 5 do list[i] := MYSTERIOUS_NUMBER;
  132. repeat
  133. begin
  134. write('Current List: [ ');
  135. for i := 0 to 5 do if isAMysteriousNumber(list[i]) then write(' - ') else write(' ', list[i], ' ');
  136. writeln(']');
  137. writeln('1. Add element to List');
  138. writeln('2. Remove element from List');
  139. writeln('3. Add element before...');
  140. writeln('4. Add element after...');
  141. writeln('5. Close the programm');
  142. readln(answer);
  143. writeln();
  144.  
  145. case answer of
  146. '1':
  147. begin
  148. write('Enter element index to add(first element index = 0): ');
  149. readln(elementIndex);
  150. write('Enter element: ');
  151. readln(element);
  152. if ((0 <= elementIndex) AND (elementIndex <= 5)) then Push(element, elementIndex) else writeln('error :0');
  153. end;
  154. '2':
  155. begin
  156. write('Enter element index to remove(first element index = 0): ');
  157. readln(elementIndex);
  158. if ((-1 < elementIndex) AND (elementIndex < 6)) then
  159. begin
  160. writeln('Removing element from List - ', List[elementIndex]);
  161. Pop(elementIndex);
  162. end else
  163. begin
  164. writeln;
  165. writeln('element index must be from 0 to 5!');
  166. end;
  167. end;
  168. '3': PushBefore();
  169. '4': PushAfter();
  170. end;
  171.  
  172. end
  173. until answer = ('5');
  174. end.
Advertisement
Add Comment
Please, Sign In to add comment