Файл: 17. Введение 18. Линейные программы 19. Ветвления 20. Программирование циклических алгоритмов.ppt
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.01.2024
Просмотров: 1699
Скачиваний: 2
СОДЕРЖАНИЕ
Направления в программировании
Вывод данных с текстом (f-строки)
Ввод двух чисел в одной строке
Выбор наибольшего из двух чисел
Выбор наибольшего из двух чисел-2
Задачи (без функций min и max!)
Хорошее решение (операция «И»)
Программирование экспертной системы
Модифицированный алгоритм Евклида
Задачи на циклы (дополнительные)
Вывод массива на экран (Python)
Сумма элементов массива (Python)
Подсчёт элементов по условию (Python)
Среднее арифметическое (Python)
Перестановка элементов массива
Перестановка элементов массива
Как поменять местами значения двух переменных a и b? ?с = aa = bb = c вспомогательная переменная элементы массива:с = A[i]A[i] = A[k]A[k] = c Задача. Массив A содержит чётное количество элементов N. Нужно поменять местами пары соседних элементов: 0-й с 1-м, 2-й — с 3-м и т. д.| 0 | 1 | 2 | 3 | N-2 | N-1 | |
| 7 | 12 | 38 | 5 | … | 40 | 23 |
| 0 | 1 | 2 | 3 | N-2 | N-1 | |
| 12 | 7 | 5 | 38 | … | 23 | 40 |
| 0 | 1 | 2 | 3 | 4 | 5 |
| 7 | 12 | 38 | 5 | 40 | 23 |
| 12 | 7 | 38 | 5 | 40 | 23 |
| 12 | 38 | 7 | 5 | 40 | 23 |
| 12 | 38 | 5 | 7 | 40 | 23 |
| 12 | 38 | 5 | 40 | 7 | 23 |
| 12 | 38 | 5 | 40 | 23 | 7 |
Реверс массива
| 0 | 1 | 2 | N-3 | N-2 | N-1 | |
| 7 | 12 | 5 | … | 38 | 40 | 23 |
| 0 | 1 | 2 | N-3 | N-2 | N-1 | |
| 23 | 40 | 38 | … | 5 | 12 | 7 |
Реверс массива
for i in range(N): поменять местами A[i] и A[N-1-i] Что плохо? ?| 0 | 1 | 2 | 3 |
| 7 | 12 | 40 | 23 |
| 23 | 12 | 40 | 7 |
| 23 | 40 | 12 | 7 |
| 23 | 12 | 40 | 7 |
| 7 | 12 | 40 | 23 |
Задачи
«A»: Заполнить массив из 10 элементов случайными числами в диапазоне [0; 100], поменять местами пары соседних элементов, не трогая первый и последний элементы. Массив: 53 66 88 39 26 88 35 24 38 50 Результат: 53 88 66 26 39 35 88 38 24 50 «B»: Заполнить массив из 10 элементов случайными числами в диапазоне [0; 100] и выполнить циклический сдвиг влево: каждый элемент перемещается на место предыдущего, а первый – на место последнего. Массив: 53 66 88 39 26 88 35 24 38 50 Результат: 66 88 39 26 88 35 24 38 50 53Задачи
«C»: Заполнить массив из 10 элементов случайными числами в диапазоне [0; 100], сделать реверс отдельно в первой и во второй половине массива. Массив: 53 66 88 39 26 88 35 24 38 50 Результат: 26 39 88 66 53 50 38 24 35 88 Какие переменные нужны? ?for i in range(N): if A[i] > M: M = A[i]print( M ) Чего не хватает? ? Какое начальное значение взять для M?
?
M – значение, которое заведомо меньше всех элементов массива или
M = A[0] (или любой другой элемент)
максимальный не меньше, чем A[0]
M = A[0]
for i in range(1,N):
if A[i] > M:
M = A[i]
print( M )
начинаем с A[1], так как A[0] мы уже посмотрели
Как найти минимальный?
?
Поиск максимального элемента (Python)
M = A[0]for x in A: if x > M: M = xprint( M ) перебрать все элементы в массиве Afor x in A: Не нужно знать размер! !print( max(A) )print( min(A) ) Задача. Найти в массиве максимальный элемент и его номер. Какие переменные нужны? ?M = A[0]; nMax = 0for i in range(1,N): if A[i] > M: M = A[i] nMax = i print( "A[", nMax, "]=", M )nMax = 0nMax = i Можно ли убрать одну переменную? ? M = A[0]; nMax = 0for i in range(1,N): if A[i]> M : M = A[i] nMax = iprint( "A[", nMax, "]=", M ) Если знаем nMax, то M=A[nMax]! !: A[nMax])A[nMax]Задачи (без min и max)
«A»: Напишите программу, которая заполняет массив из 20 элементов случайными числами на отрезке [50; 150] и находит в нём минимальный и максимальный элементы и их номера.- «B»: Напишите программу, которая заполняет массив из 10 элементов в виде
A = [ 10, 2, 3, 4, 10, 6, 7, 8, 9, 10]
и и выводит количество элементов, имеющих максимальное значение.
«C»: Напишите программу, которая заполняет массив из 20 элементов случайными числами на отрезке [100; 200] и находит в нём пару соседних элементов, сумма которых минимальна.
Задачи
- «D»: Напишите программу, которая заполняет массив из 20 элементов случайными числами на отрезке [–100; 100] и находит в каждой половине массива пару соседних элементов, сумма которых максимальна.
Конец фильма
ПОЛЯКОВ Константин Юрьевич д.т.н., учитель информатики ГБОУ СОШ № 163, г. Санкт-Петербург kpolyakov@mail.ru ЕРЕМИН Евгений Александрович к.ф.-м.н., доцент кафедры мультимедийной дидактики и ИТО ПГГПУ, г. Пермь eremin@pspu.ac.ruИсточники иллюстраций
иллюстрации художников издательства «Бином» авторские материалы