Файл: Алгоритм и его свойства Простейшие программы Вычисления Ветвления Символьные строки Циклические алгоритмы Массивы (списки) Поиск в массиве Алгоритм и его свойства Что такое алгоритм.pptx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 30.11.2023
Просмотров: 271
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Координатное поле окна для рисования
Как организовать цикл (36 повторений)?
Как записать значение в переменную?
Сложение чисел: простое решение
Сложение чисел: полное решение
Ввод двух значений в одной строке
Линейный конгруэнтный генератор
Условный оператор: неполная форма
A
x
summa
4
3
6
8
1
0
4
10
18
Среднее арифметическое
count = 0
summa = 0
for x in A:
if x % 10 == 5:
count += 1
summa += x
print ( summa/count )
среднее арифметическое
или так:
B = [ x for x in A ]
if x % 10 == 5]
print ( sum(B)/len(B) )
отбираем нужные
Как определить, что оканчивается на 5?
?
Задача. Найти среднее арифметическое элементов массива, которые оканчиваются на цифру 5.
Задачи
«3»: Введите массив из 5 элементов с клавиатуры и найдите среднее арифметическое его значений.
Пример:
Массив:
1 2 3 4 5
Среднее арифметическое 3.000
«4»: Заполните массив из 10 элементов случайными числами в интервале [0,100] и подсчитайте отдельно среднее значение всех элементов, которые <50, и среднее значение всех элементов, которые ≥50.
Пример:
Массив:
3 2 52 4 60 50 1 2 60 58 6
Ср. арифм. элементов < 50: 3.000
Ср. арифм. элементов >=50: 56.000
Задачи
«5»: Введите размер массива N и заполните массив из N элементов числами Фибоначчи. Первые два числа Фибоначчи равны 1, а каждое следующее равно сумме двух предыдущих.
Пример:
Введите размер массива:
6
Числа Фибоначчи:
1 1 2 3 5 8
Поиск в массиве
Поиск в массиве
Найти элемент, равный X:
i = 0
while A[i] != X:
i += 1
print ( "A[", i, "]=", X, sep = "" )
Что плохо?
?
i = 0
while i < N and A[i] != X:
i += 1
if i < N:
print ( "A[", i, "]=", X, sep = "" )
else:
print ( "Не нашли!" )
Что если такого нет?
?
i < N
Поиск в массиве
nX = -1
for i in range ( N ):
if A[i] == X:
nX = i
break
if nX >= 0:
print ( "A[", nX, "]=", X, sep = "" )
else:
print ( "Не нашли!" )
Вариант с досрочным выходом:
break
досрочный выход из цикла
номер найденного элемента
Поиск в массиве
for i in range ( N ):
if A[i] == X:
print ( "A[", i, "]=", X, sep = "" )
break
else:
print ( "Не нашли!" )
Варианты в стиле Python:
если не было досрочного выхода из цикла
if X in A:
nX = A.index(X)
print ( "A[", nX, "]=", X, sep = "" )
else:
print ( "Не нашли!" )
Задачи
«3»: Заполните массив из 10 элементов случайными числами в диапазоне [100,200]. Найдите первое число в массиве, у которого последняя цифра – 2. Если такого числа нет, вывести ответ «Не нашли».
Пример:
Массив:
131 180 117 170 162 111 109 155 159 137
Нашли: A[4]=162
Пример:
Массив:
131 180 117 170 163 111 109 155 159 137
Не нашли.
Задачи
«4»: Заполните массив из 10 элементов случайными числами в интервале [0,5]. Введите число X и найдите все значения, равные X.
Пример:
Массив:
1 2 3 1 2 4 2 5 1 3
Что ищем:
2
A[2]=2
A[5]=2
Пример:
Массив:
1 2 3 1 2 4 2 5 1 3
Что ищем:
6
Не нашли.
Задачи
«5»: Заполните массив из 10 элементов случайными числами в интервале [0,5]. Найдите пару одинаковых элементов, стоящих рядом.
Пример:
Массив:
1 2 3 3 4 1 5 1 3 2
A[2]=A[3]=3
Пример:
Массив:
1 2 3 4 2 1 5 1 2 3
Нет.
Максимальный элемент
Задача: найти в массиве максимальный элемент.
Алгоритм:
Решение:
- считаем, что первый элемент – максимальный
- просмотреть остальные элементы массива: если очередной элемент > M, то записать A[i] в M
- вывести значение M
Максимальный элемент
M = A[0]
for i in range(1,N):
if A[i] > M:
M = A[i]
print ( M )
M = A[0]
for x in A:
if x > M:
M = x
Как найти его номер?
?
Варианты в стиле Python:
M = max ( A )
Если range(N)?
?
M = A[0]; nMax = 0
for i in range(1,N):
if A[i] > M:
M = A[i]
nMax = i
print ( "A[", nMax, "]=", M, sep = "" )
nMax = 0
nMax = i
Что можно улучшить?
?
По номеру элемента можно найти значение!
!
nMax = 0
for i in range(1,N):
if A[i] > A[nMax]:
nMax = i
print ( "A[", nMax, "]=", A[nMax], sep = "" )
A[nMax]
A[nMax]
M = max(A)
nMax = A.index(M)
print ( "A[", nMax, "]=", M, sep = "" )
Вариант в стиле Python:
номер заданного элемента (первого из…)
«3»: Заполнить массив из 10 элементов случайными числами в интервале [10,100] и найти минимальный и элемент массива и его номер.
Пример:
Массив:
39 52 84 77 45 32 19 38 49 85
Минимальный элемент: A[6]=19
«4»: Заполнить массив из 10 элементов случайными числами в интервале [10,100] и найти минимальный и максимальный элементы массива и их номера.
Пример:
Массив:
39 52 84 77 45 32 19 38 49 85
Минимальный элемент: A[6]=19
Максимальный элемент: A[9]=85
«5»: Заполнить массив из 10 элементов случайными числами в интервале [10,100] и найти минимальный и максимальный элементы из чётных элементов массива.
Пример:
Массив:
39 52 84 77 45 32 19 38 49 85
Минимальный чётный: 32
Максимальный чётный: 84
Задачи (без функции max)
«6»: Ввести с клавиатуры массив из 5 элементов и найти два максимальных элемента массива и их номера.
Пример:
Массив:
5 5 3 4 1
Максимальный элемент: A[1]=5
Второй максимум: A[2]=5
Задачи
«6»: Введите массив с клавиатуры и найдите (за один проход) количество элементов, имеющих максимальное значение.
Пример:
Массив:
3 4 5 5 3 4 5
Максимальное значение 5
Количество элементов 3
Конец фильма
ПОЛЯКОВ Константин Юрьевич
д.т.н., учитель информатики
ГБОУ СОШ № 163, г. Санкт-Петербург
kpolyakov@mail.ru