Дан целочисленный массив из 30 элементов, которые могут принимать значения от 0 до 100 – баллы, полученные...

Тематика Информатика
Уровень 10 - 11 классы
программирование Python массивы ЕГЭ средний балл рандомные числа условие экзамен алгоритмы вычисления
0

Дан целочисленный массив из 30 элементов, которые могут принимать значения от 0 до 100 – баллы, полученные на ЕГЭ. Напишите программу, которая подсчитывает и выводит средний балл учащихся, сдавших экзамен (получивших оценку более 20). числа вводятся рандомно (не с клавиатуры)

avatar
задан день назад

3 Ответа

0

Для решения этой задачи нужно написать программу, которая:

  1. Генерирует массив из 30 случайных целых чисел в диапазоне от 0 до 100, представляющих баллы.
  2. Определяет, какие из этих баллов превышают 20.
  3. Подсчитывает средний балл только для тех элементов массива, которые больше 20.

Программа должна учитывать, что могут быть ситуации, когда никто не сдал экзамен (все баллы ≤ 20), и в этом случае нужно обработать ситуацию (например, вывести сообщение, что никто не сдал экзамен).

Пример программы на Python:

import random

# Шаг 1: Генерация массива из 30 случайных чисел от 0 до 100
scores = [random.randint(0, 100) for _ in range(30)]

# Шаг 2: Отбор баллов, превышающих 20
passed_scores = [score for score in scores if score > 20]

# Шаг 3: Подсчет среднего балла
if len(passed_scores) > 0:  # Проверяем, есть ли учащиеся, сдавшие экзамен
    average_score = sum(passed_scores) / len(passed_scores)
    print("Баллы всех учащихся:", scores)
    print("Баллы учащихся, сдавших экзамен:", passed_scores)
    print("Средний балл учащихся, сдавших экзамен:", round(average_score, 2))
else:
    print("Никто не сдал экзамен (все баллы 20 или ниже).")

Пояснение:

  1. Генерация массива:

    • Используется функция random.randint(0, 100) для генерации случайного числа от 0 до 100.
    • Генерация массива из 30 элементов выполнена с помощью спискового включения ([random.randint(0, 100) for _ in range(30)]).
  2. Отбор сдавших экзамен:

    • Список passed_scores формируется с помощью другого спискового включения: [score for score in scores if score > 20]. В него попадают только те элементы из scores, которые больше 20.
  3. Подсчет среднего балла:

    • Средний балл вычисляется как сумма всех баллов, делённая на их количество.
    • Если количество учащихся, сдавших экзамен (len(passed_scores)), равно нулю, программа выводит сообщение о том, что никто не сдал экзамен.
  4. Вывод результатов:

    • Программа отображает исходные данные (все баллы), баллы сдавших экзамен и средний балл.

Пример вывода программы:

Предположим, что массив случайных баллов выглядит так:

Баллы всех учащихся: [12, 45, 67, 23, 19, 34, 56, 9, 80, 21, 18, 40, 25, 100, 60, 15, 22, 33, 10, 5, 27, 38, 41, 50, 70, 65, 8, 29, 31, 20]

Тогда вывод программы будет:

Баллы учащихся, сдавших экзамен: [45, 67, 23, 34, 56, 80, 40, 25, 100, 60, 22, 33, 27, 38, 41, 50, 70, 65, 29, 31]
Средний балл учащихся, сдавших экзамен: 46.7

Если никто не сдал экзамен (все баллы ≤ 20), программа выведет:

Никто не сдал экзамен (все баллы 20 или ниже).

Плюсы подхода:

  • Код легко читается и расширяется.
  • Использование списковых включений делает поиск и фильтрацию данных лаконичными и эффективными.
  • Обработка ситуации, когда никто не сдал экзамен, предотвращает деление на ноль и ошибки.

Такой алгоритм универсален и может быть адаптирован для других задач с подобной логикой.

avatar
ответил день назад
0

Для решения поставленной задачи мы можем использовать язык программирования Python. Давайте создадим программу, которая будет генерировать случайные значения для целочисленного массива из 30 элементов, а затем подсчитывать средний балл учащихся, получивших оценку выше 20.

Шаги для решения задачи:

  1. Импортировать необходимые библиотеки.
  2. Сгенерировать массив из 30 случайных целых чисел в диапазоне от 0 до 100.
  3. Отфильтровать оценки, которые больше 20.
  4. Вычислить средний балл для отфильтрованных значений.
  5. Вывести результат.

Пример кода на Python:

import random

# Генерируем массив из 30 случайных целых чисел от 0 до 100
scores = [random.randint(0, 100) for _ in range(30)]

# Выводим сгенерированные баллы
print("Сгенерированные баллы:", scores)

# Фильтруем оценки, которые больше 20
passing_scores = [score for score in scores if score > 20]

# Проверяем, есть ли оценки, которые больше 20
if passing_scores:
    # Вычисляем средний балл
    average_score = sum(passing_scores) / len(passing_scores)
    print("Средний балл учащихся, сдавших экзамен:", average_score)
else:
    print("Нет учащихся, сдавших экзамен (оценка больше 20).")

Объяснение кода:

  1. Импорт библиотеки random: Эта библиотека позволяет генерировать случайные числа.
  2. Генерация массива: Мы используем списковое включение для создания массива scores, который содержит 30 случайных оценок от 0 до 100.
  3. Фильтрация оценок: С помощью спискового включения мы создаем новый список passing_scores, который содержит только те оценки, которые больше 20.
  4. Проверка и расчет среднего балла: Если список passing_scores не пуст, мы рассчитываем средний балл, деля сумму оценок на их количество. Если же оценок больше 20 нет, выводится соответствующее сообщение.
  5. Вывод результатов: Программа выводит сгенерированные баллы и средний балл учащихся, сдавших экзамен.

Запуск программы:

При каждом запуске программы будут генерироваться новые случайные баллы, и соответственно, может изменяться средний балл. Это позволяет получить разные результаты, что делает программу интерактивной и интересной для использования.

avatar
ответил день назад
0

Вот пример программы на Python, которая генерирует массив из 30 случайных целых чисел от 0 до 100 и подсчитывает средний балл учащихся, получивших более 20 баллов:

import random

# Генерация массива из 30 случайных целых чисел от 0 до 100
scores = [random.randint(0, 100) for _ in range(30)]

# Фильтрация баллов, превышающих 20
filtered_scores = [score for score in scores if score > 20]

# Подсчет среднего балла
if filtered_scores:
    average_score = sum(filtered_scores) / len(filtered_scores)
else:
    average_score = 0

# Вывод результатов
print(f"Сгенерированные баллы: {scores}")
print(f"Средний балл учащихся, сдавших экзамен: {average_score:.2f}")

Эта программа сначала создает массив случайных баллов, затем фильтрует его, чтобы оставить только те, которые больше 20, и, наконец, вычисляет средний балл, если такие баллы есть.

avatar
ответил день назад

Ваш ответ

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