Выполнить поиск элемента в списке - Pascal ABC
Формулировка задачи:
Разработать программу, выполняющую coздание односвязного списка, вывод его элементов на экран, а также указанные действия в соответствии с вариантом. Построить схемы действий со списком, отражающие связи между элементами списка, а также их изменение в случае добавления или удаления элементов из списка.Тип элементов списка – символы. Выполнить поиск элемента в списке. Помогите исправить
Решение задачи: «Выполнить поиск элемента в списке»
textual
Листинг программы
program listexample; uses CRT; type plist = ^tlist; tlist = record data: real; next: plist end; var list, start: plist; i: integer; b: real; f: boolean; procedure Add(d: real); var l: plist; begin New(l); l^.data := d; l^.next := nil; if start <> nil then begin list := start; while list^.next <> nil do list := list^.next; list^.next := l end else start := l; list := l end; procedure Display; begin if start = nil then begin writeLn('Список пуст'); exit end; list := start; while list <> nil do begin write(#32, list^.data); list := list^.next end end; procedure Clean; var l: plist; begin if start = nil then exit; list := start; while list <> nil do begin l := list; list := list^.next; Dispose(l) end; start := nil end; procedure Delete; var l: plist; begin if start = nil then exit; l := list^.next; begin list := start^.next; Dispose(start); start := list end end; procedure Search(d: real; var flag: boolean); begin list := start; flag := false; while (list <> nil) and (not flag) do begin if d = list^.data then begin flag := true; break; end else list := list^.next end; end; begin while true do begin ClrScr; writeLn('Выберите действие'); writeLn('1 - Добавление'); writeLn('2 - Удаление'); writeLn('3 - Очистка памяти'); writeLn('4 - Вывод'); writeLn('5 - Поиск'); writeLn('6 - Выход'); writeLn('>>>>>'); Display; gotoxy(7, 8); readLn(i); gotoxy(1, 10); case i of 1: begin write('Введите значение '); readln(b); Add(b) end; 2: begin write('Искомое значение '); readLn(b); Search(b, f); if list = nil then begin writeLn('Список пуст'); readLn; continue end; Delete; end; 3: Clean; 4: begin ClrScr; Display; readLn; end; 5: begin write('Искомое значение: '); readLn(b); Search(b, f); if f then writeln('Найденное значение: ', b) else writeln('Нет такого значения'); readLn; end; 6: begin Clean; break end; end; end; end.
Объяснение кода листинга программы
- В программе используется структура данных список, представленная типом plist.
- Функция Add добавляет новый элемент в список.
- Функция Display выводит элементы списка.
- Функция Clean очищает список.
- Функция Delete удаляет элемент из списка.
- Функция Search ищет элемент в списке.
- Программа предлагает пользователю выбрать действие и выполняет соответствующую операцию.
- Код программы реализован с помощью условного оператора gotoxy для перемещения курсора на нужную позицию на экране.
- В случае поиска элемента программа выводит сообщение
Найденное значение:
, а затем просит пользователя ввести найденное значение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д