62. Массивы 63. Алгоритмы обработки массивов
Скачать 1.09 Mb.
|
Вывод массива на экранКак список: print ( A ) [1, 2, 3, 4, 5] В строчку через пробел: for i in range(N): print ( A[i], end = " " ) 1 2 3 4 5 или так: for x in A: print ( x, end = " " ) 1 2 3 4 5 или так: print ( *A ) print (1, 2, 3, 4, 5) Заполнение случайными числамиfrom random import randint N = 10 A = [ randint(20,100) for x in range(N)] randint(20,100) случайные числа [20,100] from random import randint N = 10 A = [0]*N for i in range(N): A[i] = randint(20,100) или так: Перебор элементовОбщая схема (можно изменять A[i]): for i in range(N): ... # сделать что-то с A[i] Если не нужно изменять A[i]: for x in A: ... # сделать что-то с x for i in range(N): A[i] += 1 x = A[0], A[1], ..., A[N-1] for x in A: print ( x ) Подсчёт нужных элементовЗадача. В массиве записаны данные о росте баскетболистов. Сколько из них имеет рост больше 180 см, но меньше 190 см? count = 0 for x in A: if 180 < x and x < 190: count += 1 Как решать? ? Python: 180 < x < 190 Перебор элементовСумма: summa = 0 for x in A: if 180 < x < 190: summa += x print ( summa ) print ( sum(A) ) или так: Перебор элементовСреднее арифметическое: count = 0 summa = 0 for x in A: if 180 < x < 190: count += 1 summa += x print ( summa/count ) среднее арифметическое или так: B = [ x for x in A ] if 180 < x < 190] print ( sum(B)/len(B) ) отбираем нужные Задачи«A»: Заполните массив случайными числами в интервале [0,100] и найдите среднее арифметическое его значений. Пример: Массив: 1 2 3 4 5 Среднее арифметическое 3.000 «B»: Заполните массив случайными числами в интервале [0,100] и подсчитайте отдельно среднее значение всех элементов, которые <50, и среднее значение всех элементов, которые ≥50. Пример: Массив: 3 2 52 4 60 Ср. арифм. элементов [0,50): 3.000 Ср. арифм. элементов [50,100]: 56.000 Задачи«C»: Заполните массив из N элементов случайными числами в интервале [1,N] так, чтобы в массив обязательно вошли все числа от 1 до N (постройте случайную перестановку). Пример: Массив: 3 2 1 4 5 § 63. Алгоритмы обработки массивовПоиск в массивеНайти элемент, равный 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 досрочный выход из цикла номер найденного элемента |