62. Массивы 63. Алгоритмы обработки массивов
Скачать 1.09 Mb.
|
Поиск в массиве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 ( "Не нашли!" ) Задачи«A»: Заполните массив случайными числами в интервале [0,5]. Введите число X и найдите все значения, равные X. Пример: Массив: 1 2 3 1 2 Что ищем: 2 Нашли: A[2]=2, A[5]=2 Пример: Массив: 1 2 3 1 2 Что ищем: 6 Ничего не нашли. Задачи«B»: Заполните массив случайными числами в интервале [0,5]. Определить, есть ли в нем элементы с одинаковыми значениями, стоящие рядом. Пример: Массив: 1 2 3 3 2 1 Есть: 3 Пример: Массив: 1 2 3 4 2 1 Нет Задачи«C»: Заполните массив случайными числами. Определить, есть ли в нем элементы с одинаковыми значениями, не обязательно стоящие рядом. Пример: Массив: 3 2 1 3 2 5 Есть: 3, 2 Пример: Массив: 3 2 1 4 0 5 Нет Максимальный элемент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 Что можно улучшить? ? По номеру элемента можно найти значение! ! M = max(A) nMax = A.index(M) print ( "A[", nMax, "]=", M, sep = "" ) Вариант в стиле Python: номер заданного элемента (первого из…) Задачи«A»: Заполнить массив случайными числами и найти минимальный и максимальный элементы массива и их номера. Пример: Массив: 1 2 3 4 5 Минимальный элемент: A[1]=1 Максимальный элемент: A[5]=5 «B»: Заполнить массив случайными числами и найти два максимальных элемента массива и их номера. Пример: Массив: 5 5 3 4 1 Максимальный элемент: A[1]=5 Второй максимум: A[2]=5 Задачи«C»: Введите массив с клавиатуры и найдите (за один проход) количество элементов, имеющих максимальное значение. Пример: Массив: 3 4 5 5 3 4 5 Максимальное значение 5 Количество элементов 3 Реверс массива
«Простое» решение: for i in range( N ): поменять местами A[i] и A[N-1-i] N//2 Что плохо? ? остановиться на середине! |