Вывести на экран фамилии и имена трех лучших по среднему баллу учеников - 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

Объяснение кода листинга программы

В этом коде выполняется следующая последовательность действий:

  1. Пользователю предлагается ввести количество учеников (n).
  2. Создаются два массива: массив a$ для хранения имен учеников и массив d$ для хранения среднего балла учеников.
  3. Происходит два вложенных цикла, в которых пользователь вводит имена учеников и их средний балл.
  4. Внутренний цикл перебирает символы в строке с именем ученика, проверяет, является ли текущий символ числом, и если да, то добавляет его к сумме среднего балла текущего ученика.
  5. Внешний цикл перебирает имена учеников и сохраняет их в массиве a$.
  6. Средний балл каждого ученика вычисляется путем деления суммы его баллов на 3.
  7. Значение q устанавливается равным 10.
  8. Происходит еще два вложенных цикла, в которых находится три ученика с наибольшим средним баллом, не превышающим значение q.
  9. Выводятся на экран имена этих учеников.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы