Определите средний балл всех учащихся по каждому предмету. Формат входных данных Заданы сначала количество...

Тематика Информатика
Уровень 10 - 11 классы
программирование Паскаль вычисление среднего балла обработка данных ввод и вывод оценки студенты задачи на программирование алгоритмы
0

Определите средний балл всех учащихся по каждому предмету. Формат входных данных Заданы сначала количество учащихся n, затем n строк, каждая из которых содержит фамилию, имя и три числа (оценки по трем предметам: математике, физике, информатике). Данные в строке разделены одним пробелом. Оценки принимают значение от 1 до 5. Формат выходных данных Выведите три действительных числа: средний балл всех учащихся по математике, по физике, по информатике.Пример Ввод Вывод 4 4.75 3.75 4.5 Ivanov Vasiliy 5 3 4 Petrov Sergey 4 3 5 Konstantinov Nikolay 5 5 5 Kuznetsov Ivan 5 4 4

Задачу написать на паскале

avatar
задан месяц назад

3 Ответа

0

Для решения задачи на языке программирования Pascal необходимо выполнить следующие шаги:

  1. Считать количество учащихся n.
  2. Для каждого учащегося считать его данные, включая оценки по математике, физике и информатике.
  3. Подсчитать суммарные баллы по каждому предмету.
  4. Вычислить средние баллы по каждому предмету, разделив суммарные баллы на количество учащихся n.
  5. Вывести средние баллы в требуемом формате.

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

program AverageScores;

var
  n, i: Integer;
  mathScore, physicsScore, informaticsScore: Integer;
  sumMath, sumPhysics, sumInformatics: Real;
  averageMath, averagePhysics, averageInformatics: Real;
  surname, name: String;

begin
  // Инициализация сумм
  sumMath := 0;
  sumPhysics := 0;
  sumInformatics := 0;

  // Считываем количество учащихся
  ReadLn(n);

  // Цикл по каждому учащемуся
  for i := 1 to n do
  begin
    // Считываем фамилию, имя и оценки
    ReadLn(surname, name, mathScore, physicsScore, informaticsScore);

    // Суммируем оценки по каждому предмету
    sumMath := sumMath + mathScore;
    sumPhysics := sumPhysics + physicsScore;
    sumInformatics := sumInformatics + informaticsScore;
  end;

  // Вычисляем средние оценки
  averageMath := sumMath / n;
  averagePhysics := sumPhysics / n;
  averageInformatics := sumInformatics / n;

  // Выводим средние оценки
  WriteLn(averageMath:0:2, ' ', averagePhysics:0:2, ' ', averageInformatics:0:2);
end.

Объяснение программы:

  • Переменные:

    • n: количество учащихся.
    • mathScore, physicsScore, informaticsScore: оценки текущего учащегося по математике, физике и информатике соответственно.
    • sumMath, sumPhysics, sumInformatics: суммарные оценки по каждому из предметов.
    • averageMath, averagePhysics, averageInformatics: средние оценки по каждому из предметов.
    • surname, name: фамилия и имя учащегося, которые нам не нужны для вычислений, но должны быть считаны.
  • Процесс:

    • Сначала инициализируем суммарные оценки нулем.
    • Считываем количество учащихся.
    • Для каждого учащегося считываем данные и добавляем его оценки к соответствующим суммам.
    • После обработки всех учащихся вычисляем средние оценки, деля суммарные оценки на количество учащихся.
    • Выводим результаты с точностью до двух знаков после запятой.

Эта программа предполагает, что входные данные корректны и соответствуют формату, указанному в условии задачи.

avatar
ответил месяц назад
0

program AverageGrades;

var n, i, mathGrade, physicsGrade, informaticsGrade: integer; mathSum, physicsSum, informaticsSum: real; name, surname: string;

begin mathSum := 0; physicsSum := 0; informaticsSum := 0;

readln(n);

for i := 1 to n do begin

readln(surname, name, mathGrade, physicsGrade, informaticsGrade);

mathSum := mathSum + mathGrade;
physicsSum := physicsSum + physicsGrade;
informaticsSum := informaticsSum + informaticsGrade;

end;

writeln(mathSum / n:0:2, ' ', physicsSum / n:0:2, ' ', informaticsSum / n:0:2); end.

avatar
ответил месяц назад
0

program AverageScore;

var n, i, mathSum, physSum, infoSum: integer; mathAvg, physAvg, infoAvg: real; math, phys, info: integer;

begin mathSum := 0; physSum := 0; infoSum := 0;

readln(n);

for i := 1 to n do begin

readln(math, phys, info);
mathSum := mathSum + math;
physSum := physSum + phys;
infoSum := infoSum + info;

end;

mathAvg := mathSum / n; physAvg := physSum / n; infoAvg := infoSum / n;

writeln(mathAvg:0:2, ' ', physAvg:0:2, ' ', infoAvg:0:2); end.

avatar
ответил месяц назад

Ваш ответ

Вопросы по теме