Нужна помощь с реализацией программы, использующей списки и указатели - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Ситуация такая. Работаю в Lasarus. Нужна помощь с реализацией программы. Задание: Разработать программу, используя однонаправленные и двунаправленные списки. Пользователь должен ввести номер группы, предмет, преподаватель, дату, аудиторию в программу. Затем пользователь вводит фамилию преподавателя в программу, а программа должна напечатать сведения о всех группах, у которых ведет данный преподаватель. На данный момент программа зацикливается в блоке while. Я не понимаю следующее: 1. Как передвинуть указатель на следующую позицию 2. Как вернуть указатель в начало списка, чтобы осуществлять поиск по всему списку 3. Как с помощью указателя заставить программу выбирать подходящие результаты. Помогите, пожалуйста!
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.
Последний блок состоящий из кучи writeln был добавлен для того, чтобы понять работает ли эта программа вообще. Идея такая: через процедуру вводятся данные в запись (можно зациклить процедуру на столько, сколько записей потребуется создать). Затем, я ввожу фамилию преподавателя и программа выбирает все группы, у которых ведет этот препод.

Решение задачи: «Нужна помощь с реализацией программы, использующей списки и указатели»

textual
Листинг программы
  New(y);
  Write('Enter group number: '); ReadLn(y^.group);
...

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы