Другие языки программирования и технологии

Здравствуйте нужна помощь по программе на языке паскаль

Пожалуйста подскажите как сделать, или (если не сложно) выполните её. Сформировать запись, имеющую следующую структуру type предмет=record название:string;Количество часов:integer; преподователь:string;кафедра:string;форма отчётности:(зачёт, экзамен);end;и определить:преподавателя, у которого самое большое количество часов;список предметов, по которым сдают экзамен;кафедру и преподавателя, который ведёт данный предмет.
Доброго времени суток.

Целиком делать не буду. Тоько некоторые моменты подскажу.

type
TSubject = record
Name : String[50]; {название предмета (для сильно навороченных увеличьте) }
Volume : Integer; {количество часов}
Tutor : String[40]; {преподаватель}
Chair : String[40]; {кафедра}
Report : Byte; {вид отчетности зачет 0 экзамен 1}
end;

Затем объявляется, допустим, массив таких записей и, на всякий случай, переменная такого же типа.

const NumRec = 10; {максимальное число записей в массиве}
var
A : array[1..NumRec] of TSubject;
T : TSubject;

Далее в цикле можно заполнить поля этой записи. Можно это делать через переменную или непосредственно работать с элементом массива.

for i:=1 to NumRec do begin
Write('Введите название предмета : ');
ReadLn(A[ i ].Name);
{и т. д. для остальных полей}
Write('Введите форму отчетности (зачет - 0 / экзамен - 1) : ');
ReadLn(A[ i ].Report);
end;

Теперь можно приступать к ответу на поставленные вопросы. Делать это можно по-разному. Самый простой путь - просмотр массива и выбор нужных элементов.

Для примера найдем преподавателя с наибольшей нагрузкой и выведем список предметов. Это можно сделать в одном цикле.

MaxVol := 0; {переменная для запоминания мах нагрузки}
MaxI := 0; {индекс этого элемента}

WriteLn('Список предметов, по которым сдается экзамен');
for i:=1 to NumRec do begin
if A[ i ].Report = 1 then WriteLn(A[ i ].Name);
if A[ i ].Volume > MaxVol then begin
MaxVol := A[ i ].Volume; {запомним максимально на данный момент значение}
MaxI := i; {и соответствующий ему индекс}
end;
end;
WriteLn('Преподаватель с максимальной нагрузкой - ', A[MaxI].Chair, '(', MaxVol, ')');

Надеюсь, принцип вы поняли и остальные задания сделаете сами.

Удачи!
РЛ
Роман Лобков
59 613
Лучший ответ
не совсем понял что значит сформировать запись.. .
по идее такую запись нужно в базу данных.
id time prepod и так далее
----|-------|-----------|------------------------------------
1 64 имя1
2 34 имя2
Но если это типа лабы можно сделать многомерный массив или несколько одномерных массивов где элеметом будет как бы строка в базе. цыклом прогонишь и найдешь самое большое число. Делать за тебя не буду, сорь. Своей писанины куча )