Thon Условные



бет19/38
Дата23.02.2020
өлшемі2,05 Mb.
#58878
1   ...   15   16   17   18   19   20   21   22   ...   38
Байланысты:
8-3 python


print( "Не знаю." )

Вторую ветку главного условного оператора (вариант 2) вы можете написать самостоятельно.

Обратите внимание, что условие «otver == 'да'» сработа-



ет только тогда, когда пользователь введёт ответ именно так, всеми строчными буквами. Если он наберёт «Да» заглавной буквы) программа примет это как ответ «нет». Чтобы решить эту проблему, нужно использовать сложное условие:

if otvet == "да" or otvet == "Да":

...

Итак, теперь вы умеете использовать переменные ещё од-ного типа символьные строки.



Выводы:

Условный оператор служит для организации ветвления вы-бора одного из двух вариантов действий. Для выбора более, чем из двух вариантов, нужно использовать несколько услов-ных операторов.



Условный оператор в полной форме содержит 1) условие, 2) список команд, которые нужно выполнить, если условие ис-тинно, и 3) список команд, которые нужно выполнить, если условие ложно.

46 http://kpolyakov.spb.ru



05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин

Если условный оператор записан в неполной форме, то при ложном условии никаких действий не выполняется. Условный оператор в полной форме можно заменить на два условных оператора в неполной форме; условия в них долж-ны быть взаимно обратными: если одно из них истинно, то другое должно быть ложно.

Внутри каждой ветки условного оператора можно использо-вать любые операторы языка программирования, в том числе и вложенные условные операторы.

В сложных условиях для объединения нескольких условий используются логические операции «И», «ИЛИ» и «НЕ». В языке Python они обозначаются служебными словами and, or и not.

Операция «И» (and) означает одновременное выполнение

двух или нескольких условий.

Операция «ИЛИ» (or) означает выполнение хотя бы одного

из двух или нескольких условий.

Операция «НЕ» (not) означает обратное условие (противопо-



ложное исходному).

Логическая переменная это переменная, которая может принимать только логические значения: «истина» и «ложь». Экспертная система это компьютерная программа, задача которой заменить человека-эксперта при выработке реко-мендаций для принятия решений в сложной ситуации.

47 http://kpolyakov.spb.ru




Информатика, 8 класс

Интеллект-карта
False

True


05.04.2019 К.Ю. Поляков, Е.А. Еремин

в полной форме


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

в неполной форме



отношения

(<, <=, >, >=, =, <>)

логические операции

(«И», «ИЛИ», «НЕ»)

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



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

Рис. 3.5.



Практическая работа №11. Ветвления

Практическая работа №12. Сложные условия

Практическая работа №13. Логические переменные

Практическая работа №14. Экспертная система (проект)

Вопросы и задания

1. Какие задачи невозможно решить с помощью линейных ал-горитмов?

2. Как вы думаете, хватит ли линейных алгоритмов и ветвле-ний для разработки любой программы?

3. Почему нельзя выполнить обмен значений двух переменных

в два шага: a = b; b = a?

4. Можно ли переставлять операторы в приведённом алгоритме обмена значений двух переменных? Если нет, приведите контрпример, когда перестановка даст неверный результат.

5. Как вы думаете, можно ли обойтись только неполной формой условных операторов?

6. Какие отношения вы знаете? Как обозначаются отношения «равно» и «не равно»?

48 http://kpolyakov.spb.ru
ветвления

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

условие

логическое

значение


выбор из двух

вариантов



экспертная

система

05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин

7. Чем отличаются операторы «=» и «==»?

8. Как определяется порядок вычислений в сложном условии? Как его изменить?

Задачи

1. Объясните, чем отличаются следующие фрагменты про-грамм:

if a > b: a = b

a = c

и

if a > b: a = b else: a = c

Приведите примеры исходных данных, для которых резуль-таты выполнения обеих программ (значение переменной a) будут одинаковыми, и примеры данных, для которых они бу-дут различными.



2. Объясните, чем отличаются следующие фрагменты про-грамм:

if a > b: a = b

if a > c: a = c

и

if a > b: a = b elif a > c: a = c

Приведите примеры исходных данных, для которых резуль-таты выполнения обеих программ (значение переменной a) будут одинаковыми, и примеры данных, для которых они бу-дут различными.



3. Требовалось записать в переменную М максимальное из трёх чисел, хранящихся в переменных a, b и c. Программист спе-шил и написал программу так:

if a > b: M = a else: M = b if c > b: M = c else: M = b
49 http://kpolyakov.spb.ru

05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин

Приведите контрпример, то есть значения переменных, при котором в переменной M будет получен неверный ответ. Как нужно изменить программу, чтобы она всегда работала пра-вильно?

4. Напишите программу, которая получает с клавиатуры два целых числа и находит наибольшее и наименьшее из них.

5. Напишите программу, которая получает с клавиатуры три целых числа и находит наибольшее и наименьшее из них.

6. *Напишите программу, которая получает с клавиатуры возасты трёх человек (Антона, Бориса и Виктора) и определя-ет, кто из них старше.

7. Напишите программу, которая получает три числа рост трёх спортсменов, и выводит сообщение «По росту.», если числа введены по возрастанию (неубыванию), или сообщение «Не по росту!», если они введены в другом порядке.

8. Напишите программу, которая получает с клавиатуры номер месяца и выводит название соответствующего ему времени года или сообщение об ошибке.

9. *Напишите программу, которая получает с клавиатуры воз-раст человека (целое число, не превышающее 120) и выводит этот возраст со словом «год», «года» или «лет». Например, «21 год», «22 года», «25 лет».

10. Напишите программу, которая получает с клавиатуры це-лое число и выводит ответ на вопрос: «Верно ли, что было получено трёхзначное число?».

11. Напишите программу, которая получает с клавиатуры трёх-значное число и выводит ответ на вопрос: «Верно ли, что введённое число палиндром?» (число-палиндром читается одинаково слева направо и справа налево, например, число 151).

12. *Напишите программу, которая получает с клавиатуры трёхзначное число и выводит ответ на вопрос: «Верно ли, что все цифры введённого числа одинаковы?».

50 http://kpolyakov.spb.ru

05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин

13. *Напишите программу, которая выбирает максимальное и минимальное из пяти введённых чисел.

14. Напишите программу, которая определяет, принадлежит ли число x отрезку [a; b]. Все числа вещественные, значения x, a и b вводятся с клавиатуры. Разработайте два варианта программы: с использованием вложенных условных опера-торов и со сложным условием.

15. *Напишите программу, которая получает трёхзначное чис-ло и определяет, верно ли, что все его цифры разные (про-грамма должна вывести ответ «да» или «нет»).

16. *Напишите программу, которая получает трёхзначное чис-ло и определяет, верно ли, в его записи есть одинаковые цифры (программа должна вывести ответ «да» или «нет»).

17. *Напишите программу, которая получает четырёхзначное число и определяет, верно ли, что оно является палиндро-мом (программа должна вывести ответ «да» или «нет»). На-пример, число 2332 палиндром, а 2342 нет.

18. Напишите программу, которая решает линейное уравнение a x = b. Значения a и b известны (вводятся с клавиатуры), а x нужно найти. Все числа вещественные. Подумайте, зачем в этой задаче нужны ветвления.

19. Напишите программу, которая получает с клавиатуры но-мер месяца и определяет, сколько дней в этом месяце. При вводе неверного номера месяца должно быть выведено со-общение об ошибке.

20. Напишите программу, которая размещает случайным обра-зом две ладьи на шахматной доске и определяет, бьют ли эти ладьи друг друга.

21. Напишите программу, которая размещает случайным обра-зом двух слонов на шахматной доске и определяет, стоят ли они на полях одного цвета.

22. *Напишите программу, которая получает с клавиатуры ко-ординаты двух ферзей на шахматной доске и определяет, бьют ли эти ферзи друг друга.
51 http://kpolyakov.spb.ru

05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин

23. *Напишите программу, которая получает с клавиатуры ко-ординаты двух коней на шахматной доске и определяет, бьют ли эти кони друг друга.

24. *Напишите программу, которая получает с клавиатуры но-мер месяца и день, и определяет, сколько дней осталось до Нового года. При вводе неверных данных должно быть вы-ведено сообщение об ошибке.

25. *Напишите программу, которая получает целое число, не превышающее 100, и выводит его прописью, например,

21 «двадцать один».

26. Какую часть дерева решений нужно расширить, чтобы экс-пертная система, приведённая в параграфе, могла опреде-лять рыб по условию «если животное дышит жабрами, то это рыба»? Доработайте программу и отладьте её.

27. Разработайте небольшую экспертную систему для той об-ласти, которая вам интересна.



Темы сообщений:

а) «Выбор из многих вариантов» б) «Экспертные системы»

52 http://kpolyakov.spb.ru

05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин





Достарыңызбен бөлісу:
1   ...   15   16   17   18   19   20   21   22   ...   38




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет