Нужна помощь с реализацией программы, использующей списки и указатели - Free Pascal
Формулировка задачи:
Ситуация такая. Работаю в Lasarus. Нужна помощь с реализацией программы.
Задание:
Разработать программу, используя однонаправленные и двунаправленные списки. Пользователь должен ввести номер группы, предмет, преподаватель, дату, аудиторию в программу. Затем пользователь вводит фамилию преподавателя в программу, а программа должна напечатать сведения о всех группах, у которых ведет данный преподаватель.
На данный момент программа зацикливается в блоке while. Я не понимаю следующее:
1. Как передвинуть указатель на следующую позицию
2. Как вернуть указатель в начало списка, чтобы осуществлять поиск по всему списку
3. Как с помощью указателя заставить программу выбирать подходящие результаты.
Помогите, пожалуйста!
Последний блок состоящий из кучи writeln был добавлен для того, чтобы понять работает ли эта программа вообще. Идея такая: через процедуру вводятся данные в запись (можно зациклить процедуру на столько, сколько записей потребуется создать). Затем, я ввожу фамилию преподавателя и программа выбирает все группы, у которых ведет этот препод.
program project1; uses crt; type point=^MyList; MyList=record group:integer; prepod:string; kab:integer; predmet:string; data:string; Next:Point; end; var y: point; Procedure AddElem(var y: point); var lgroup:integer; lprepod:string; lkab:integer; lpredmet:string; ldata:string; begin NEW(y); write('Enter group number: '); readln(lgroup); Write('Enter teacher`s name: '); readln(lprepod); Write('Enter class number: '); readln(lkab); write('Enter the lesson: '); readln(lpredmet); write('Enter the date: '); readln(ldata); {записываем данные в запись по указателю} y^.group:=lgroup; y^.prepod:=lprepod; y^.kab:=lkab; y^.predmet:=lpredmet; y^.data:=ldata; y^.next:=;; end; begin y:=nil; addelem(y); while y<>nil do begin writeln('2'); writeln(y^.group); writeln(y^.prepod); writeln(y^.kab); writeln(y^.predmet); writeln(y^.data); end; dispose(y); readln; end.
Решение задачи: «Нужна помощь с реализацией программы, использующей списки и указатели»
textual
Листинг программы
New(y); Write('Enter group number: '); ReadLn(y^.group); ...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д