§19. Ветвления | Сложные условия

Планирование уроков на учебный год (по учебнику К.Ю. Полякова, Е.А. Еремина, базовый уровень)


Уроки 16 - 17
§19. Ветвления



Содержание урока

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

Составной оператор

Ветвления в других языках программирования

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

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

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

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

Выводы. Интеллект-карта

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

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

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

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

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


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


Предположим, что ООО «Слонопотам» набирает сотрудников, возраст которых от 25 до 40 лет включительно. Нужно написать программу, которая запрашивает возраст претендента и выдаёт ответ: подходит он или не подходит по этому признаку. 

Какое же условие должно быть истинно для того, чтобы человека приняли на работу? Одного условия «возраст >= 25» недостаточно, это условие соблюдается и для людей старше 40 лет. Вместе с тем условия «возраст <= 40» тоже недостаточно, так как оно выполняется и для школьников. В этой задаче нужно, чтобы два условия выполнялись одновременно: «возраст >= 25» и «возраст <= 40».

Пусть в переменной v записан возраст сотрудника. Запишите решение этой задачи с помощью вложенных условных операторов.

Эту задачу можно решить с помощью вложенного условного оператора, но решение получается некрасивое: оно запутанное, кроме того, один и тот же ответ «не подходит» приходится выводить в двух местах программы.

Почти во всех языках программирования можно использовать так называемые сложные условия. В нашем случае условный оператор будет выглядеть так:

Это решение получилось значительно короче и понятнее.

Здесь в условном операторе мы записали сложное условие

v>=25 и v<=40               (v>=25) and (v<=40)

составленное из двух простых с помощью операции И. В алгоритмическом языке операция И записывается как строчная буква и, а в Паскале вместо «и» используется английское слово and.

Обратите внимание, что в Паскале каждое простое условие заключается в скобки. Это связано с тем, что в этом языке отношения выполняются позже (имеют более низкий приоритет), чем операция И.

Операция И означает одновременное выполнение двух или нескольких условий.

Что будет выведено на экран после выполнения программы?

Предположим, что нам надо убедиться, что значение целой переменной а — трёхзначное число, которое делится на 7. Для этого нужно, чтобы одновременно выполнились три условия:

1) число не меньше 100 (> 99);
2) число меньше 1000;
3) число делится на 7, т. е. остаток от его деления на 7 равен нулю.

В условном операторе тогда нужно использовать две операции И, которые связывают три простых условия:

Вот решение на Паскале:

Рассмотрим ещё одну задачу. В переменной d записан номер дня недели (1 — понедельник, ... 7 — воскресенье). Программа должна определить, выходной это день или рабочий (выходные дни у большинства людей — суббота и воскресенье).

Если мы напишем условие d=6 и d=7, то это будет неверно, потому что тогда мы потребуем, чтобы значение переменной d было одновременно равно и 6, и 7. Такого быть не может, поэтому условие всегда будет ложно. Значит, операция И не подходит. Вместо неё нужно применить другую операцию — ИЛИ, которая требует выполнения хотя бы одного из набора условий.

Операция ИЛИ означает выполнение хотя бы одного из двух или нескольких условий.

Решение нашей задачи выглядит так:

В языке Паскаль операция ИЛИ обозначается словом or (в переводе с английского — «или»).

Напишите другой вариант решения последней задачи, использующий операцию И.

В обоих языках существует ещё одна операция, которую можно использовать в сложных условиях, — НЕ, в Паскале она обозначается словом not (в переводе с английского — «не»).

Операция НЕ означает обратное условие (противоположное исходному).

Например, решение задачи определения выходных дней можно было записать так:

Используя операцию НЕ, можно записывать условия по-разному, как нам удобнее в каждом случае. Например, условия а=b и не (а<>b) истинны для одних и тех же значений а и b, поэтому одно из них можно заменить на другое. Такие условия называются равносильными.

Запишите в тетради равносильные условия, не используя операцию НЕ:

Операции И, ИЛИ и НЕ — это логические операции, которые мы будем подробно изучать в 9 классе. Они работают с логическими значениями («да»/«нет», «истина»/«ложь»).

Если в сложном условии встречается несколько разных операций, они выполняются в следующем порядке (во всех случаях — слева направо):

1) операции в скобках;
2) операции НЕ;
3) операции И;
4) операции ИЛИ.

Изменить порядок действий можно с помощью круглых скобок.

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

не (а>10) или не(а<20) и (а<b) Паскаль:

not(а>10) or not(а<10) and (a<b)

Определите, истинно или ложно это выражение при а = 5, b = 10.

Для выражения в предыдущем задании запишите равносильное выражение без использования операции «НЕ». После этого расставьте одну пару скобок так, чтобы значение выражения при а = 5, b = 10 изменилось на обратное.

Следующая страница Логические переменные



Cкачать материалы урока







Наверх