Вопрос задан 09.07.2026 в 07:26.
Предмет Информатика.
Спрашивает Николаева Яна.
Дан массив записей о студентах: фамилия, год рождения, оценки по 3 экзаменам. Найдите средний балл студентов 1989 года рождения и старше, а также вычислите количество отличников и задолжников. Напишите программу на Pascal.
Ответы на вопрос
Отвечает Артёменко Анастасия.
Под «студентами 1989 года рождения и старше» понимаются студенты, родившиеся в 1989 году или раньше, то есть с годом рождения <= 1989.
В программе:
-
отличник — студент, получивший
5по всем трём экзаменам; -
задолжник — студент, у которого есть хотя бы одна оценка
2; -
средний балл вычисляется по всем оценкам трёх экзаменов студентов нужной возрастной группы.
pascalprogram 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 года рождения и старше будет рассчитан по оценкам Иванова, Сидорова и Кузнецова. Отличником будет Иванов, а задолжником — Петров.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

