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

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

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

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

Добавлен: 10.01.2024

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

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

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

СОДЕРЖАНИЕ

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

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

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

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

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

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

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

Задачи

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Задачи

Задачи

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

Деление

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

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

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

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

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

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

Задачи

Задачи

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

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

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

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

Задачи

Задачи

Задачи

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

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

Задачи

Задачи

Задачи

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

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

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

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

Примеры

Примеры

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

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

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

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

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

Задачи

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

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

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

Примеры

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

Ещё пример

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

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

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

Задачи

Задачи

Задачи

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

Задачи

Задачи

Задачи

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

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

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

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

Виды ошибок

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

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

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

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

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

Задачи

Задачи

Задачи

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

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

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

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

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

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

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

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

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

Задачи

Задачи

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

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

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

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

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

В стиле Python

Задачи

Задачи

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

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

Задачи

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

Задачи

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

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

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

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

Задачи

Задачи

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

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

Что неверно?

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

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

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

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

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

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

Задачи

Задачи

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

Задачи-2

Задачи-2

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

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

Задачи

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

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

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

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

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

Задачи

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

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

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

Задачи

Задачи

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

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

Задачи

Конец фильма

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

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





Вещественные числа:


from random import random, uniform
x = random() # полуинтервал [0,1)
y = 7*random() # полуинтервал [0,7)
z = 7*random()+5 # полуинтервал [5,12)


from random import uniform
x = uniform(1.5, 2.8) # [1,5; 2,8]
y = uniform(5.25, 12.75) # [5,25; 12,75]


Вещественные числа на отрезке [a, b]:

Задачи





«A»: В игре «Русское лото» из мешка случайным образом выбираются бочонки, на каждом из которых написано число от 1 до 90. Напишите программу, которая выводит наугад первые 5 выигрышных номеров.
«B»: + Доработайте программу «Русское лото» так, чтобы все 5 значений гарантированно были бы разными (используйте разные диапазоны).

Задачи





«С»: + Игральный кубик бросается три раза (выпадает три случайных значения). Из этих чисел составляется целое число, программа должна найти его квадрат.
Пример:
Выпало очков:
1 2 3
Число 123
Его квадрат 15129

Задачи





«D»: + Получить случайное трёхзначное число и вывести в столбик его отдельные цифры.
Пример:
Получено число 123
сотни: 1
десятки: 2
единицы: 3


§ 19. Ветвления




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





Задача: изменить порядок действий в зависимости от выполнения некоторого условия.


M = a


a > b?


M = b


да


нет


вывод M


полная форма ветвления


Если a = b?


?


if a > b:
M = a
else:
M = b


отступы

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





print("Введите два целых числа")
a = int(input())
b = int(input()) if a > b: else: print("Наибольшее число", M)


M = a


M = b


полная форма условного оператора


M = max(a, b)


Решение в стиле Python:



M = a if a > b else b

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





неполная форма ветвления


начало


M = a


ввод a,b


M = b


конец


да


нет


b > a?


вывод M

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





print("Введите два целых числа")
a = int(input())
b = int(input())
M = a if b > a: print("Наибольшее число", M)


M = b


неполная форма условного оператора

Примеры





if a < b:
M = a
if b < a:
M = b


Что плохо?


?


Когда работает неверно?


?


Поиск минимального:

Примеры





if a < b:
c = a
a = b
b = c


Что делает эта программа?


?


В чём отличие?


?


if a < b:
c = a
a = b
b = c


4


6


?


4


6


4


a


b


3


2


1


c


a, b = b, a


Решение в стиле Python:





if a < b then begin
c:= a;
a:= b;
b:= c;
end;


Паскаль:


С:


if (a < b) {
c = a;
a = b;
b = c;
}


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





>


<


>=


<=


==


!=


больше, меньше


больше или равно


меньше или равно


равно


не равно

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





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!)





«A»: Ввести два целых числа, найти наибольшее и наименьшее из них.
Пример:__Введите_четыре_целых_числа:__1_5_4_3__Наибольшее_число_5___Задачи'>Пример:
Введите два целых числа:
1 5
Наибольшее число 5
Наименьшее число 1


«B»: Ввести четыре целых числа, найти наибольшее из них.
Пример:
Введите четыре целых числа:
1 5 4 3
Наибольшее число 5

Задачи





«C»: Ввести последовательно возраст Антона, Бориса и Виктора. Определить, кто из них старше.
Пример:
Возраст Антона: 15
Возраст Бориса: 17
Возраст Виктора: 16
Ответ: Борис старше всех.
Пример:
Возраст Антона: 17
Возраст Бориса: 17
Возраст Виктора: 16

Ответ: Антон и Борис старше Виктора.

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





Задача. Фирма набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и определить, подходит ли он фирме (вывести ответ "подходит" или "не подходит").
Особенность: надо проверить, выполняются ли два условия одновременно:
возраст  25 возраст  40


Можно ли решить известными методами?


?

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





print("Введите ваш возраст")
x = int(input())
if x >= 25:
if x <= 40:
print("Подходит!")
else:
print("Не подходит.")
else:
print("Не подходит.")


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

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





if :
print("подходит")
else:
print("не подходит")


and


v >= 25 and v <= 40


сложное условие


«И»: одновременное выполнение всех условий!


Задача: набор сотрудников в возрасте 25-40 лет (включительно).

Примеры





Задача. Вывести "Да", если число в переменной a – двузначное.


if 10 <= a and a <= 99:
print("Да")


Задача. Вывести "Да", если число в переменной a – двузначное и делится на 7.


if 10 <= a and a <= 99 and (a % 7)==0:
print("Да")


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





Задача. Самолёт летает по понедельникам и четвергам. Ввести номер дня недели и определить, летает ли в этот день самолёт.
Особенность: надо проверить, выполняется ли одно из двух условий:
день = 1 день = 4


if d == 1 or d == 4 :
print("Летает")
else:
print("Не летает")


сложное условие


d == 1 or d == 4


or


«ИЛИ»: выполнение хотя бы одного из двух условий!

Ещё пример





Задача. Фирма набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и определить, подходит ли он фирме (вывести ответ "подходит" или "не подходит"). Использовать «ИЛИ».


if :
print("не подходит")
else:
print("подходит")


v < 25 or v > 40

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





if not(a < b):
print("Cтарт!")


not


«НЕ»: если выполняется обратное условие


if a >= b:
print("Cтарт!")


Как без «НЕ»?


?

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





Простые условия (отношения)
< <= > >= == !=
Сложное условие – это условие, состоящее из нескольких простых условий (отношений), связанных с помощью логических операций:
    and – одновременное выполнение условий
    x >= 25 and x <= 40
    or – выполнение хотя бы одного из условий
    x <= 25 or x >= 40
    not – отрицание, обратное условие
    not (x > 25)  ???


равно


не равно


x <= 25





    выражения в скобках
    <, <=, >, >=, =, !=
    not
    and
    or


1


    if not a > 2 or c != 5 and b < a:
    ...


4


2


3


5


6

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





Истинно или ложно при a = 2; b = 3; c = 4
    not (a > b)
    a < b and b < c
    a > c or b > c
    a < b and b > c
    a > c and b > d
    not (a >= b) or c = d
    a >= b or not (c < b)
    a > c or b > c or b > a


Да


Да