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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
Нет Да Да Нет Нет Да

Задачи

«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() == "ДА":
    ...

§ 23. Отладка программ

Виды ошибок

Синтаксические ошибки – нарушение правил записи операторов языка программирования. Обнаруживаются транслятором.Логические ошибки – неверно составленный алгоритм.Отказ (ошибка времени выполнения) – аварийная ситуация во время выполнения программы.Отладка – поиск и исправление ошибок в программе.

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

    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="")

Программа решения квадратного уравненияfloat – преобразовать в вещественное число

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

Тест 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

(2*a)(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)

    Выполните отладку программы:
    исправьте синтаксические ошибки определите ситуации, когда она работает неверно исправьте логические ошибки.
§ 20. Программирование циклических алгоритмов

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

Задача. Вывести 5 раз «Привет!».print("Привет")print("Привет")print("Привет")print("Привет")print("Привет") А если 5000? ?Цикл «N раз»:сделай 5 раз print("Привет") такого оператора нет в Python!

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

Нужно запоминать, сколько раз цикл уже выполнен! ! переменная-счётчиксчётчик = 0пока счётчик < 5 print("Привет") счётчик = счётчик + 1 ещё не делалисчётчик += 1c = 0while c < 5: print("Привет") c += 1 сделали ещё раз
Источник: https://files.student-it.ru/previewfile/258784