Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type
- liste = record
- next: ^liste;
- inf: integer;
- end;
- list = record
- list1, list2, list3, list4, list5: ^liste;
- end;
- var
- listw: list;
- i, inf, n: integer;
- x: boolean;
- s, s1: string;
- procedure vvod(var listw: list; inf: integer);
- var
- y: boolean;
- begin
- begin
- New(listw.list2^.next);
- listw.list2^.inf := inf;
- listw.list2 := listw.list2^.next;
- end;
- end;
- procedure vivod(listw: list);
- begin
- writeln('Вывод списка элементов:');
- while listw.list1^.next <> nil do
- begin
- Writeln(listw.list1^.inf);
- listw.list1 := listw.list1^.next;
- end;
- writeln();
- end;
- procedure udal(g: integer);
- var
- l: integer;
- begin
- if g > 1 then
- begin
- for l := 1 to g - 2 do
- listw.list4 := listw.list4^.next;
- if listw.list4^.next^.next = nil then
- begin
- listw.list4^.next := nil;
- listw.list4 := listw.list4^.next;
- dispose(listw.list4);
- end
- else
- begin
- listw.list4^.next := listw.list4^.next^.next;
- end;
- end;
- if g = 1 then
- begin
- listw.list1 := listw.list1^.next;
- dispose(listw.list4);
- end;
- end;
- procedure poisk(listw: list; g: integer);
- var
- h: integer;
- begin
- while listw.list1 <> nil do
- begin
- if listw.list1^.inf = g then
- begin
- writeln('Адрес элемента - "', listw.list1, '"');
- h := h + 1;
- end;
- listw.list1 := listw.list1^.next;
- end;
- listw.list1 := listw.list4;
- if h = 0 then
- writeln('Таких элементов не найдено');
- writeln();
- end;
- procedure prov(listw: list; g: integer);
- var
- h: integer;
- begin
- while listw.list1 <> nil do
- begin
- if listw.list1^.inf = g then
- h := h + 1;
- listw.list1 := listw.list1^.next;
- end;
- if h = 0 then
- writeln('Таких элементов в списке нет')
- else
- writeln('Таких элементов в списке - "', h, '"');
- writeln();
- end;
- begin
- New(listw.list1);
- listw.list2 := listw.list1;
- New(listw.list3);
- listw.list3 := listw.list1;
- New(listw.list3);
- listw.list4 := listw.list1;
- New(listw.list5);
- listw.list5 := listw.list1;
- while x = false do
- begin
- writeln('#############################');
- writeln('# Меню #');
- writeln('# "1" - добавить элемент #');
- writeln('# "2" - удалить элемент #');
- writeln('# "3" - найти элемент #');
- writeln('# "4" - вывести список #');
- writeln('# "5" - проверка #');
- writeln('# "6" - выйти из программы #');
- writeln('#############################');
- readln(n);
- if n = 1 then
- begin
- listw.list1 := listw.list5;
- writeln('Введите элемент (цифры)');
- readln(i);
- vvod(listw, i);
- writeln('Вы успешно добавили элемент');
- writeln();
- writeln('Введите "Выход", чтобы выйти из программы, или просто нажмите "Enter", чтобы заново вызвать меню');
- readln(s);
- if (s = 'Выход') or (s = 'выход') then
- begin
- x := true;
- writeln('Теперь вы можете выключить программу');
- end;
- end
- else
- if n = 2 then
- begin
- writeln('Введите номер элемента, который вы желаете удалить');
- readln(i);
- udal(i);
- writeln();
- writeln('Введите "Выход", чтобы выйти из программы, или просто нажмите "Enter", чтобы заново вызвать меню');
- readln(s);
- if (s = 'Выход') or (s = 'выход') then
- begin
- x := true;
- writeln('Теперь вы можете выключить программу');
- end;
- end
- else
- if n = 3 then
- begin
- writeln('Введите элемент который вы хотите найти');
- readln(i);
- poisk(listw, i);
- writeln();
- writeln('Введите "Выход", чтобы выйти из программы, или просто нажмите "Enter", чтобы заново вызвать меню');
- readln(s);
- if (s = 'Выход') or (s = 'выход') then
- begin
- x := true;
- writeln('Теперь вы можете выключить программу');
- end;
- end
- else
- if n = 4 then
- begin
- vivod(listw);
- writeln();
- writeln('Введите "Выход", чтобы выйти из программы, или просто нажмите "Enter", чтобы заново вызвать меню');
- readln(s);
- if (s = 'Выход') or (s = 'выход') then
- begin
- x := true;
- writeln('Теперь вы можете выключить программу');
- end;
- end
- else
- if n = 5 then
- begin
- writeln('Введите значение элемента, на который вы хотите проверить список');
- readln(i);
- prov(listw, i);
- writeln();
- writeln('Введите "Выход", чтобы выйти из программы, или просто нажмите "Enter", чтобы заново вызвать меню');
- readln(s);
- if (s = 'Выход') or (s = 'выход') then
- begin
- x := true;
- writeln('Теперь вы можете выключить программу');
- end;
- end
- else
- if n = 6 then
- begin
- x := true;
- writeln('Теперь вы можете выключить программу');
- end
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement