Главная / Учебники / Информатика 9 класс / Параграф §1.5 / ГДЗ §1.5
| Глава: | Глава 1. Алгоритмы и программирование |
|---|---|
| Параграф: | §1.5 - Обработка одномерных массивов целых чисел на языке Python |
| Учебник: | Информатика 9 класс - |
| Автор: | Босова Людмила Леонидовна |
| Год: | 2025 |
| Издание: | 7-е издание, стереотипное |
Ответ:
Индекс — это порядковый номер элемента в массиве, который используется для доступа к нему (начиная с \(0\)). Значение — это сами данные (число, символ и т. д.), которые хранятся в ячейке массива с этим индексом. Например, в \(A[3] = 15\), число \(3\) — это индекс, а \(15\) — значение элемента.
Ответ:
В языке Python, где массивы реализованы как списки, они могут содержать элементы разных типов одновременно, включая как целые, так и вещественные числа.
Ответ:
Массивы используются для организованного хранения и обработки большого количества однотипных данных. Они позволяют обращаться к данным по индексу, что необходимо для реализации типовых алгоритмов, таких как суммирование, поиск, и сортировка.
Ответ:
Ответ:
Хранение длины массива (например, \(N\)) в отдельной переменной обеспечивает гибкость и удобство при работе с массивом. Это позволяет легко изменять размер массива в одной точке кода и использовать переменную \(N\) в циклах и других расчетах, что делает программу более читаемой и легкой для модификации.
Ответ:
Второй вариант программы с оператором \(break\) разработан для поиска первого элемента, удовлетворяющего заданному условию, и немедленно прекращает просмотр массива, как только этот элемент найден. Первый вариант, напротив, просматривает все элементы массива независимо от того, был ли искомый элемент найден ранее. Второй вариант более эффективен по времени выполнения, если требуется найти только одно, первое вхождение.
Ответ:
Переменная-счетчик \(k\) (инициализированная \(0\)) используется для подсчета количества элементов массива, удовлетворяющих условию (например, \(A[i] \% 2 == 0\)), и увеличивается на \(1\) при каждом совпадении. Переменная-аккумулятор \(s\) (инициализированная \(0\)) используется для суммирования значений элементов, удовлетворяющих некоторому условию (например, \(A[i] \% 2 == 0\) \(and\) \(A[i] \% 10 == 4\)), прибавляя к себе значение самого элемента \(A[i]\).
Ответ:
При обработке последовательности в памяти хранится только один текущий элемент и переменная-результат, а предыдущие элементы безвозвратно теряются. Это позволяет использовать минимальное количество памяти, что экономично. При обработке массива необходимо хранить все элементы одновременно, что требует значительно больше памяти, но позволяет повторно обращаться к любому элементу.
Ответ:
Операция выбора максимального элемента и его обмена выполняется \(N-1\) раз, потому что после \(N-1\) обменов \(N-1\) элементов будут гарантированно находиться на своих отсортированных позициях. Последний (N-й) элемент массива автоматически окажется на своей правильной позиции (например, минимальным, если сортировка по возрастанию), и для него уже не нужно проводить отдельный поиск и обмен.
Обработка последовательности (Экономия памяти)
Программа использует аккумулятор для суммы (\(s\)) и счетчик для количества (\(N=7\)). Каждая введенная температура сразу добавляется к сумме.
s = 0
N = 7
for i in range(N):
temp = int(input(f'Введите температуру за день {i+1}: '))
s = s + temp
avg = s / N
print(f'Средняя температура за неделю: {avg:.2f}')
Обработка массива (Сохранение данных)
Программа сначала считывает все температуры в массив, а затем вычисляет сумму и среднее арифметическое.
N = 7
temps = [0] * N
for i in range(N):
temps[i] = int(input(f'Введите температуру за день {i+1}: '))
s = 0
for temp in temps:
s = s + temp
avg = s / N
print(f'Средняя температура за неделю: {avg:.2f}')
Предположим, массив \(A\) из \(10\) случайных чисел уже заполнен.
A = [randint(1, 20) for _ in range(10)] # Пример заполнения
k_even = 0 # Счетчик четных
s_odd = 0 # Сумма нечетных
max_val = A[0]
k_max = 0 # Счетчик максимальных
for x in A:
# a) Подсчет четных
if x % 2 == 0:
k_even = k_even + 1
# б) Сумма нечетных
else:
s_odd = s_odd + x
# в) Нахождение количества максимальных
if x > max_val:
max_val = x # Обновляем максимальное значение
k_max = 1 # Начинаем счет заново
elif x == max_val:
k_max = k_max + 1 # Увеличиваем счетчик
print(f'Количество четных: {k_even}')
print(f'Сумма нечетных: {s_odd}')
print(f'Количество максимальных ({max_val}): {k_max}')
Программа использует массив-счетчик (например, \(count\)) для каждой оценки, чтобы избежать множества условных операторов \(if\).
from random import randint
N_students = 20
# Индексы 0, 1, 2, 3, 4, 5. Используем 2, 3, 5
count = [0] * 6
for _ in range(N_students):
# Генерируем оценки от 2 до 5
mark = randint(2, 5)
if mark in [2, 3, 5]:
count[mark] = count[mark] + 1
print(f'Количество двоек (2): {count[2]}')
print(f'Количество троек (3): {count[3]}')
print(f'Количество пятерок (5): {count[5]}')
Программа использует обработку последовательности, поскольку нет необходимости хранить рост всех кандидатов. Используется переменная-счетчик \(k\) и генерируются случайные числа.
from random import randint
N = 50 # Общее число претендентов
MIN_HEIGHT = 170 # Минимальный требуемый рост в см
k_suitable = 0 # Счетчик подходящих кандидатов
for i in range(N):
height = randint(150, 200) # Генерация случайного роста
if height >= MIN_HEIGHT:
k_suitable = k_suitable + 1
print(f'Общее количество претендентов: {N}')
print(f'Количество подходящих кандидатов: {k_suitable}')
Площадь треугольника: \(S = \frac{1}{2} A[i] B[i]\).
N = 10
# A и B заполнены (например, случайными длинами)
max_area = 0
max_triangles = [] # Список для номеров треугольников с максимальной площадью
for i in range(N):
# Номер треугольника i+1, т.к. индексация с 0
current_area = 0.5 * A[i] * B[i]
if current_area > max_area:
max_area = current_area
max_triangles = [i + 1] # Начинаем новый список
elif current_area == max_area:
max_triangles.append(i + 1) # Добавляем номер треугольника
print(f'Максимальная площадь: {max_area}')
for num in max_triangles:
i = num - 1
print(f'Треугольник №{num}: катеты A[{i}]={A[i]}, B[{i}]={B[i]}, Площадь={max_area}')
Необходимо сначала вычислить плотность для каждой страны, а затем отсортировать страны по этому показателю. Для простоты, можно использовать один массив кортежей/объектов.
countries = [
{'name': 'РФ', 'K': 146, 'S': 1710},
{'name': 'КНР', 'K': 1444, 'S': 960},
# ... добавить еще 8 стран ...
]
# 1. Вычисление плотности и создание списка пар (Плотность, Название)
density_list = []
for country in countries:
P = country['K'] / country['S']
density_list.append((P, country['name']))
# 2. Сортировка по плотности (первый элемент кортежа)
density_list.sort()
# 3. Вывод названий стран в порядке возрастания плотности
print('Страны по возрастанию плотности населения:')
for P, name in density_list:
print(f'{name} (Плотность: {P:.2f} чел./кв.км)')
Стек (Stack): Структура данных типа LIFO (Last-In, First-Out) — последний добавленный элемент будет первым извлечен. В Python список может работать как стек, используя:
Очередь (Queue): Структура данных типа FIFO (First-In, First-Out) — первый добавленный элемент будет первым извлечен. В Python список может работать как очередь, используя:
Задали создать проект?
Создай с помощью ИИ за 5 минут
Список готовых проектов к текущему параграфу.
ВНИМАНИЕ: Представленные фрагменты из учебных материалов используются исключительно в научно-образовательных целях в объеме, оправданном поставленной целью.
Данное использование осуществляется в рамках, установленных законодательством об авторском праве (в частности, нормами о свободном использовании произведения для образовательных целей).
В соответствии с законодательством, автор и источник заимствования указаны для каждого используемого фрагмента.