Akaleaf

FinalListArray

Nov 15th, 2018
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 5.62 KB | None | 0 0
  1. program ListProj;
  2.  
  3. uses crt;
  4.  
  5. const MYSTERIOUS_NUMBER = 57978;
  6.  
  7. var
  8.   count, userCount, elementIndex : byte;
  9.   list : array[0..5] of integer;
  10.   element, elementOld, i, ii : integer;
  11.   answer : string;
  12.   wasFound : boolean;
  13.  
  14. function isAMysteriousNumber(number : integer) : boolean;
  15. begin
  16.   if (number = MYSTERIOUS_NUMBER) then
  17.   begin
  18.     isAMysteriousNumber := true;
  19.   end else
  20.   begin
  21.     isAMysteriousNumber := false;
  22.   end;
  23. end;
  24.  
  25. function push(element, elementIndex : integer) : integer;
  26.  begin
  27.  end;
  28.  
  29. function Pop(elementIndex : integer) : integer;
  30. begin
  31.   if (count > 0) then
  32.   begin
  33.     if (List[elementIndex] <> MYSTERIOUS_NUMBER) then
  34.     begin
  35.       List[elementIndex] := MYSTERIOUS_NUMBER;
  36.       count -= 1;
  37.     end else
  38.     begin
  39.       textColor(12);
  40.       textBackground(0);
  41.       writeln('ERROR: Element index is empty!');
  42.       normVideo;
  43.     end;
  44.   end else
  45.   begin
  46.     textColor(12);
  47.     textBackground(0);
  48.     writeln('ERROR: List is empty!');
  49.     normVideo;
  50.   end;
  51. end;
  52.  
  53. procedure pushBefore();
  54. begin
  55.   wasFound := false;
  56.   if ((count > 0) and (count < 6)) then
  57.   begin
  58.     write('Enter the element BEFORE which you want to add a new element: ');
  59.     readln(elementOld);
  60.     write('Enter the new element: ');
  61.     readln(element);
  62.     for i := 0 to 5 do
  63.     begin
  64.       if (list[i] = elementOld) then       { Searching for old element cycle }
  65.       begin
  66.         if (list[i - 1] = MYSTERIOUS_NUMBER) then                                             // list[i - 1] = MYSTERIOUS_NUMBER
  67.         begin
  68.           list[i - 1] := element;
  69.           count += 1;
  70.           wasFound := true;
  71.           break;
  72.         end else
  73.         begin
  74.           for ii := 5 downto i do        { Elements replacing cycle }
  75.           begin
  76.             list[ii] := list[ii - 1];
  77.           end;
  78.           list[i] := element;
  79.           count += 1;
  80.           wasFound := true;
  81.           break;
  82.         end;
  83.       end;
  84.     end;
  85.     if (not wasFound) then
  86.     begin
  87.       textColor(12);
  88.       textBackground(0);
  89.       writeln('ERROR: The element ', elementOld, ' was not founded!');
  90.       normVideo;
  91.     end;
  92.   end else
  93.   begin
  94.     if (count = 0) then
  95.     begin
  96.       textColor(14);
  97.       write('List is empty');
  98.       normVideo;
  99.       write(', enter the first element: ');
  100.       readln(element);
  101.       list[0] := element;
  102.       count += 1;
  103.     end else
  104.     begin
  105.       textColor(12);
  106.       textBackground(0);
  107.       writeln('ERROR: List is overcrowded!');
  108.       normVideo;
  109.     end;
  110.   end;
  111. end;
  112.  
  113. procedure pushAfter();
  114. begin
  115.   wasFound := false;
  116.   if ((count > 0) and (count < 6)) then
  117.   begin
  118.     write('Enter the element AFTER which you want to add a new element: ');
  119.     readln(elementOld);
  120.     write('Enter the new element: ');
  121.     readln(element);
  122.     for i := 0 to 5 do                { Searching for old element cycle }
  123.     begin
  124.       if (list[i] = elementOld) then
  125.       begin
  126.         if (list[i + 1] = MYSTERIOUS_NUMBER) then                                             // list[i - 1] = MYSTERIOUS_NUMBER
  127.         begin
  128.           list[i + 1] := element;
  129.           count += 1;
  130.           wasFound := true;
  131.           break;
  132.         end else
  133.         begin
  134.           for ii := 5 downto (i + 1) do      { Elements replacing cycle }
  135.           begin
  136.             list[ii] := list[ii - 1];
  137.           end;
  138.           list[i + 1] := element;
  139.           count += 1;
  140.           wasFound := true;
  141.           break;
  142.         end;
  143.       end;
  144.     end;
  145.     if (not wasFound) then
  146.     begin
  147.       textColor(12);
  148.       textBackground(0);
  149.       writeln('ERROR: The element ', elementOld, ' was not founded!');
  150.       normVideo;
  151.     end;
  152.   end else
  153.   begin
  154.     if (count = 0) then
  155.     begin
  156.       textColor(14);
  157.       write('List is empty');
  158.       normVideo;
  159.       write(', enter the first element: ');
  160.       readln(element);
  161.       list[0] := element;
  162.       count += 1;
  163.     end else
  164.     begin
  165.       textColor(12);
  166.       textBackground(0);
  167.       writeln('ERROR: List is overcrowded!');
  168.       normVideo;
  169.     end;
  170.   end;
  171. end;
  172.  
  173. begin
  174.   count := 0;
  175.   for i := 0 to 5 do list[i] := MYSTERIOUS_NUMBER;
  176.   repeat
  177.     begin
  178.       write('Current List:                     [ ');
  179.       for i := 0 to 5 do if isAMysteriousNumber(list[i]) then write(' - ') else write(' ', list[i], ' ');
  180.       writeln(']');
  181.       writeln('1. Add element[NYI] 3. Add element before...');
  182.       writeln('2. Remove element   4. Add element after...  5. Close the programm');
  183.       readln(answer);
  184.       writeln();
  185.       case answer of
  186.       '1':
  187.         begin
  188.           write('Enter element index to add(first element index = 0): ');
  189.           readln(elementIndex);
  190.           write('Enter element: ');
  191.           readln(element);
  192.           if ((0 <= elementIndex) AND (elementIndex <= 5)) then Push(element, elementIndex) else writeln('error :0');
  193.         end;
  194.       '2':
  195.         begin
  196.           if count > 0 then
  197.           begin
  198.           write('Enter element index to remove(first element index = 0): ');
  199.           readln(elementIndex);
  200.           end;
  201.           if ((-1 < elementIndex) AND (elementIndex < 6)) then
  202.           begin
  203.             if list[elementIndex] <> MYSTERIOUS_NUMBER then
  204.             writeln('Removing element from List - ', List[elementIndex]);
  205.             Pop(elementIndex);
  206.           end else
  207.           begin
  208.             textColor(12);
  209.             textBackground(0);
  210.             writeln('ERROR: Element index must be from 0 to 5!');
  211.             normVideo;
  212.           end;
  213.         end;
  214.       '3': pushBefore();
  215.       '4': PushAfter();
  216.       end;
  217.  
  218.     end
  219.   until answer = ('5');
  220. end.
Advertisement
Add Comment
Please, Sign In to add comment