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

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

Program raf105;
type Info = record
family: string;
year: integer;
Score: record
exam1: byte;
exam2: byte;
exam3: byte;
end;
end;
const
n = 3; // Количество студентов
var
Students: array[1..n] of Info;
i, goodStud, badStud, students1989Count, students1989ScoreSum: integer;
midScore1989: real;
begin
writeln('Введите информацию о ',n,' студентах');
for i:=1 to n do
begin
writeln(' Студент ',i);
write('Фамилия: ');
readln(Students[i].family);
write('Год рождения: ');
readln(Students[i].year);
writeln('Введите информацию о его оценках (от 1 до 5)');
write('Оценка за 1 экзамен: ');
readln(Students[i].Score.exam1);
write('Оценка за 2 экзамен: ');
readln(Students[i].Score.exam2);
write('Оценка за 3 экзамен: ');
readln(Students[i].Score.exam3);
if Students[i].year <= 1989 then
begin
students1989Count:= students1989Count + 3;
students1989ScoreSum:= students1989ScoreSum + Students[i].Score.exam1 + Students[i].Score.exam2 + Students[i].Score.exam3;
end;
if (Students[i].Score.exam1 = 5) and (Students[i].Score.exam2 = 5) and (Students[i].Score.exam3 = 5) then
inc(goodStud);
if (Students[i].Score.exam1 <= 2) or (Students[i].Score.exam2 <= 2) or (Students[i].Score.exam3 <= 2) then
inc(badStud);
end;
midScore1989:= students1989ScoreSum / students1989Count;
writeln;
writeln('Средний балл студентов 1989 года рождения и старше: ',midScore1989:3:1);
writeln('Количество отличников: ',goodStud);
writeln('Количество задолжников: ',badStud);
end.
PascalABC



Конечно! Вот пример программы на Pascal, которая решает вашу задачу:
pascalprogram StudentGrades; const MAX_STUDENTS = 100; type Student = record surname: string; birthYear: integer; exam1, exam2, exam3: integer; end; var students: array[1..MAX_STUDENTS] of Student; numStudents, i, sumGrades, numExcellent, numPoor: integer; averageGrade: real; procedure ReadStudent(var student: Student); begin writeln('Введите фамилию студента:'); readln(student.surname); writeln('Введите год рождения студента:'); readln(student.birthYear); writeln('Введите оценки по 3 экзаменам (каждая оценка от 2 до 5):'); readln(student.exam1, student.exam2, student.exam3); writeln; end; function CalculateAverageGrade(var student: Student): real; begin Result := (student.exam1 + student.exam2 + student.exam3) / 3; end; begin numStudents := 0; numExcellent := 0; numPoor := 0; sumGrades := 0; writeln('Введите данные студентов. Для завершения ввода введите пустую фамилию.'); // Ввод данных о студентах repeat Inc(numStudents); ReadStudent(students[numStudents]); until (students[numStudents].surname = ''); // Вычисление среднего балла и количества отличников/задолжников for i := 1 to numStudents - 1 do begin if students[i].birthYear >= 1989 then begin averageGrade := CalculateAverageGrade(students[i]); sumGrades := sumGrades + round(averageGrade); if averageGrade >= 4.5 then Inc(numExcellent) else if averageGrade < 3 then Inc(numPoor); end; end; // Вывод результатов if numStudents > 1 then begin writeln('Средний балл студентов 1989 года рождения и старше:', sumGrades / (numStudents - 1):0:2); writeln('Количество отличников:', numExcellent); writeln('Количество задолжников:', numPoor); end else writeln('Недостаточно данных для вычислений.'); readln; end.
Программа сначала запрашивает данные о студентах до тех пор, пока не будет введена пустая фамилия. Затем она вычисляет средний балл для студентов 1989 года рождения и старше, а также определяет количество отличников и задолжников среди них. Результаты выводятся на экран.


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









Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili