Вывести на экран фамилии студентов рекомендованных к отчислению - Pascal
Формулировка задачи:
[QUOTE=albert12;9050894]Составить список, содержащий сведения об N студентах. Для каждого учащегося указать:
- фамилия;
- ИНН (идентификационный номер налогоплательщика);
- дата рождения;
- год поступления в университет;
- курс;
- группа;
- оценки текущей сессии по трем предметам.
Информацию о каждом студенте оформить в виде записи. Совокупность записей объединить в массив.
Составить программу, которая обеспечивает ввод исходных данных, об-работку и вывод на экран информации в соответствии с вариантом задания, приведенного в таблице
Вывести на экран фамилии студентов рекомендованных к отчислению
Критерий средний балл студента должен быть ниже значения заданного с клавиатуры
Решение задачи: «Вывести на экран фамилии студентов рекомендованных к отчислению»
textual
Листинг программы
{$MODE TP}
const
m_max = 3;
type
TMarks = Array[0..m_max - 1] Of Byte;
TStudent = record
surname: String[50];
vatId: String;
birthDate: String[10];
admissionYear: Word;
studyCourse: Byte;
group: String[20];
marks: TMarks;
end;
function GetAvr(const marks: TMarks): Single;
var
Result: Single;
j: 0..m_max;
begin
Result := 0;
for j := 0 to m_max - 1 do
Result := Result + marks[j];
GetAvr := Result / m_max;
end;
var
ar: Array[Byte] Of TStudent;
i, j, n: Byte;
avr: Single;
begin
repeat
Write('How much students add? '); ReadLn(n);
until (n > 0);
for i := 0 to n - 1 do
with ar[i] do
begin
Write('Input surname: '); ReadLn(surname);
Write('Input VAT identification number: '); ReadLn(vatId);
Write('Input date of birth: '); ReadLn(birthDate);
Write('Input admission year: '); ReadLn(admissionYear);
Write('Input course: '); ReadLn(studyCourse);
Write('Input group: '); ReadLn(group);
for j := 0 to m_max - 1 do
begin
Write('Input ', j + 1, ' mark: '); ReadLn(marks[j]);
end;
end;
WriteLn; WriteLn;
Write('Input critical avr: '); ReadLn(avr);
for i := 0 to n - 1 do
with ar[i] do
if (GetAvr(marks) < avr)
then
WriteLn(surname);
end.
Объяснение кода листинга программы
- Объявляются константа
m_max(максимальное количество оценок у студента) и типTMarks(массив оценок), а также типTStudent(структура для описания студента). - Создается функция
GetAvrдля расчета среднего балла по оценкам. - Объявляются переменные
ar(массив студентов),i,j(счетчики),n(количество студентов),avr(критический средний балл). - Запрашивается количество студентов вводимых в систему.
- Вводится информация о каждом студенте (фамилия, идентификационный номер, дата рождения, год поступления, курс, группа, оценки).
- Запрашивается критический средний балл.
- Происходит проверка среднего балла каждого студента, и если он ниже заданного критического значения, выводится фамилия этого студента.