Решенные задачи на языке Паскаль
Условие задачи - прислали на e-mail.
Написать программу посещения студентами дисплейного класса. Учесть приход и уход студентов в течение занятий. Данные представить в виде линейного списка.
TYPE
Link=^data; {указатель на тип данных }
data=record {описание самого типа данных }
FIO:string[50]; {ФИО }
timeStart,timeEnd:string[5]; {время нчала и конца (15:03) }
next:Link; {указатель на следующую запись}
end;
VAR
P,First:Link; {указатели на запись: текущую, первую}
m:byte; {для меню }
{добавление новой записи в список}
PROCEDURE addFirst(a:Link);
BEGIN
a^.next:=First;
First:=a;
END;
{ввод данных в текущую запись}
PROCEDURE InputData;
BEGIN
P:=new(Link);
write('Введите ФИО: ');
readln(P^.FIO);
write('Введите время начала: ');
readln(P^.timeStart);
write('Введите время окончания: ');
readln(P^.timeEnd);
addFirst(P);
END;
{вывод на экран}
PROCEDURE Print;
var
curr:Link; {указатель на очередную запись }
count:integer; {счетчик }
BEGIN
count:=0;
curr:=First; {установить указатель на первую запись}
while curr<>nil do
begin
inc(count);
writeln(count,') ',curr^.FIO:55,curr^.timeStart:10,curr^.timeEnd);
curr:=curr^.next; {перейти к очередной записи }
end;
readln;
END;
{===== основная программа =====}
BEGIN
new(P); {создать новую динамическую переменную и установить на нее указатель}
{цикл меню}
repeat
InputData; {ввод данных }
writeln;
writeln('1 - добавить в список');
writeln('2 - распечатать весь список и выйти');
write('=>');
readln(m);
until m=2;
Print; {вывод на экран}
END.
Вообщем это самый простой пример на эту тему...Скачать исходник