Другие языки программирования и технологии
Здравствуйте нужна помощь по программе на языке паскаль
Пожалуйста подскажите как сделать, или (если не сложно) выполните её. Сформировать запись, имеющую следующую структуру 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, ')');
Надеюсь, принцип вы поняли и остальные задания сделаете сами.
Удачи!
Целиком делать не буду. Тоько некоторые моменты подскажу.
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, ')');
Надеюсь, принцип вы поняли и остальные задания сделаете сами.
Удачи!
не совсем понял что значит сформировать запись.. .
по идее такую запись нужно в базу данных.
id time prepod и так далее
----|-------|-----------|------------------------------------
1 64 имя1
2 34 имя2
Но если это типа лабы можно сделать многомерный массив или несколько одномерных массивов где элеметом будет как бы строка в базе. цыклом прогонишь и найдешь самое большое число. Делать за тебя не буду, сорь. Своей писанины куча )
по идее такую запись нужно в базу данных.
id time prepod и так далее
----|-------|-----------|------------------------------------
1 64 имя1
2 34 имя2
Но если это типа лабы можно сделать многомерный массив или несколько одномерных массивов где элеметом будет как бы строка в базе. цыклом прогонишь и найдешь самое большое число. Делать за тебя не буду, сорь. Своей писанины куча )
Похожие вопросы
- Нужны программы на языке Паскаль
- Напишите программу на языке Паскаль для решения задачи:
- Составьте программу на языке Паскаль! Нужна программа по переводу чисел из десятичной системы счисления в любую другую.
- Программа на языке Паскаль
- Составьте программу на языке паскаль
- написать программу на языке паскаль, буду благодарен
- составление программы на языке паскаль
- Помогите пожалуйста! помогите написать программу на языке паскаль
- Как составить программу на языке Паскаль,если задано следующее условие
- помогите, пожалуйста, написать программу на языке Паскаль