Файл: Алгоритм и его свойства Простейшие программы Вычисления Ветвления Символьные строки Циклические алгоритмы Массивы (списки) Поиск в массиве Алгоритм и его свойства Что такое алгоритм.pptx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 30.11.2023
Просмотров: 268
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Координатное поле окна для рисования
Как организовать цикл (36 повторений)?
Как записать значение в переменную?
Сложение чисел: простое решение
Сложение чисел: полное решение
Ввод двух значений в одной строке
Линейный конгруэнтный генератор
Условный оператор: неполная форма
Сложные условия
Задача: набор сотрудников в возрасте 25-40 лет (включительно).
if :
print("не подходит")
else:
print("подходит")
v < 25 or v > 40
сложное условие
or
«ИЛИ»: выполнение хотя бы одного из двух условий!
Сложные условия
if not(a < b):
print("Cтарт!")
not
Приоритет :
- отношения (<, >, <=, >=, ==, !=)
- not («НЕ»)
- and («И»)
- or («ИЛИ»)
«НЕ»: если выполняется обратное условие
if a >= b:
print("Cтарт!")
Как без «НЕ»?
?
Задачи
«3»: Напишите программу, которая получает три числа - рост трёх спортсменов, и выводит сообщение «По росту.», если они стоят по возрастанию роста, или сообщение «Не по росту!», если они стоят не по росту.
Пример:
Введите рост трёх спортсменов:
165 170 172
По росту.
Пример:
Введите рост трёх спортсменов:
175 170 172
Не по росту!
Задачи
«4»: Напишите программу, которая получает номер месяца и выводит соответствующее ему время года или сообщение об ошибке.
Пример:
Введите номер месяца:
5
Весна.
Пример:
Введите номер месяца:
15
Неверный номер месяца.
Задачи
«5»: Напишите программу, которая получает возраст человека (целое число, не превышающее 120) и выводит этот возраст со словом «год», «года» или «лет». Например, «21 год», «22 года», «25 лет».
Пример:
Введите возраст: 18
Вам 18 лет.
Пример:
Введите возраст: 21
Вам 21 год.
Пример:
Введите возраст: 22
Вам 22 года.
Символьные строки
Символьные строки
Начальное значение:
Сложение:
s = "Привет!"
Строка – это
последовательность
символов!
!
Вывод на экран:
print ( s )
Умножение:
s = "АУ"
s5 = s*5
АУАУАУАУАУ
Что получим?
?
s5 = s + s + s + s + s
s1 = "Привет"
s2 = "Вася"
s = s1 + ", " + s2 + "!"
"Привет, Вася!"
Символьные строки
Вывод символа на экран:
Длина строки:
n = len ( s )
print ( s[5] )
0 | 1 | 2 | 3 | 4 | 5 | 6 |
П | р | и | в | е | т | ! |
s[0] | s[1] | s[2] | s[3] | s[4] | s[5] | s[6] |
print ( s[-2] )
s[len(s)-2]
Символьные строки
Ввод с клавиатуры:
s = input ( "Введите имя: " )
Изменение строки:
s[4] = "a"
Строка – это неизменяемый объект!
!
... но можно составить новую строку:
s1 = s + "a"
Изменение строки запрещено!
s = "информатика"
print(s[-2]+s[3]+s[-4])
составить «кот»
Срезы
s = "0123456789"
s1 = s[3:8] # "34567"
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
разрезы
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Срезы строк
s = "0123456789"
s1 = s[:8] # "01234567"
от начала строки
s = "0123456789"
s1 = s[3:] # "3456789"
до конца строки
s1 = s[::-1] # "9876543210"
реверс строки
Операции со строками
Срезы с отрицательными индексами:
s = "0123456789"
s1 = s[:-2] # "01234567"
len(s)-2
s = "0123456789"
s1 = s[-6:-2] # "4567"
len(s)-2
len(s)-6
Операции со строками
Вставка:
s = "0123456789"
s1 = s[:3] + "ABC" + s[3:]
Удаление:
s = "0123456789"
s1 = s[:3] + s[9:] # "0129"
"012"
"9"
"012ABC3456789"
Задачи
«3»: Ввести с клавиатуры пароль (символьную строку), если его длина меньше, чем 6 символов, вывести сообщение «Слишком короткий пароль!», иначе вывести сообщение «ОК».
Пример:
Введите пароль:
12345
Слишком короткий пароль!
Пример:
Введите пароль:
123456789
ОК.
Задачи
«4»: Ввести с клавиатуры пароль (символьную строку). Если его длина меньше, чем 6 символов, вывести сообщение «Слишком короткий пароль!». Если пароль начинается с букв «qwerty» вывести сообщение «Ненадёжный пароль!». Если ошибок не было, вывести сообщение «ОК».
Пример:
Введите пароль:
qwerty12345
Ненадёжный пароль!
Пример:
Введите пароль:
asdUTY7sakh
ОК.
Задачи
«5»: Ввести с клавиатуры имя файла. Если расширение имени файла – htm, html или php, выдать сообщение «Это веб-страница!», иначе выдать сообщение «Что-то другое.»
Пример:
Введите имя файла:
C:\DOC\Сайт\index.html
Это веб-страница!
Пример:
Введите имя файла:
C:\Документы\Приказ.doc
Что-то другое.
Циклические алгоритмы
Что такое цикл?
Цикл – это многократное выполнение одинаковых действий.
Два вида циклов:
- цикл с известным числом шагов (сделать 10 раз)
- цикл с неизвестным числом шагов (делать, пока не надоест)
Задача. Вывести на экран 10 раз слово «Привет».
Можно ли решить известными методами?
?
Повторения в программе
print("Привет")
print("Привет")
...
print("Привет")
Что плохо?
?
Блок-схема цикла
начало
конец
да
нет
тело цикла
сделали 10 раз?
print("Привет!")
Как организовать цикл?
счётчик = 0
пока счётчик < 10:
print("Привет")
увеличить счётчик на 1
счётчик = 10
пока счётчик > 0:
print("Привет")
уменьшить счётчик на 1
k = 0
while k < 10:
print ( "Привет" )
k += 1
k = 10
while k > 0:
print ( "Привет" )
k -= 1
Как по-другому?
?
a = 4; b = 6
while a < b: a += 1
2 раза
a = 6
a = 4; b = 6
while a < b: a += b
1 раз
a = 10
a = 4; b = 6
while a > b: a += 1
0 раз
a = 4
a = 4; b = 6
while a < b: b = a - b
1 раз
b = -2
a = 4; b = 6
while a < b: a -= 1
зацикливание
Цикл с условием
Задача. Определить количество цифр в десятичной записи целого положительного числа, записанного в переменную n.
счётчик = 0
пока n > 0:
отсечь последнюю цифру n
увеличить счётчик на 1
n | счётчик |
1234 | 0 |
123 | 1 |
12 | 2 |
1 | 3 |
0 | 4 |
Как отсечь последнюю цифру?
?
n = n // 10
Как увеличить счётчик на 1?
?
счётчик = счётчик + 1
счётчик += 1
Цикл с условием
count = 0
while :
n = n // 10
count += 1
тело цикла
начальное значение счётчика
n > 0
условие продолжения
заголовок цикла
Цикл с предусловием – проверка на входе в цикл!
!
Задачи
«3»: Ввести с клавиатуры количество повторений и вывести столько же раз какое-нибудь сообщение.
Пример:
Сколько раз:
5
Привет!
Привет!
Привет!
Привет!
Привет!
Задачи
«4»: Ввести с клавиатуры натуральное число и определить, сколько раз в его записи встречается цифра 1.
Пример:_Введите_число:_51211_3_«5»'>Пример:
Введите число:
51211
3
«5»: Ввести с клавиатуры натуральное число и найти сумму значений его цифр.
Пример:
Введите число:
1234
Cумма цифр 10
Задачи
«6»: Ввести натуральное число и определить, верно ли, что в его записи есть две одинаковые цифры, стоящие рядом.
Пример:
Введите натуральное число:
12342
Нет.
Пример:
Введите натуральное число:
12245
Да.
Алгоритм Евклида
Алгоритм Евклида. Чтобы найти НОД двух натуральных чисел, нужно вычитать из большего числа меньшее до тех пор, пока они не станут равны. Это число и есть НОД исходных чисел.
НОД(14,21) = НОД(14,7) = НОД(7, 7) = 7
пока a != b:
если a > b:
a -= b # a = a - b
иначе:
b -= a # b = b - a
while a != b:
if a > b:
a -= b
else:
b -= a
НОД(1998,2) =
НОД(1996,2) = … = НОД(2, 2) = 2
Алгоритм Евклида
Модифицированный алгоритм Евклида. Заменять большее число на остаток от деления большего на меньшее до тех пор, пока меньшее не станет равно нулю. Другое (ненулевое) число и есть НОД чисел.
НОД(1998,2) = НОД(0,2) = 2