Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program ListProj;
- uses crt;
- const MYSTERIOUS_NUMBER = 57978;
- var
- count, userCount, elementIndex : byte;
- list : array[0..5] of integer;
- element, elementOld, i, ii : integer;
- answer : string;
- wasFound : boolean;
- function isAMysteriousNumber(number : integer) : boolean;
- begin
- if (number = MYSTERIOUS_NUMBER) then
- begin
- isAMysteriousNumber := true;
- end else
- begin
- isAMysteriousNumber := false;
- end;
- end;
- function push(element, elementIndex : integer) : integer;
- begin
- end;
- function Pop(elementIndex : integer) : integer;
- begin
- if (count > 0) then
- begin
- if (List[elementIndex] <> MYSTERIOUS_NUMBER) then
- begin
- List[elementIndex] := MYSTERIOUS_NUMBER;
- count -= 1;
- end else
- begin
- textColor(12);
- textBackground(0);
- writeln('ERROR: Element index is empty!');
- normVideo;
- end;
- end else
- begin
- textColor(12);
- textBackground(0);
- writeln('ERROR: List is empty!');
- normVideo;
- end;
- end;
- procedure pushBefore();
- begin
- wasFound := false;
- if ((count > 0) and (count < 6)) then
- begin
- write('Enter the element BEFORE which you want to add a new element: ');
- readln(elementOld);
- write('Enter the new element: ');
- readln(element);
- for i := 0 to 5 do
- begin
- if (list[i] = elementOld) then { Searching for old element cycle }
- begin
- if (list[i - 1] = MYSTERIOUS_NUMBER) then // list[i - 1] = MYSTERIOUS_NUMBER
- begin
- list[i - 1] := element;
- count += 1;
- wasFound := true;
- break;
- end else
- begin
- for ii := 5 downto i do { Elements replacing cycle }
- begin
- list[ii] := list[ii - 1];
- end;
- list[i] := element;
- count += 1;
- wasFound := true;
- break;
- end;
- end;
- end;
- if (not wasFound) then
- begin
- textColor(12);
- textBackground(0);
- writeln('ERROR: The element ', elementOld, ' was not founded!');
- normVideo;
- end;
- end else
- begin
- if (count = 0) then
- begin
- textColor(14);
- write('List is empty');
- normVideo;
- write(', enter the first element: ');
- readln(element);
- list[0] := element;
- count += 1;
- end else
- begin
- textColor(12);
- textBackground(0);
- writeln('ERROR: List is overcrowded!');
- normVideo;
- end;
- end;
- end;
- procedure pushAfter();
- begin
- wasFound := false;
- if ((count > 0) and (count < 6)) then
- begin
- write('Enter the element AFTER which you want to add a new element: ');
- readln(elementOld);
- write('Enter the new element: ');
- readln(element);
- for i := 0 to 5 do { Searching for old element cycle }
- begin
- if (list[i] = elementOld) then
- begin
- if (list[i + 1] = MYSTERIOUS_NUMBER) then // list[i - 1] = MYSTERIOUS_NUMBER
- begin
- list[i + 1] := element;
- count += 1;
- wasFound := true;
- break;
- end else
- begin
- for ii := 5 downto (i + 1) do { Elements replacing cycle }
- begin
- list[ii] := list[ii - 1];
- end;
- list[i + 1] := element;
- count += 1;
- wasFound := true;
- break;
- end;
- end;
- end;
- if (not wasFound) then
- begin
- textColor(12);
- textBackground(0);
- writeln('ERROR: The element ', elementOld, ' was not founded!');
- normVideo;
- end;
- end else
- begin
- if (count = 0) then
- begin
- textColor(14);
- write('List is empty');
- normVideo;
- write(', enter the first element: ');
- readln(element);
- list[0] := element;
- count += 1;
- end else
- begin
- textColor(12);
- textBackground(0);
- writeln('ERROR: List is overcrowded!');
- normVideo;
- end;
- end;
- end;
- begin
- count := 0;
- for i := 0 to 5 do list[i] := MYSTERIOUS_NUMBER;
- repeat
- begin
- write('Current List: [ ');
- for i := 0 to 5 do if isAMysteriousNumber(list[i]) then write(' - ') else write(' ', list[i], ' ');
- writeln(']');
- writeln('1. Add element[NYI] 3. Add element before...');
- writeln('2. Remove element 4. Add element after... 5. Close the programm');
- readln(answer);
- writeln();
- case answer of
- '1':
- begin
- write('Enter element index to add(first element index = 0): ');
- readln(elementIndex);
- write('Enter element: ');
- readln(element);
- if ((0 <= elementIndex) AND (elementIndex <= 5)) then Push(element, elementIndex) else writeln('error :0');
- end;
- '2':
- begin
- if count > 0 then
- begin
- write('Enter element index to remove(first element index = 0): ');
- readln(elementIndex);
- end;
- if ((-1 < elementIndex) AND (elementIndex < 6)) then
- begin
- if list[elementIndex] <> MYSTERIOUS_NUMBER then
- writeln('Removing element from List - ', List[elementIndex]);
- Pop(elementIndex);
- end else
- begin
- textColor(12);
- textBackground(0);
- writeln('ERROR: Element index must be from 0 to 5!');
- normVideo;
- end;
- end;
- '3': pushBefore();
- '4': PushAfter();
- end;
- end
- until answer = ('5');
- end.
Advertisement
Add Comment
Please, Sign In to add comment