Файл: 17. Введение 18. Линейные программы 19. Ветвления 20. Программирование циклических алгоритмов.ppt
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.01.2024
Просмотров: 1702
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Направления в программировании
Вывод данных с текстом (f-строки)
Ввод двух чисел в одной строке
Выбор наибольшего из двух чисел
Выбор наибольшего из двух чисел-2
Задачи (без функций min и max!)
Хорошее решение (операция «И»)
Программирование экспертной системы
Модифицированный алгоритм Евклида
Задачи на циклы (дополнительные)
Вывод массива на экран (Python)
Сумма элементов массива (Python)
Подсчёт элементов по условию (Python)
Среднее арифметическое (Python)
Перестановка элементов массива
Нет Да Да Нет Нет Да
? птица да да нет нет млекопитающее Кормит детей молоком? Имеет перья? Ест мясо? ? да нет
Задачи
«A»: Напишите программу, которая получает три числа - рост трёх спортсменов, и выводит сообщение «По росту.», если они стоят по возрастанию роста, или сообщение «Не по росту!», если они стоят не по росту.Пример:__Введите_номер_месяца:__5__Весна.__Пример:__Введите_номер_месяца:__15__Неверный_номер_месяца.'>Пример:__Введите_рост_трёх_спортсменов:__165_170_172__По_росту.__Пример:__Введите_рост_трёх_спортсменов:__175_170_172'>Пример:Введите рост трёх спортсменов: 165 170 172По росту.Пример:Введите рост трёх спортсменов: 175 170 172Не по росту!Задачи
«B»: Напишите программу, которая получает номер месяца и выводит соответствующее ему время года или сообщение об ошибке. Пример:Введите номер месяца:5Весна.Пример:Введите номер месяца:15Неверный номер месяца.Задачи
«C»: Напишите программу, которая получает возраст человека (целое число, не превышающее 120) и выводит этот возраст со словом «год», «года» или «лет». Например, «21 год», «22 года», «25 лет». Пример:Введите возраст: 18Вам 18 лет.Пример:Введите возраст: 21Вам 21 год.Пример:Введите возраст: 22Вам 22 года.Логические переменные
- b = True
b = False
type(b)
- freeDay = (d==6 or d==7)
...
if not freeDay:
print("Рабочий день.")
else:
print("Выходной!")
Задачи
«A»: Напишите программу, которая получает с клавиатуры целое число и записывает в логическую переменную значение «да» (True), если это число трёхзначное. После этого на экран выводится ответ на вопрос: «Верно ли, что было получено трёхзначное число?». Пример:Введите число: 165Ответ: да.Пример:Введите число: 1651Ответ: нет.Задачи
«B»: Напишите программу, которая получает с клавиатуры трёхзначное число и записывает в логическую переменную значение «да» (True), если это число – палиндром, то есть читается одинаково слева направо и справа налево. После этого на экран выводится ответ на вопрос: «Верно ли, что введённое число – палиндром?». Пример:Введите число: 165Ответ: нет.Пример:Введите число: 656Ответ: да.Задачи
«С»: Напишите программу, которая получает с клавиатуры трёхзначное число и записывает в логическую переменную значение «да» (True), если это все его цифры одинаковы. После этого на экран выводится ответ на вопрос: «Верно ли, что все цифры введённого числа одинаковы?» Пример:Введите число: 161Ответ: нет.Пример:Введите число: 555Ответ: да.Экспертная система
Экспертная система — это компьютерная программа, задача которой — заменить человека-эксперта при принятии решений в сложной ситуации.База знаний = факты + правила вывода: если у животного есть перья, то это птица; если животное кормит детенышей молоком, то это — млекопитающее; если животное — млекопитающее и ест мясо, то это — хищник.Диалог: Это животное кормит детей молоком? Нет Это животное имеет перья? Да Это птица.Дерево решений
хищник? птица да да нет нет млекопитающее Кормит детей молоком? Имеет перья? Ест мясо? ? да нет
Программирование экспертной системы
Ответы пользователя: да и нет – символьные строки.- ans = input("Кормит детей молоком? ")
if ans == "да":
... # вариант 1
else:
... # вариант 2
- # вариант 1
print("Млекопитающее.")
ans = input("Ест мясо? ")
if ans == "да":
print("Хищник.")
else:
print("Не знаю.")
Заглавные и строчные буквы
- if ans == "да":
...
- if ans == "да" or ans == "Да":
...
- if ans.lower() == "да":
...
- if ans.upper() == "ДА":
...
Виды ошибок
Синтаксические ошибки – нарушение правил записи операторов языка программирования. Обнаруживаются транслятором.Логические ошибки – неверно составленный алгоритм.Отказ (ошибка времени выполнения) – аварийная ситуация во время выполнения программы.Отладка – поиск и исправление ошибок в программе.Пример отладки программы
- from math import sqrt
print("Введите a, b, c: ")
a = float(input())
b = float(input())
c = float(input())
D = b*b - 4*a*a
x1 = (-b+sqrt(D))/2*a
x2 = (-b-sqrt(D))/2*a
print("x1=", x1, " x2=", x2, sep="")
Тестирование
Тест 1. a = 1, b = 2, c = 1.x1=-1.0 x2=-1.0x1=-1.0 x2=-1.0 Реальность:Тест 2. a = 1, b = – 5, c = 6.x1=3.0 x2=2.0x1=4.791 x2=0.209 Ожидание: Найден вариант, когда программа работает неверно. Ошибка воспроизводится!Возможные причины: неверный ввод данных неверное вычисление дискриминанта неверное вычисление корней неверный вывод результатовОтладочная печать
- a = float(input())
b = float(input())
c = float(input())
print(a, b, c)
D = b*b - 4*a*a
print("D=", D)
...
- print(a, b, c)
- print("D=", D)
Отладочная печать
Введите a, b, c: 1 -561.0 -5.0 6.0D= 21.0 Результат:D= 21.0- D = b*b - 4*a* с ;
Отладка программы
Тест 1. a = 1, b = 2, c = 1.x1=-1.0 x2=-1.0x1=-1.0 x2=-1.0 Реальность:Тест 2. a = 1, b = – 5, c = 6.x1=3.0 x2=2.0 Ожидание:x1=3.0 x2=2.0Тест 3. a = 8, b = – 6, c = 1.x1=0.5 x2=0.25x1=32.0 x2=16.0 Программа работает верно? ?- x1 = (-b+sqrt(D))/2*a
x2 = (-b-sqrt(D))/2*a
Задачи
- «A»: Загрузите программу, которая должна вычислять сумму цифр трёхзначного числа:
N = input(int("N = "))
d0 = N % 10
d1 = N % 100
d2 = N // 100
d0 + d2 = s
print(s)
исправьте синтаксические ошибки определите ситуации, когда она работает неверно исправьте логические ошибки.
Задачи
- «B»: Доработайте программу из п. А так, чтобы она правильно работала с отрицательными трёхзначными числами: при вводе числа «–123» программа должна выдавать ответ 6.
Задачи
- «С»: Загрузите программу, которая должна вычислять наибольшее из трёх чисел:
a = input("a = ")
b = int("b = ")
c = input("c = ")
if a > b: M = a
else M = b
if c > b M = b
else: M = c
input(M)
исправьте синтаксические ошибки определите ситуации, когда она работает неверно исправьте логические ошибки.