Решенные задачи на языке Паскаль
Условие задачи - прислали на 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.Вообщем это самый простой пример на эту тему...
Скачать исходник