Файл: Алгоритм и его свойства Простейшие программы Вычисления Ветвления Символьные строки Циклические алгоритмы Массивы (списки) Поиск в массиве Алгоритм и его свойства Что такое алгоритм.pptx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 30.11.2023
Просмотров: 257
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Координатное поле окна для рисования
Как организовать цикл (36 повторений)?
Как записать значение в переменную?
Сложение чисел: простое решение
Сложение чисел: полное решение
Ввод двух значений в одной строке
Линейный конгруэнтный генератор
Условный оператор: неполная форма
Деление
Классическое деление:
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
Остаток от деления
% – остаток от деления
d = 85
b = d // 10 # 8
a = d % 10 # 5
d = a % b # 5
d = b % a # 3
a = 15
b = 19
d = a // b # 0
a = a % b # 15
Операторы // и %
a = 1234
d = a % 10; print( d )
a = a // 10 # 123
d = a % 10; print( d )
a = a // 10 # 12
d = a % 10; print( d )
a = a // 10 # 1
d = a % 10; print( d )
a = a // 10 # 0
4
3
2
1
Сокращенная запись операций
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
a += 1
увеличение на 1
Ввод двух значений в одной строке
a, b = map ( int, input().split() )
input()
ввести строку с клавиатуры
21 33
input().split()
21
33
разделить строку на части по пробелам
map ( int, input().split() )
21
33
целые
применить
эту операцию
к каждой части
a, b = map ( int, input().split() )
Задания
«3»: Ввести три числа: цену пирожка (два числа: рубли, потом – копейки) и количество пирожков. Найти сумму, которую нужно заплатить (рубли и копейки)
Пример:
Стоимость пирожка:
12 50
Сколько пирожков:
5
К оплате: 62 руб. 50 коп.
«4»: Ввести число, обозначающее количество секунд. Вывести то же самое время в часах, минутах и секундах.
Пример:
Число секунд:
8325
2 ч. 18 мин. 45 с
Задания
«5»: Занятия в школе начинаются в 8-30. Урок длится 45 минут, перерывы между уроками – 10 минут. Ввести номер урока и вывести время его окончания.
Пример:
Введите номер урока:
6
13-50
Случайные числа
Случайно…
- встретить друга на улице
- разбить тарелку
- найти 10 рублей
- выиграть в лотерею
Случайный выбор:
- жеребьевка на соревнованиях
- выигравшие номера в лотерее
Как получить случайность?
Случайные числа на компьютере
Электронный генератор
- нужно специальное устройство
- нельзя воспроизвести результаты
318458191041
564321
209938992481
458191
938992
- малый период (последовательность повторяется через 106 чисел)
Метод середины квадрата (Дж. фон Нейман)
в квадрате
Псевдослучайные числа
– обладают свойствами случайных чисел, но каждое следующее число вычисляется по заданной формуле.
зерно
Линейный конгруэнтный генератор
X = (a*X+b) % c | интервал от 0 до c-1
X = (X+3) % 10 | интервал от 0 до 9
X = 0
зерно
3
6
9
2
5
8
0
зацикливание
8
1
4
7
Важен правильный выбор параметров a, b и с!
!
Компилятор GCC:
a = 1103515245
b = 12345
c = 231
Генератор на [0,1):
X = random.random() # псевдосл. число
Y = random.random() # уже другое число!
Целые числа на отрезке [a,b]:
X = random.randint(1,6) # псевдосл. число
Y = random.randint(1,6) # уже другое число!
import random
англ. random – случайный
Генератор на [a, b] (вещественные числа):
X = random.uniform(1.2, 3.5)
Y = random.uniform(1.2, 3.5)
Генератор на [0,1):
X = random() # псевдослучайное число
Y = random() # это уже другое число!
Целые числа на отрезке [a,b]:
X = randint(10,60) # псевдослучайное число
Y = randint(10,60) # это уже другое число!
from random import *
англ. random – случайный
подключить все!
Задачи
«3»: Игральный кубик бросается три раза (выпадает три случайных значения). Сколько очков в среднем выпало?
Пример:_Выпало_очков:_5_3_1_(5+3+1)/3=3_«4»'>Пример:
Выпало очков:
5 3 1
(5+3+1)/3=3
«4»: Игральный кубик бросается три раза (выпадает три случайных значения). Из этих чисел составляется целое число, программа должна найти его квадрат.
Пример:
Выпало очков:
1 2 3
Число 123
Его квадрат 15129
Задачи
«5»: Получить случайное трёхзначное число и вывести через запятую его отдельные цифры.
Пример:
Получено число 123
сотни: 1
десятки: 2
единицы: 3
Ветвления
Условный оператор
Задача: изменить порядок действий в зависимости от выполнения некоторого условия.
M = a
a > b?
M = b
да
нет
вывод M
полная форма ветвления
Если a = b?
?
if a > b:
M = a
else:
M = b
отступы
Условный оператор: неполная форма
M = b
b > a?
да
нет
вывод M
M = a
неполная форма ветвления
M = a
if b > a:
M = b
M = max(a, b)
Решение в стиле Python:
M = a if a > b else b
Условный оператор
if a < b:
с = a
a = b
b = c
Что делает?
?
4
6
?
4
6
4
a
b
3
2
1
Можно ли обойтись
без переменной c?
?
c
a, b = b, a
Решение в стиле Python:
Знаки отношений
>
<
>=
<=
==
!=
больше, меньше
больше или равно
меньше или равно
равно
не равно
Вложенные условные операторы
if a > b:
print("Андрей старше")
else:
if a == b:
print("Одного возраста")
else:
print("Борис старше")
вложенный условный оператор
Зачем нужен?
?
Задача: в переменных a и b записаны возрасты Андрея и Бориса. Кто из них старше?
Сколько вариантов?
?
Каскадное ветвление
if a > b:
print("Андрей старше")
elif a == b:
print("Одного возраста")
else:
print("Борис старше")
elif = else if
!
Каскадное ветвление
cost = 1500
if cost < 1000:
print ( "Скидок нет." )
elif cost < 2000:
print ( "Скидка 2%." )
elif cost < 5000:
print ( "Скидка 5%." )
else:
print ( "Скидка 10%." )
Что выведет?
?
первое сработавшее условие
Скидка 2%.
Задачи (без функций min и max!)
«3»: Ввести два целых числа, найти наибольшее и наименьшее из них.
Пример:
Введите два целых числа:
1 5
Наибольшее число 5
Наименьшее число 1
«4»: Ввести четыре целых числа, найти наибольшее из них.
Пример:
Введите четыре целых числа:
1 5 4 3
Наибольшее число 5
Задачи
'5': Ввести пять чисел и найти наибольшее из них.
Пример:
Введите пять чисел:
4 15 9 56 4
Наибольшее число 56
Задачи
«6»: Ввести последовательно возраст Антона, Бориса и Виктора. Определить, кто из них старше.
Пример:
Возраст Антона: 15
Возраст Бориса: 17
Возраст Виктора: 16
Ответ: Борис старше всех.
Пример:
Возраст Антона: 17
Возраст Бориса: 17
Возраст Виктора: 16
Ответ: Антон и Борис старше Виктора.
Сложные условия
Задача: набор сотрудников в возрасте 25-40 лет (включительно).
if :
print("подходит")
else:
print("не подходит")
and
v >= 25 and v <= 40
сложное условие
«И»: одновременное выполнение всех условий!