Вопрос задан 09.07.2026 в 07:26. Предмет Информатика. Спрашивает Николаева Яна.

Дан массив записей о студентах: фамилия, год рождения, оценки по 3 экзаменам. Найдите средний балл студентов 1989 года рождения и старше, а также вычислите количество отличников и задолжников. Напишите программу на Pascal.

Перейти к ответам

Ответы на вопрос

Отвечает Артёменко Анастасия.

Под «студентами 1989 года рождения и старше» понимаются студенты, родившиеся в 1989 году или раньше, то есть с годом рождения <= 1989.

В программе:

  • отличник — студент, получивший 5 по всем трём экзаменам;

  • задолжник — студент, у которого есть хотя бы одна оценка 2;

  • средний балл вычисляется по всем оценкам трёх экзаменов студентов нужной возрастной группы.

pascal
program StudentStatistics;

const
MaxN = 100;

type
TStudent = record
Surname: string[30];
BirthYear: integer;
Grade: array[1..3] of integer;
end;

var
Students: array[1..MaxN] of TStudent;
N, I, J: integer;
SumGrades: longint;
CountGrades: integer;
ExcellentCount, DebtorCount: integer;
IsExcellent, IsDebtor: boolean;

begin
writeln('Введите количество студентов:');
readln(N);

SumGrades := 0;
CountGrades := 0;
ExcellentCount := 0;
DebtorCount := 0;

for I := 1 to N do
begin
writeln('Введите фамилию, год рождения и 3 оценки студента ', I, ':');
readln(Students[I].Surname,
Students[I].BirthYear,
Students[I].Grade[1],
Students[I].Grade[2],
Students[I].Grade[3]);

{ Вычисление среднего балла для 1989 года рождения и старше }
if Students[I].BirthYear <= 1989 then
begin
for J := 1 to 3 do
begin
SumGrades := SumGrades + Students[I].Grade[J];
CountGrades := CountGrades + 1;
end;
end;

{ Проверка на отличника и задолжника }
IsExcellent := true;
IsDebtor := false;

for J := 1 to 3 do
begin
if Students[I].Grade[J] <> 5 then
IsExcellent := false;

if Students[I].Grade[J] = 2 then
IsDebtor := true;
end;

if IsExcellent then
ExcellentCount := ExcellentCount + 1;

if IsDebtor then
DebtorCount := DebtorCount + 1;
end;

if CountGrades > 0 then
writeln('Средний балл студентов 1989 года рождения и старше: ',
SumGrades / CountGrades:0:2)
else
writeln('Студентов 1989 года рождения и старше нет.');

writeln('Количество отличников: ', ExcellentCount);
writeln('Количество задолжников: ', DebtorCount);
end.

Пример ввода:

4
Иванов 1988 5 5 5
Петров 1990 4 3 2
Сидоров 1989 5 4 5
Кузнецов 1987 3 3 4

Для этого примера средний балл студентов 1989 года рождения и старше будет рассчитан по оценкам Иванова, Сидорова и Кузнецова. Отличником будет Иванов, а задолжником — Петров.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос