Файл: 17. Введение 18. Линейные программы 19. Ветвления 20. Программирование циклических алгоритмов.ppt

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.01.2024

Просмотров: 559

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Что такое программирование?

Направления в программировании

Простейшая программа

Вывод на экран

Переход на новую строку

Системы программирования

Системы программирования

Задачи

Пример задачи

Зачем нужны переменные?

Имена переменных

Работа с переменными

Работа с переменными

Ввод с клавиатуры

Ввод с клавиатуры

Ввод с подсказкой

Ввод вещественных чисел

Программа сложения чисел

Вывод данных с текстом

Вывод данных с текстом (f-строки)

Программа сложения чисел

Ввод двух чисел в одной строке

Задачи

Задачи

Арифметические выражения

Деление

Частное и остаток

Частное и остаток

Операторы // и %

Сокращенная запись операций

Форматный вывод

Форматный вывод

Задачи

Задачи

Форматный вывод

Форматный вывод

Научный формат чисел

Математические функции

Задачи

Задачи

Задачи

Датчик случайных чисел

Датчик случайных чисел

Задачи

Задачи

Задачи

Выбор наибольшего из двух чисел

Вариант 1. Программа

Выбор наибольшего из двух чисел-2

Вариант 2. Программа

Примеры

Примеры

Знаки отношений

Вложенные условные операторы

Каскадное ветвление

Каскадное ветвление

Задачи (без функций min и max!)

Задачи

Сложные условия

Плохое решение

Хорошее решение (операция «И»)

Примеры

Сложные условия: «ИЛИ»

Ещё пример

Сложные условия: «НЕ»

Простые и сложные условия

Сложные условия

Задачи

Задачи

Задачи

Логические переменные

Задачи

Задачи

Задачи

Экспертная система

Дерево решений

Программирование экспертной системы

Заглавные и строчные буквы

Виды ошибок

Пример отладки программы

Тестирование

Отладочная печать

Отладочная печать

Отладка программы

Задачи

Задачи

Задачи

Зачем нужен цикл?

Как работает цикл?

Ещё один вариант

Цикл с предусловием

Сколько раз выполняется цикл?

Сумма цифр числа

Сумма цифр числа

Сумма цифр числа

Сумма цифр числа

Задачи

Задачи

Алгоритм Евклида

Алгоритм Евклида

Алгоритм Евклида

Модифицированный алгоритм Евклида

Модифицированный алгоритм

В стиле Python

Задачи

Задачи

Обработка потока данных

Обработка потока данных

Задачи

Задачи на циклы (дополнительные)

Задачи

Цикл по переменной

Цикл по переменной

Цикл по переменной

Цикл по переменной

Задачи

Задачи

Что такое массив?

Создание массива

Что неверно?

Перебор элементов массива

Заполнение массива

Вывод массива на экран

Вывод массива на экран (Python)

Ввод с клавиатуры

Ввод с клавиатуры (Python)

Задачи

Задачи

Заполнение случайными числами

Задачи-2

Задачи-2

Сумма элементов массива

Сумма элементов массива (Python)

Задачи

Подсчёт элементов по условию

Подсчёт элементов по условию (Python)

Среднее арифметическое

Среднее арифметическое

Среднее арифметическое (Python)

Задачи

Перестановка элементов массива

Реверс массива

Реверс массива

Задачи

Задачи

Поиск максимального элемента (Python)

Задачи (без min и max)

Задачи

Конец фильма

Источники иллюстраций

Вывод массива на экран (Python)





print ( *A )


разбить список на элементы


print (1, 2, 3, 4, 5)


[1,2,3,4,5]


1 2 3 4 5

Ввод с клавиатуры





for i in range(N):
s = "A[" + str(i) + "]="
A[i] = int(input(s))


A[0] =
A[1] =
A[2] =
A[3] =
A[4] =


5
12
34
56
13


for i in range(N):
A[i] = int(input())


Что плохо?


?


С подсказкой для ввода:


или так:


A = [int(input()) 
for i in range(N)]

Ввод с клавиатуры (Python)





Ввод всех чисел в одной строке:


data = input() # "1 2 3 4 5"
s = data.split() #["1","2","3","4","5"]
A = [ int(x) for x in s ]
# [1,2,3,4,5]


int(x)


или так:


A = [int(x) for x in input().split()]





const N = 10;
var A: array[0..N-1] of integer;
...
for i:=0 to N-1 do
A[i] = i;
for i:=0 to N-1 do
write(A[i], ' ');


Паскаль:


объявление массива





С++:


int A[N], i;
for (i = 0; i < N; i++)
A[i] = i;
for (i = 0; i < N; i++)
cout << A[i] << " ";


Нумерация элементов всегда с нуля!


!

Задачи





«A»: а) Заполните все элементы массива из 10 элементов значением X , введённым с клавиатуры.
б) Заполните массив из 10 элементов последовательными натуральными числами, начиная с X (значение X введите с клавиатуры).


«B»: а) Заполните массив из 10 элементов натуральными числами в порядке убывания. С клавиатуры вводится значение X. Последний элемент должен быть равен X, предпоследний равен X+1 и т.д.
б) Заполните массив из 10 элементов степенями числа 2 (от 21 до 2N), так чтобы первый элемент был равен 2, следующий – 4, следующий – 8 и т.д.

Задачи





«C»: а) Заполните массив из 10 элементов степенями числа 2, начиная с конца, так чтобы последний элемент массива был равен 1, а каждый предыдущий был в 2 раза больше следующего.
б) С клавиатуры вводится целое число X. Заполните массив из 11 элементов целыми числами
, так чтобы средний элемент массива был равен X, слева от него элементы стояли по возрастанию, а справа – по убыванию. Соседние элементы отличаются на единицу. Например, при X = 3 массив из 5 элементов заполняется так: 1 2 3 2 1.

Заполнение случайными числами





from random import randint
N = 10 # размер массива
A = [0]*N # выделить память
for i in range(N):
A[i] = randint(20,100)


В краткой форме:


from random import randint
N = 10
A = [ randint(20,100)
for i in range(N) ]


из библиотеки (модуля) random


взять функцию randint





N = 10
A = [0]*N # память уже выделена


for i in range(N):
# здесь работаем с A[i]


Вывести на экран в столбик:


for i in range(N):
???


Что вместо «???»?


!


print( A[i] )


Вывести на экран в строчку:


for i in range(N):
???


print( A[i], end = " " )


print( *A )


for i in range(N):
???


for i in range(N):
???





Вывести числа, на 1 большие, чем A[i]:


Что вместо «???»?


!


print( A[i]%10 )


Вывести последние цифры:


print( A[i]+1 )





Увеличить на 1:


for i in range(N):
???


Что вместо «???»?


!


A[i] += 1


Умножить на 2:


for i in range(N):
???


A[i] *= 2


Заполнить нулями:


for i in range(N):
???


A[i] = 0


Задачи-2





«A»: Напишите программу, которая заполняет массив из 10 элементов случайными числами в диапазоне [0,10], выводит его на экран, а затем выводит на экран квадраты всех элементов массива.
Пример:
Массив: 5 6 2 3 1 4 8 7
Квадраты: 25 36 4 9 1 16 64 49


«B»: Напишите программу, которая заполняет массив из 10 элементов случайными числами в диапазоне [100,300] и выводит его на экран. После этого на экран выводятся средние цифры (число десятков) всех чисел, записанных в массив.
Пример:__Массив:_142_224_135_257_167_295_126_223_138_270___Число_десятков:_4_2_3_5_6_9_2_2_3_7___Задачи-2'>Пример:
Массив: 142 224 135 257 167 295 126 223 138 270
Число десятков: 4 2 3 5 6 9 2 2 3 7

Задачи-2





«C»: Напишите программу, которая заполняет массив из 10 элементов случайными числами в диапазоне [100,500] и выводит его на экран. После этого на экран выводятся суммы цифр всех чисел, записанных в массив.
Пример:
Массив: 162 425 340 128 278 195 326 414 312 177
Суммы цифр: 9 11 7 11 17 15 11 9 6 15


§ 21. Алгоритмы обработки массивов




Сумма элементов массива





Sum = 0
for i in range(N):
Sum = Sum + A[i]
print( Sum )


Задача. Найти сумму элементов массива из N элементов.


Какие переменные нужны?


?


i


Sum


0


5


2


8


3


1


0


5


1


7


2


15


3


18


4


19


Sum += A[i]


В стиле Python:


print( sum(A) )

Сумма элементов массива (Python)





Sum = 0
for x in A:
Sum += x
print( Sum )


Задача. Найти сумму элементов массива A.


или так:


print( sum(A) )


Не нужно знать размер!


!



for x in A:


для всех элементов из A


встроенная функция





Sum = 0
for i in range(N):
Sum += A[i]
print( Sum )


Задача. Найти сумму чётных элементов массива.


Что делаем с нечётными?


?


if A[i] % 2 == 0:
Sum += A[i]
print( Sum )


if A[i] % 2 == 0:





Sum = 0
for x in A:
Sum += x
print( Sum )


Задача. Найти сумму чётных элементов массива.


if x % 2 == 0:
Sum += x
print( Sum )


4


3


6


8


1


A


x


Sum


4


3


6


8


1


0


4


10


18


В стиле Python:


B = [x for x in A
if x % 2 == 0]
print ( sum(B) )


отбираем в новый массив все нужные значения


Задачи





«A»: Напишите программу, которая заполняет массив из 10 элементов случайными числами на отрезке [–5; 5] и находит сумму положительных элементов.


«B»: Напишите программу, которая заполняет массив из 10 элементов случайными числами на отрезке [–2; 2] и находит произведение ненулевых элементов.


«C»: Напишите программу, которая заполняет массив из 20 элементов случайными числами на отрезке [100; 1000] и находит отдельно сумму элементов в первой и во второй половинах массива.

Подсчёт элементов по условию





Задача. Найти количество чётных элементов массива.


Какие переменные нужны?


?


count = 0
for i in range(N):
if A[i] % 2 == 0:
count += 1
print( count )


Что тут делаем?


?


переменная-счётчик

Подсчёт элементов по условию (Python)





Задача. Найти количество чётных элементов массива.


count = 0
for x in A:
if x % 2 == 0:
count += 1
print( count )


В стиле Python:


B = [x for x in A
if x % 2 == 0]
print ( len(B) )


размер массива

Среднее арифметическое





Задача. Найти среднее арифметическое элементов массива, которые больше 180 (рост в см).


Sum = 0
for x in A:
if x > 180:
Sum += x
print( Sum/N )


Что плохо?


?

Среднее арифметическое





Задача. Найти среднее арифметическое элементов массива, которые больше 180 (рост в см).


Какие переменные нужны?


?


Sum = 0
count = 0
for x in A:
if x > 180:
count += 1
Sum += x
print( Sum/count )


Что тут делаем?


?

Среднее арифметическое (Python)





Задача. Найти среднее арифметическое элементов массива, которые больше 180 (рост в см).


B = [ x for x in A
if x > 180]
print ( sum(B)/len(B) )


отбираем нужные

Задачи





«A»: Напишите программу, которая заполняет массив из 20 элементов случайными числами на отрезке [0; 200] и считает число элементов, которые делятся на 10.


«B»: Напишите программу, которая заполняет массив из 20 элементов случайными числами на отрезке [0; 200] и считает число двузначных чисел в массиве.