Вывести на экран фамилии и имена трех лучших по среднему баллу учеников - QBasic
Формулировка задачи:
На вход программе подаются сведения о сдаче экзаменов учениками 9-х классов
некоторой средней школы. В первой строке сообщается количество учеников N, которое
не меньше 10, но не превосходит 100, каждая из следующих N строк имеет следующий
формат: <Фамилия> <Имя> <оценки>, где <Фамилия> – строка, состоящая не более чем
из 20 символов, <Имя> – строка, состоящая не более чем из 15 символов, <оценки> –
через пробел три целых числа, соответствующие оценкам по пятибалльной системе.
<Фамилия> и <Имя>, а также <Имя> и <оценки> разделены одним пробелом. Пример
входной строки:
Иванов Петр 4 5 4
Требуется написать программу, которая будет выводить на экран фамилии и имена трех
лучших по среднему баллу учеников. Если среди остальных есть ученики, набравшие тот
же средний балл, что и один из трех лучших, то следует вывести и их фамилии и имена.
Требуемые имена и фамилии можно выводить в произвольном порядке.
'К- макс это кол-во символов в строке
Решение задачи: «Вывести на экран фамилии и имена трех лучших по среднему баллу учеников»
textual
Листинг программы
INPUT "vvedite n"; n DIM a$(n), d(n) FOR i = 1 TO n INPUT "vvedite text"; b$ FOR j = LEN(b$) TO LEN(b$) - 4 STEP -1 IF MID$(b$, j, 1) <> " " THEN d(i) = d(i) + VAL(MID$(b$, j, 1)) NEXT a$(i) = MID$(b$, 1, LEN(b$) - 6) d(i) = d(i) / 3 NEXT q = 10 FOR i = 1 TO 3 max = -1 FOR j = 1 TO n IF d(j) > max AND d(j) < q THEN max = d(j) NEXT q = max NEXT FOR i = 1 TO n IF d(i) >= q THEN PRINT a$(i) NEXT
Объяснение кода листинга программы
В этом коде выполняется следующая последовательность действий:
- Пользователю предлагается ввести количество учеников (n).
- Создаются два массива: массив a$ для хранения имен учеников и массив d$ для хранения среднего балла учеников.
- Происходит два вложенных цикла, в которых пользователь вводит имена учеников и их средний балл.
- Внутренний цикл перебирает символы в строке с именем ученика, проверяет, является ли текущий символ числом, и если да, то добавляет его к сумме среднего балла текущего ученика.
- Внешний цикл перебирает имена учеников и сохраняет их в массиве a$.
- Средний балл каждого ученика вычисляется путем деления суммы его баллов на 3.
- Значение q устанавливается равным 10.
- Происходит еще два вложенных цикла, в которых находится три ученика с наибольшим средним баллом, не превышающим значение q.
- Выводятся на экран имена этих учеников.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д