Ниже подробное решение задачи с пояснениями и готовой программой на Python. Это ориентировано на 9-й класс информатики и цель “Понять”.
Что делает программа
- спрашивает размер списка n у пользователя;
- заполняет список n целыми случайными числами в диапазоне от 0 до 40 включительно;
- выводит сам список;
- вычисляет и выводит среднее арифметическое элементов списка;
- подсчитывает и выводит количество элементов, которые больше 10;
- проверяет, есть ли два соседних элемента со одинаковыми значениями, и выводит True или False.
Пошаговое объяснение
- Считываем n и проверяем значение:
- должно быть положительным целым числом.
- если введено неверно, выводим сообщение и завершаем работу.
- Создаём список из n элементов: каждый элемент — случайное целое число в диапазоне [0, 40].
- Выводим полученный список на экран.
- Среднее арифметическое: берем сумму всех элементов и делим на n.
- Подсчёт элементов, значения которых больше 10: считаем элементы, удовлетворяющие x > 10.
- Проверяем наличие двух соседних элементов с одинаковыми значениями: сравниваем arr[i] и arr[i+1] для всех i от 0 до n-2.
- Выводим результаты.
Готовый код (Python 3)
import random
def main():
# 1) Ввод n
try:
n = int(input("Введите размер списка n: "))
if n <= 0:
print("n должно быть положительным целым числом.")
return
except ValueError:
print("Ошибка: введите целое число.")
return
# 2) Заполнение списка целыми случайными числами в [0; 40]
arr = [random.randint(0, 40) for _ in range(n)]
# 3) Вывод списка
print("Сгенерированный список:", arr)
# 4) Среднее арифметическое элементов списка
mean = sum(arr) / n
print("Среднее арифметическое элементов списка:", mean)
# 5) Подсчёт элементов больше 10
count_gt_10 = sum(1 for x in arr if x > 10)
print("Количество элементов, больших 10:", count_gt_10)
# 6) Проверка наличия соседних равных элементов
has_equal_neighbors = any(arr[i] == arr[i + 1] for i in range(n - 1))
print("Есть ли в списке два соседних элемента с одинаковыми значениям?", has_equal_neighbors)
if name == "main":
main()
Пояснения к коду
- random.randint(a, b) возвращает целое число в диапазоне [a, b], включая границы.
- Среднее вычисляется как sum(arr) / n. Учитывайте, что результат — число с плавающей точкой.
- Подсчёт элементов, больших 10: генераторная конструкция sum(1 for x in arr if x > 10) считает единицу за каждый подходящий элемент.
- Проверка соседних равных элементов: генератор any(arr[i] == arr[i + 1] for i in range(n - 1)) возвращает True, если найдены пары соседних равных элементов.
Советы
- Если нужно вывести целый результат без дробной части, можно использовать mean как округлённое значение: mean = sum(arr) / n; print("Среднее:", round(mean, 2)).
- Программа корректно обрабатывает случаи, когда n <= 0 или ввод некорректен (например, не число). В таких случаях она выводит сообщение и прекращает работу.
Пример возможного вывода (пример, список будет другим из-за генерации рандома):
Введите размер списка n: 6
Сгенерированный список: [2, 15, 0, 40, 11, 9]
Среднее арифметическое элементов списка: 12.833333333333334
Количество элементов, больших 10: 3
Есть ли в списке два соседних элемента с одинаковыми значениями? False
Если нужно, могу адаптировать решение под другой язык программирования или добавить обработку повторного ввода нулями/положительными значениями.