Similar presentations:
Простейшие программы
1. Программирование на языке Python
1Программирование
на языке Python
§ 54. Алгоритм и его свойства
§ 55. Простейшие программы
§ 56. Вычисления
§ 57. Ветвления
§ 58. Циклические алгоритмы
§ 59. Процедуры
§ 60. Функции
§ 61. Рекурсия
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
2. Python online
2Python online
https://pythononline.kz/
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
3. Программирование на языке Python
3Программирование
на языке Python
§ 54. Алгоритм и его
свойства
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
4. Что такое алгоритм?
Алгоритмизация и программирование, язык Python, 10 класс4
Что такое алгоритм?
Алгоритм — это точное описание
порядка действий, которые должен
выполнить исполнитель для решения
задачи за конечное время.
Исполнитель – это устройство или
одушёвленное существо (человек),
способное понять и выполнить
команды, составляющие алгоритм.
Мухаммед ал-Хорезми
(ок. 783–ок. 850 гг.)
Формальные исполнители: не понимают
(и не могут понять) смысл команд.
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
5. Свойства алгоритма
Алгоритмизация и программирование, язык Python, 10 класс5
Свойства алгоритма
Дискретность — алгоритм состоит из отдельных команд,
каждая из которых выполняется за конечное время.
Детерминированность (определённость) — при каждом
запуске алгоритма с одними и теми же исходными
данными получается один и тот же результат.
Понятность — алгоритм содержит только команды,
входящие в систему команд исполнителя.
Конечность (результативность) — для корректного
набора данных алгоритм должен завершаться через
конечное время.
Корректность — для допустимых исходных данных
алгоритм должен приводить к правильному результату.
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
6. Способы записи алгоритмов
Алгоритмизация и программирование, язык Python, 10 класс6
Способы записи алгоритмов
• естественный язык
установить соединение
пока не принята команда «стоп»
принять команду
выполнить команду
завершить сеанс связи
• псевдокод
установить соединение
начало цикла
принять команду
выполнить команду
конец цикла при команда = 'stop'
завершить сеанс связи
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
7. Способы записи алгоритмов
Алгоритмизация и программирование, язык Python, 10 класс7
Способы записи алгоритмов
• блок-схема
установить
соединение
принять
команду
выполнить
команду
нет
• программа
установитьСоединение
начало цикла
cmd:= получитьКоманду
выполнитьКоманду(cmd)
конец при cmd = 'stop'
закрытьСоединение
«стоп»?
да
завершить
соединение
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
8. Программирование на языке Python
8Программирование
на языке Python
§ 55. Простейшие программы
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
9. Вывод на экран
Алгоритмизация и программирование, язык Python, 10 класс9
Вывод на экран
print ( "2+2=?" )
print ( "Ответ: 4" )
автоматический
переход на новую
строку
Протокол:
2+2=?
Ответ: 4
print ( '2+2=?' )
print ( 'Ответ: 4' )
# Это пустая программа
комментарии после #
не обрабатываются
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
10. Задания
Алгоритмизация и программирование, язык Python, 10 класс10
Задания
«B»: Вывести на экран текст «лесенкой»
Вася
пошел
гулять
«C»: Вывести на экран рисунок из букв
Ж
ЖЖЖ
ЖЖЖЖЖ
ЖЖЖЖЖЖЖ
HH HH
ZZZZZ
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
11. Сложение чисел
Алгоритмизация и программирование, язык Python, 10 класс11
Сложение чисел
Задача. Ввести с клавиатуры два числа и найти их сумму.
Протокол:
Введите два целых числа
25 30
пользователь
25+30=55
компьютер
компьютер считает сам!
? 1. Как ввести числа в память?
2. Где хранить введенные числа?
3. Как вычислить?
4. Как вывести результат?
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
12. Сумма: псевдокод
Алгоритмизация и программирование, язык Python, 10 класс12
Сумма: псевдокод
ввести два числа
вычислить их сумму
вывести сумму на экран
Псевдокод – алгоритм на
русском языке с элементами
языка программирования.
! Компьютер не может исполнить псевдокод!
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
13. Переменные
Алгоритмизация и программирование, язык Python, 10 класс13
Переменные
Переменная – это величина, имеющая имя, тип
и значение. Значение переменной можно
изменять во время работы программы.
Значение
Имя
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
14. Имена переменных
Алгоритмизация и программирование, язык Python, 10 класс14
Имена переменных
МОЖНО использовать
• латинские буквы (A-Z, a-z)
заглавные и строчные буквы различаются
• русские буквы (не рекомендуется!)
• цифры
имя не может начинаться с цифры
• знак подчеркивания _
НЕЛЬЗЯ использовать
• скобки
• знаки +, =, !, ? и др.
Какие имена правильные?
AXby R&B 4Wheel Вася “PesBarbos”
TU154 [QuQu] _ABBA A+B
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
15. Типы переменных
Алгоритмизация и программирование, язык Python, 10 класс15
Типы переменных
a=4
print ( type(a) )
<class 'int'>
a = 4.5
print ( type(a) )
<class 'float'>
a = "Вася"
print ( type(a) )
<class 'str'>
a = True
print ( type(a) )
<class 'bool'>
К.Ю. Поляков, Е.А. Ерёмин, 2014
целое число (integer)
вещественное число
символьная строка
логическая
http://kpolyakov.spb.ru
16. Зачем нужен тип переменной?
Алгоритмизация и программирование, язык Python, 10 класс16
Зачем нужен тип переменной?
Тип определяет:
• область допустимых значений
• допустимые операции
• объём памяти
• формат хранения данных
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
17. Как записать значение в переменную?
Алгоритмизация и программирование, язык Python, 10 класс17
Как записать значение в переменную?
! При записи нового значения
оператор
присваивания
a = 5
a = 7
старое удаляется из памяти!
a
5
7
Оператор – это команда языка
программирования (инструкция).
Оператор присваивания – это команда для
записи нового значения переменной.
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
18. Ввод значения с клавиатуры
Алгоритмизация и программирование, язык Python, 10 класс18
Ввод значения с клавиатуры
a
5
! 1. Программа ждет, пока пользователь введет
значение и нажмет Enter.
2. Введенное значение записывается в
переменную a (связывается с именем a)
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
19. Ввод значения с клавиатуры
Алгоритмизация и программирование, язык Python, 10 класс19
Ввод значения с клавиатуры
a = input()
b = input()
ввести строку с клавиатуры
и связать с переменной a
Протокол:
21
33
2133
с=a + b
print ( c )
? Почему?
! Результат функции input – строка символов!
преобразовать в
целое число
a = int( input() )
b = int( input() )
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
20. Ввод двух значений в одной строке
Алгоритмизация и программирование, язык Python, 10 класс20
Ввод двух значений в одной строке
a, b = map ( int, input().split() )
21 33 input()
ввести строку с клавиатуры
21 33 input().split()
целые
применить
разделить строку на
части по пробелам
21 33 map ( int, input().split() )
эту
операцию
к каждой части
a, b = map ( int, input().split() )
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
21. Ввод с подсказкой
Алгоритмизация и программирование, язык Python, 10 класс21
Ввод с подсказкой
a = input ( "Введите число: " )
Введите число: 26
подсказка
? Что не так?
a = int( input("Введите число: ") )
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
22. Изменение значений переменной
Алгоритмизация и программирование, язык Python, 10 класс22
Изменение значений переменной
a = 5
b = a + 2
a = (a + 2)*(b – 3)
b = b + 1
28
a
b
=(5+2)*(7-3)
5
7
=5+2
8
=7+1
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
23. Вывод данных
Алгоритмизация и программирование, язык Python, 10 класс23
Вывод данных
print ( a )
значение
переменной
значение и
текст
print ( "Ответ: ", a )
перечисление через запятую
print ( "Ответ: ", a+b )
вычисление
выражения
print ( a, "+", b, "=", c )
2 + 3 = 5
через пробелы
print ( a, "+", b, "=", c, sep = "" )
2+3=5
К.Ю. Поляков, Е.А. Ерёмин, 2014
убрать разделители
http://kpolyakov.spb.ru
24. Сложение чисел: простое решение
Алгоритмизация и программирование, язык Python, 10 класс24
Сложение чисел: простое решение
a = int ( input() )
b = int ( input() )
c=a+b
print ( c )
? Что плохо?
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
25. Сложение чисел: полное решение
Алгоритмизация и программирование, язык Python, 10 класс25
Сложение чисел: полное решение
print ( "Введите два числа: " )
a = int ( input() )
подсказка
b = int ( input() )
c=a+b
print ( a, "+", b, "=", c )
Протокол:
компьютер
Введите два целых числа
25 30
пользователь
25 + 30 = 55
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
26. Форматный вывод
Алгоритмизация и программирование, язык Python, 10 класс26
Форматный вывод
целое
a = 123
print ( "{:5d}".format(a)
)
5
123
5 знаков
a = 5
print ( "{:5d}{:5d}{:5d}".format
(a, a*a, a*a*a) )
5
25
125
5 знаков 5 знаков 5 знаков
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
27. Задачи
Алгоритмизация и программирование, язык Python, 10 класс27
Задачи
«A»: Ввести с клавиатуры три целых числа, найти их сумму,
произведение и среднее арифметическое.
Пример:
Введите три целых числа:
5 7 8
5+7+8=20
5*7*8=280
(5+7+8)/3=6.667
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
28.
Алгоритмизация и программирование, язык Python, 10 класс28
Задача 2. Известны оклад (зарплата) и ставка процента подоходного налога.
Определить размер подоходного налога и сумму, получаемую на руки.
Постановка задачи: Исходными данными являются величина оклада
(переменная oklad, выражаемая числом) и ставка подоходного налога (перем
енная procent, выражаемая числом). Размер налога (переменная nalog) опр
еделяется как oklad*procent/100, а сумма, получаемая на руки (переменная
summa) — как okladnalog .
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
29.
Алгоритмизация и программирование, язык Python, 10 класс29
Задача 3. Напишите программу, которая
получает с клавиатуры количество секунд и
выводит то же самое время в часах, минутах и
секундах.
Задача 4. Занятия в школе начинаются в 8-30. Урок
длится 45 минут, перерывы между уроками – 10
минут. Напишите программу, которая получает с
клавиатуры номер урока и выводит время его
окончания.
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
30. Программирование на языке Python
30Программирование
на языке Python
§ 56. Вычисления
25.01.2024
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
31. Типы данных
Алгоритмизация и программирование, язык Python, 10 класс31
Типы данных
• int
• float
• bool
• str
# целое
# вещественное
# логические значения
# символьная строка
a=5
print ( type(a) )
a = 4.5
print ( type(a) )
a = True
print ( type(a) )
a = "Вася"
print ( type(a) )
К.Ю. Поляков, Е.А. Ерёмин, 2014
<class 'int'>
<class 'float'>
<class 'bool'>
<class 'str'>
http://kpolyakov.spb.ru
32. Арифметическое выражения
Алгоритмизация и программирование, язык Python, 10 класс32
Арифметическое выражения
3
1
2
4
5
6
a = (c + b**5*3 - 1) / 2 * d
Приоритет (старшинство):
1) скобки
2) возведение в степень **
3) умножение и деление
4) сложение и вычитание
a = (c + b*5*3 - 1) \
/2*d
a = (c + b*5*3
- 1) / 2 * d
К.Ю. Поляков, Е.А. Ерёмин, 2014
c b5 3 1
a
d
2
перенос на
следующую строку
перенос внутри
скобок разрешён
http://kpolyakov.spb.ru
33. Деление
Алгоритмизация и программирование, язык Python, 10 класс33
Деление
Классическое деление:
a = 9; b = 6
x = 3 / 4
# = 0.75
x = a / b
# = 1.5
x = -3 / 4 # = -0.75
x = -a / b # = -1.5
Целочисленное деление (округление «вниз»!):
a = 9; b = 6
x = 3 // 4
# = 0
x = a // b
# = 1
x = -3 // 4 # = -1
x = -a // b # = -2
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
34. Остаток от деления
Алгоритмизация и программирование, язык Python, 10 класс34
Остаток от деления
% – остаток от деления
d = 85
b = d // 10
# 8
a = d % 10
# 5
d = a % b
# 5
d = b % a
# 3
Для отрицательных чисел:
a = -7
b = a // 2
d = a % 2
К.Ю. Поляков, Е.А. Ерёмин, 2014
# -4
# 1
! Как в математике!
остаток 0
-7 = (-4)*2 + 1
http://kpolyakov.spb.ru
35. Сокращенная запись операций
Алгоритмизация и программирование, язык Python, 10 класс35
Сокращенная запись операций
a += b # a = a + b
a -= b # a = a - b
a *= b # a = a * b
a /= b # a = a / b
a //= b # a = a // b
a %= b # a = a % b
К.Ю. Поляков, Е.А. Ерёмин, 2014
a += 1
увеличение на 1
http://kpolyakov.spb.ru
36. Вещественные числа
Алгоритмизация и программирование, язык Python, 10 класс36
Вещественные числа
! Целая и дробная части числа разделяются
точкой!
Форматы вывода:
x = 123.456
print( x )
123.456
print("{:10.2f}".format(x))
123.46
всего знаков
в дробной части
print("{:10.2g}".format(x))
1.2e+02
значащих цифр
К.Ю. Поляков, Е.А. Ерёмин, 2014
1,2 102
http://kpolyakov.spb.ru
37. Вещественные числа
Алгоритмизация и программирование, язык Python, 10 класс37
Вещественные числа
Экспоненциальный формат:
3,333333 10–5
x = 1./30000
print("{:e}".format(x)) 3.333333e-05
x = 12345678.
print("{:e}".format(x)) 1.234568e+07
1,234568 107
x = 123.456
print("{:e}".format(x)) 1.234560e+02
print("{:10.2e}".format(x))
1.23e+02
всего знаков
К.Ю. Поляков, Е.А. Ерёмин, 2014
в дробной части
http://kpolyakov.spb.ru
38. Стандартные функции
Алгоритмизация и программирование, язык Python, 10 класс38
Стандартные функции
abs(x) — модуль числа
int(x) — преобразование к целому числу
round(x) — округление
х**2 - квадрат
подключить
математический модуль
import math
math.pi
— число «пи»
math.sqrt(x) — квадратный корень
math.sin(x) — синус угла, заданного в радианах
math.cos(x) — косинус угла, заданного в радианах
math.exp(x) — экспонента ех
math.ln(x)
— натуральный логарифм
math.floor(x) — округление «вниз»
— округление
«вверх»
xmath.ceil(x)
= math.floor(1.6)#
1 x = math.floor(-1.6)
#-2
x = math.ceil(1.6) # 2 x = math.ceil(-1.6) #-1
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
39. Генератор случайных чисел
Алгоритмизация и программирование, язык Python, 10 класс39
Генератор случайных чисел
import random
англ. random – случайный
Целые числа на отрезке [a,b]:
X = random.randint(1,6) # псевдосл. число
Y = random.randint(1,6) # уже другое!
Генератор на [0,1):
X = random.random()
Y = random.random()
# псевдослучайное число
# это уже другое число!
Генератор на [a, b] (вещественные числа):
X = random.uniform(1.2, 3.5)
Y = random.uniform(1.2, 3.5)
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
40. Генератор случайных чисел
Алгоритмизация и программирование, язык Python, 10 класс40
Генератор случайных чисел
from random import *
подключить все!
Целые числа на отрезке [a,b]:
X = randint(10,60) # псевдослучайное число
Y = randint(10,60) # это уже другое число!
Генератор на [0,1):
X = random(); # псевдослучайное число
Y = random() # это уже другое число!
Генератор на [a, b] (вещественные числа):
X = uniform(1.2, 3.5) # псевдосл. число
Y = uniform(1.2, 3.5) # уже другое число!
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
41. Задачи
Алгоритмизация и программирование, язык Python, 10 класс41
Задачи
«1»: Ввести с клавиатуры координаты двух точек (A и B) на
плоскости (вещественные числа). Вычислить длину
отрезка AB.
Пример:
Введите координаты точки A:
5.5 3.5
Введите координаты точки B:
1.5 2
Длина отрезка AB = 4.272
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
42. Задачи
Алгоритмизация и программирование, язык Python, 10 класс42
Задачи
«2»: Получить случайное трехзначное число и вывести
через запятую его отдельные цифры.
Пример:
Получено число 123.
Его цифры 1, 2, 3.
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
43. Задачи
Алгоритмизация и программирование, язык Python, 10 класс43
Задачи
«3»: Напишите программу, которая получает с
клавиатуры четырёхзначное натуральное число и
переставляет его первую и последнюю цифры.
Например, из числа 1234 должно получиться число 4231
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru