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

Сделайте формализацию к : группа учащихся из 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.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота