Содержание
- 2. Программирование на языке Python § 62. Массивы
- 3. Что такое массив? Массив – это группа переменных одного типа, расположенных в памяти рядом (в соседних
- 4. Что такое массив? A массив 2 15 НОМЕР элемента массива (ИНДЕКС) A[0] A[1] A[2] A[3] A[4]
- 5. Массивы в Python: списки A = [1, 3, 4, 23, 5] A = [1, 3] +
- 6. Генераторы списков A =[ i for i in range(10) ] [0, 1, 2, 3, 4, 5,
- 7. Добавление элементов A = [1, 2, 3] x = 5 A.append ( x+3 ) # [1,
- 8. Удаление элементов A = [1, 2, 3] x = A.pop ( 1 ) # x =
- 9. Ввод массива с клавиатуры Создание массива: Ввод с клавиатуры: N = 10 A = [0]*N for
- 10. Ввод массива с клавиатуры Ввод без подсказок: Ввод в одной строке: A = [ int(input()) for
- 11. Вывод массива на экран Как список: print ( A ) [1, 2, 3, 4, 5] В
- 12. Как обработать все элементы массива? Создание массива: Обработка: N = 5 A = [0]*N # обработать
- 13. Как обработать все элементы массива? Обработка с переменной: i = 0 # обработать A[i] i +=
- 14. Заполнение случайными числами from random import randint N = 10 A = [ randint(20,100) for x
- 15. Перебор элементов Общая схема (можно изменять A[i]): for i in range(N): ... # сделать что-то с
- 16. Подсчёт количества нужных элементов Задача. В массиве записаны данные о росте баскетболистов. Сколько из них имеет
- 17. Сумма элементов массива summa = 0 for x in A: if 180 summa += x print
- 18. Перебор элементов Среднее арифметическое: count = 0 summa = 0 for x in A: if 180
- 19. Задачи «A»: Заполните массив случайными числами в интервале [0,100] и найдите среднее арифметическое его значений. Пример:
- 20. Задачи «C»: Заполните массив из N элементов случайными числами в интервале [1,N] так, чтобы в массив
- 21. Программирование на языке Python § 63. Алгоритмы обработки массивов
- 22. Поиск в массиве Найти элемент, равный X: i = 0 while A[i] != X: i +=
- 23. Поиск в массиве nX = -1 for i in range ( N ): if A[i] ==
- 24. for i in range ( N ): if A[i] == X: print ( f"A[{i}]={X}" ) break
- 25. Задачи «A»: Заполните массив случайными числами в интервале [0,5]. Введите число X и найдите все значения,
- 26. Задачи «B»: Заполните массив случайными числами в интервале [0,5]. Определить, есть ли в нем элементы с
- 27. Задачи «C»: Заполните массив случайными числами. Определить, есть ли в нем элементы с одинаковыми значениями, не
- 28. Максимальный элемент M = A[0] for i in range(1,N): if A[i] > M: M = A[i]
- 29. Максимальный элемент и его номер
- 30. Максимальный элемент и его номер M = max(A) nMax = A.index(M) print ( f"A[{nMax}]={M}" ) Вариант
- 31. Задачи «A»: Заполнить массив случайными числами и найти минимальный и максимальный элементы массива и их номера.
- 32. Задачи «C»: Введите массив с клавиатуры и найдите (за один проход) количество элементов, имеющих максимальное значение.
- 33. Реверс массива «Простое» решение: for i in range( N ): поменять местами A[i] и A[N-1-i] N//2
- 34. Реверс массива for i in range(N//2): c = A[i] A[i] = A[N-1-i] A[N-1-i] = c Варианты
- 35. Циклический сдвиг элементов «Простое» решение: c = A[0] for i in range(N-1): A[i] = A[i+1] A[N-1]
- 36. Срезы в Python A[1:3] [12, 5] A[2:3] [5] A[:3] [7, 12, 5] A[0:3] с начала A[3:N-2]
- 37. Срезы в Python – отрицательные индексы A[1:-1] [12,5,8,…,18,34,40] A[1:N-1] A[-4:-2] [18, 34] A[N-4:N-2]
- 38. Срезы в Python – шаг A[1:6:2] [12, 8, 18] A[::3] [7, 8, 34] A[8:2:-2] [23, 34,
- 39. Задачи «A»: Заполнить массив случайными числами и выполнить циклический сдвиг элементов массива вправо на 1 элемент.
- 40. Задачи «C»: Заполнить массив случайными числами в интервале [-100,100] и переставить элементы так, чтобы все положительные
- 41. Отбор нужных элементов Простое решение: Задача. Отобрать элементы массива A, удовлетворяющие некоторому условию, в массив B.
- 42. Отбор нужных элементов Решение в стиле Python: Задача. Отобрать элементы массива A, удовлетворяющие некоторому условию, в
- 43. Особенности работы со списками A = [1, 2, 3] B = A [1, 2, 3] A
- 44. Копирование списков «Поверхностное» копирование: import copy A = [1, 2, 3] B = copy.copy(A) A =
- 45. Задачи «A»: Заполнить массив случайными числами в интервале [-10,10] и отобрать в другой массив все чётные
- 46. Задачи «C»: Заполнить массив случайными числами и отобрать в другой массив все числа Фибоначчи. Используйте логическую
- 47. Программирование на языке Python § 64. Сортировка
- 48. Что такое сортировка? Сортировка – это расстановка элементов массива в заданном порядке. …по возрастанию, убыванию, последней
- 49. Метод пузырька (сортировка обменами) Идея: пузырек воздуха в стакане воды поднимается со дна вверх. Для массивов
- 50. Метод пузырька 2-й проход: 3-й проход: 4-й проход:
- 51. Метод пузырька 1-й проход: сделать для j от N-2 до 0 шаг -1 если A[j+1] #
- 52. Метод пузырька 1-й проход: for j in range(N-2, -1 ,-1): if A[j+1] # поменять местами A[j]
- 53. Метод пузырька for i in range(N-1): for j in range(N-2, i-1 ,-1): if A[j+1] A[j], A[j+1]
- 54. Задачи «A»: Напишите программу, в которой сортировка выполняется «методом камня» – самый «тяжёлый» элемент опускается в
- 55. Метод выбора (минимального элемента) Идея: найти минимальный элемент и поставить его на первое место. for i
- 56. Метод выбора (минимального элемента) for i in range(N-1): if i!= nMin: A[i], A[nMin] = A[nMin], A[i]
- 57. Метод вставок (insertion sort) Идея: освобождаем место для нового элемента, сдвигая те, которые должны стоять после
- 58. Метод вставок (insertion sort) Идея: освобождаем место для нового элемента, сдвигая те, которые должны стоять после
- 59. Задачи «A»: Массив содержит четное количество элементов. Напишите программу, которая сортирует первую половину массива по возрастанию,
- 60. Задачи «B»: Напишите программу, которая сортирует массив и находит количество различных чисел в нем. Пример: Массив:
- 61. Сортировка слиянием Слияние отсортированных массивов: A B С Na = len(A); Nb = len(B) iA =
- 62. Сортировка слиянием def mergeSort( A ): if len(A) mid = len(A) // 2 L = A[:mid]
- 63. Сортировка слиянием def merge( A, B ): Na = len(A); Nb = len(B) iA = iB
- 64. Сортировка слиянием задача разбивается на несколько подзадач меньшего размера; эти подзадачи решаются с помощью рекурсивных вызовов
- 65. Быстрая сортировка (QuickSort) разделение Медиана – такое значение X, что слева и справа от него в
- 66. Быстрая сортировка (QuickSort) B1: B2: > X BX: = X import random def qSort ( A
- 67. Сравнение алгоритмов сортировки
- 68. Быстрая сортировка «на месте» Шаг 2: переставить элементы так: при сортировке элементы не покидают « свою
- 69. Быстрая сортировка Разделение: выбрать любой элемент массива (X=67) установить L = 0, R = N-1 увеличивая
- 70. Быстрая сортировка
- 71. Быстрая сортировка N = 7 A = [0]*N # заполнить массив qSort( A, 0, N-1 )
- 72. Быстрая сортировка def qSort ( A, nStart, nEnd ): if nStart >= nEnd: return L =
- 73. Быстрая сортировка Случайный выбор элемента-разделителя: from random import randint def qSort ( A, nStart, nEnd ):
- 74. Сортировка в Python B = sorted( A ) алгоритм Timsort По возрастанию: B = sorted( A,
- 75. Сортировка в Python – на месте A.sort() По возрастанию: A.sort ( reverse = True ) По
- 76. Задачи «A»: Массив содержит четное количество элементов. Напишите программу, которая сортирует по возрастанию отдельно элементы первой
- 77. Задачи «B»: Напишите программу, которая сортирует массив и находит количество различных чисел в нем. Используйте алгоритм
- 78. Задачи «C»: Напишите программу, которая сравнивает число перестановок элементов при использовании сортировки «пузырьком», методом выбора и
- 79. Программирование на языке Python § 65. Двоичный поиск
- 80. Двоичный поиск X = 7 X 8 4 X > 4 6 X > 6 Выбрать
- 81. Двоичный поиск X = 44
- 82. Двоичный поиск L = 0; R = N # начальный отрезок while L c = (L+R)
- 83. Двоичный поиск скорость выше, чем при линейном поиске нужна предварительная сортировка Число сравнений:
- 84. Задачи «A»: Заполнить массив случайными числами и отсортировать его. Ввести число X. Используя двоичный поиск, определить,
- 85. Задачи «B»: Заполнить массив случайными числами и отсортировать его. Ввести число X. Используя двоичный поиск, определить,
- 86. Задачи «C»: Заполнить массив случайными числами и ввести число и отсортировать его. Ввести число X. Используя
- 87. Программирование на языке Python § 66. Символьные строки
- 88. Символьные строки Начальное значение: Вывод на экран: print ( s ) s = "Привет!" Длина строки:
- 89. Символьные строки Ввод с клавиатуры: s = input ( "Введите имя: " ) Изменение строки: s[4]
- 90. Символьные строки s = input( "Введите строку:" ) s1 = "" # строка-результат for c in
- 91. Задачи «A»: Ввести с клавиатуры символьную строку и заменить в ней все буквы «а» на «б»
- 92. Задачи «B»: Ввести с клавиатуры символьную строку и определить, сколько в ней слов. Словом считается последовательности
- 93. Задачи «C»: Ввести с клавиатуры символьную строку и найдите самое длинное слово и его длину. Словом
- 94. Сравнение строк print( "Введите 2 строки:" ) s1 = input() s2 = input() if s1 ==
- 95. Сравнение строк 5STEAM steam
- 96. Операции со строками Объединение (конкатенация) : s1 = "Привет" s2 = "Вася" s = s1 +
- 97. Операции со строками Срезы: s = "0123456789" s1 = s[:8] # "01234567" от начала строки s
- 98. Операции со строками Срезы с отрицательными индексами: s = "0123456789" s1 = s[:-2] # "01234567" N-2
- 99. Удаление и вставка символов Вставка: s = "0123456789" s1 = s[:3] + "ABC" + s[3:] Удаление:
- 100. Стандартные функции Верхний/нижний регистр: s = "aAbBcC" s1 = s.upper() # "AABBCC" s2 = s.lower() #
- 101. Поиск в строках s = "Здесь был Вася." n = s.find ( "с" ) # n
- 102. Пример обработки строк Задача: Ввести имя, отчество и фамилию. Преобразовать их к формату «фамилия-инициалы». Пример: Введите
- 103. Пример обработки строк print ( "Введите имя, отчество и фамилию:" ) s = input() n =
- 104. Пример обработки строк print ( "Введите имя, отчество и фамилию:" ) s = input() fio =
- 105. Задачи «A»: Ввести с клавиатуры в одну строку фамилию, имя и отчество, разделив их пробелом. Вывести
- 106. Задачи «B»: Ввести адрес файла и «разобрать» его на части, разделенные знаком "/". Каждую часть вывести
- 107. Задачи «C»: Напишите программу, которая заменяет во всей строке одну последовательность символов на другую. Пример: Введите
- 108. Преобразования «строка» – «число» Из строки в число: s = "123" N = int ( s
- 109. Задачи «A»: Напишите программу, которая вычисляет сумму трех чисел, введенную в форме символьной строки. Все числа
- 110. Задачи «C»: Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков (допускаются знаки
- 111. Задачи «D»: Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков (допускаются знаки
- 112. Строки в процедурах и функциях Задача: построить функцию, которая возвращает первое слово в предложении. def firstWord(
- 113. Замена подстроки Задача: построить функцию, которая заменяет в строке s все вхождения слова-образца wOld на слово-замену
- 114. Замена всех экземпляров подстроки
- 115. Замена всех экземпляров подстроки s = "12.12.12" s = replaceAll ( s, "12", "A12B" ) print(
- 116. Замена всех экземпляров подстроки def replaceAll ( s, wOld, wNew ): lenOld = len(wOld) res =
- 117. Замена всех экземпляров подстроки s = "12.12.12" s = s.replace( "12", "A12B" ) print ( s
- 118. Задачи «A»: Напишите функцию, которая отсекает всю часть строки после первого слова. Пример: Введите строку: Однажды
- 119. Задачи «B»: Напишите функцию, которая заменяет расширение файла на заданное новое расширение. Пример: Введите имя файла:
- 120. Задачи «C»: Напишите функцию, которая заменяет во всей строке все римские числа на соответствующие десятичные числа.
- 121. Рекурсивный перебор Задача. В алфавите языка племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч» и «О». Нужно
- 122. Рекурсивный перебор перебор L символов w[0]="Ы" # перебор последних L-1 символов w[0]="Ш" # перебор последних L-1
- 123. Рекурсивный перебор # основная программа TumbaWords ( "ЫШЧО", "", 3 ) def TumbaWords ( A, w,
- 124. Рекурсивный перебор + счётчик TumbaWords ( "ЫШЧО", "", 3 ) print( count ) def TumbaWords (
- 125. Рекурсивный перебор + условие TumbaWords ( "ЫШЧО", "", 3 ) print( count ) def TumbaWords (
- 126. Рекурсивный перебор + условие (функция) def TumbaWords ( A, w, L ): global count if len(w)
- 127. Задачи «A»: В алфавите языке племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч» и «О». Нужно вывести
- 128. Задачи «C»: В алфавите языке племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч» и «О». Нужно вывести
- 129. Сортировка строк aS = [] # пустой список строк print ( "Введите строки для сортировки:" )
- 130. Задачи «A»: Вводится 5 строк, в которых сначала записан порядковый номер строки с точкой, а затем
- 131. Задачи «B»: Вводится несколько строк (не более 20), в которых сначала записан порядковый номер строки с
- 132. Задачи «C»: Вводится несколько строк (не более 20), в которых сначала записаны инициалы и фамилии работников
- 133. Программирование на языке Python § 67. Матрицы
- 134. Что такое матрица? Матрица — это прямоугольная таблица, составленная из элементов одного типа (чисел, строк и
- 135. Создание матриц A = [[-1, 0, 1], [-1, 0, 1], [0, 1, -1]] перенос на другую
- 136. Создание матриц N = 3 M = 2 row = [0]*M A = [row]*N Нулевая матрица:
- 137. Ввод матрицы с клавиатуры 3 4 1 2 3 4 5 6 7 8 9 10
- 138. Вывод матриц print ( A ) [[1, 12, 3], [4, 5, 146], [7, 118, 99]] def
- 139. Простые алгоритмы Заполнение случайными числами: import random for i in range(N): for j in range(M): A[i][j]
- 140. Задачи «A»: Напишите программу, которая заполняет квадратную матрицу случайными числами в интервале [10,99], и находит максимальный
- 141. Задачи «B»: Яркости пикселей рисунка закодированы числами от 0 до 255 в виде матрицы. Преобразовать рисунок
- 142. Задачи «С»: Заполните матрицу, содержащую N строк и M столбцов, натуральными числами по спирали и змейкой,
- 143. Перебор элементов матрицы Главная диагональ: for i in range(N): # работаем с A[i][i] Побочная диагональ: for
- 144. Перестановка строк и столбцов 2-я и 4-я строки: A[2], A[4] = A[4], A[2] 2-й и 4-й
- 145. Выделение строк и столбцов 1-я строка: R = A[1][:] 2-й столбец: C = [] for row
- 146. Задачи «A»: Напишите программу, которая заполняет квадратную матрицу случайными числами в интервале [10,99], а затем записывает
- 147. Задачи «B»: Пиксели рисунка закодированы числами (обозначающими цвет) в виде матрицы, содержащей N строк и M
- 148. Программирование на языке Python § 68. Работа с файлами
- 149. Какие бывают файлы? файлы текстовые двоичные «plain text»: для чтения человеком текст, разбитый на строки; из
- 150. Принцип сэндвича хлеб хлеб начинка Fin = open ( "input.txt" ) Fout = open ( "output.txt",
- 151. Ввод данных Fin = open( "input.txt" ) s = Fin.readline() # "1 2" Чтение строки: Чтение
- 152. Вывод данных в файл a = 1 b = 2 Fout = open( "output.txt", "w" )
- 153. Чтение неизвестного количества данных пока не конец файла прочитать число из файла добавить его к сумме
- 154. Чтение неизвестного количества данных Задача. В файле записано в столбик неизвестное количество чисел. Найти их сумму.
- 155. Чтение неизвестного количества данных Задача. В файле записано в столбик неизвестное количество чисел. Найти их сумму.
- 156. Задачи «A»: Напишите программу, которая находит среднее арифметическое всех чисел, записанных в файле в столбик, и
- 157. Обработка массивов Задача. В файле записаны в столбик целые числа. Вывести в другой текстовый файл те
- 158. Обработка массивов Ввод массива: A = [] while True: s = Fin.readline() if not s: break
- 159. Обработка массивов Вывод результата: Fout = open ( "output.txt", "w" ) Fout.write ( str(A) ) Fout.close()
- 160. Задачи «A»: В файле в столбик записаны числа. Отсортировать их по возрастанию последней цифры и записать
- 161. Обработка строк Задача. В файле записано данные о собаках: в каждой строчке кличка собаки, ее возраст
- 162. Чтение данных из файла Чтение одной строки: s = Fin.readline() Разбивка по пробелам: data = s.split()
- 163. Обработка строк Fin = open ( "input.txt" ) Fout = open ( "output.txt", "w" ) while
- 164. Обработка строк lst = Fin.readlines() for s in lst: age = int ( s.split()[1] ) if
- 165. Задачи «A»: В файле записаны данные о результатах сдачи экзамена. Каждая строка содержит фамилию, имя и
- 166. Задачи «C»: В файле записаны данные о результатах сдачи экзамена. Каждая строка содержит фамилию, имя и
- 167. Конец фильма ПОЛЯКОВ Константин Юрьевич д.т.н., учитель информатики ГБОУ СОШ № 163, г. Санкт-Петербург kpolyakov@mail.ru ЕРЕМИН
- 169. Скачать презентацию