Вопрос задан 19.07.2023 в 18:40. Предмет Информатика. Спрашивает Ракович Иван.

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

балл студентов 1989 года рождения и старше,а также вычислить количество отличников и задолжников. Написать программу в Pascal,пожалуйста
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Barbq-Junior Андрюха.

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

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно! Вот пример программы на Pascal, которая решает вашу задачу:

pascal
program 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 года рождения и старше, а также определяет количество отличников и задолжников среди них. Результаты выводятся на экран.

0 0

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

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

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

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