Сделайте пожалуйста формализацию к задаче:Группа учащихся из N  человек сдавала по 4 предмета. Определить и напечатать фамилии учащихся у которых средний балл за экзамены больше среднего балла всей группы?

Сделайте пожалуйста формализацию к задаче: Группа учащихся из N  человек сдавала по 4 предмета. Определить и напечатать фамилии учащихся у которых средний балл за экзамены больше среднего балла всей группы?
Гость
Ответ(ы) на вопрос:
Гость
1. Структура для хранения и обработки данных Объект - Учащийся. Каждый учащийся характеризуется фамилией с инициалами и имеет набор из четырех отметок по результатам сдачи экзаменов - всего 5 параметров. Для простоты считаем, что фамилии с инициалами уникальны. Объекты однородны, т.е. отличаются друг от друга только значениями параметров. Это позволяет объединить их в группу, осуществляя доступ к каждому объекту либо по его порядковому номеру в группе, либо по фамилии. Поставленная задача не требует поиска конкретного учащегося по фамилии, поэтому достаточно предоставлять доступ к каждому учащемуся по порядковому номеру. Объект "Учащийся" может быть представлен в виде записи (структуры) для случая реализации программы на алгоритмическом языке, либо в виде таблицы базы данных для случая реализации в среде СУБД. Не исключена также примитивная реализация в виде двух массивов, в одном из которых указываются фамилии с инициалами, а в другом отметки; связь учащегося с его оценками в этом случае поддерживается за счет использования одинакового номера строк в массиве. Нам также понадобится где-то хранить средний балл учащегося, для того чтобы сделать необходимую по условию задачи выборку. Запишем пример реализации для языка Паскаль. а) Три массива. var    FIO: array[1..40] of string; { для фамилий и инициалов }    ResBall: array[1..40,1..4] of byte; { для оценок }    SrBall: array[1..40] of real; { для среднего балла } В этом случае объект "Учащийся" отображается связкой FIO[i], ResBall[i,j], SrBall[i] где i- номер учащегося, j - номер отметки в наборе отметок. б) Запись type     tUch=record         FIO: string;         ResBall:array[1..4] of byte;         SrBall:real     end; var     Uch:array[1..40] of tUch; В этом случае доступ к объекту "Учащийся" реализуется в виде Uch[i].FIO, Uch[i].ResBall[j], Uch[i].SrBall в) Таблица базы данных с именем Uch FIO символьный(20) Ball1 целый Ball2 целый Ball3 целый Ball4 целый SrBall числовой В этом случае доступ к объекту "Учащийся" реализуется в виде Uch.FIO, Uch.Ball1..Uch.Ball4, Uch.SrBall 2. Алгоритм обработки Запрашиваем N - количество учащихся в группе, и организуем ввод данных по N учащимся. Попутно со вводом для каждого учащегося вычисляем сумму всех четырех его оценок, а также средний балл, равный найденной сумме, деленной на 4. Сумму отметок по всей группе накапливаем в некоторой переменной S, а средний балл записываем в структуру хранения. После накопления в S суммы всех оценок находим Sg=S/N - средний балл по группе. Организуем проход по всех группе и выводим фамилию и средний балл тех учащихся, у которых средний балл превышает Sg.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы