8.1. Понятие условияПринятие решений зачастую зависит от различных условий. Если на улице идёт дождь, то нужно взять зонт; если хорошо подготовился к уроку, то получишь высокую отметку, иначе низкую и др. Рассмотрите примеры 8.1—8.3, показывающие использование условий в жизни человека. Человек способен понимать условия, сформулированные в произвольной форме. Но для того чтобы другой исполнитель мог принимать решения, нужно «научить» его «понимать» условия. Условия для исполнителя формулируются на формальном языке, понятном данному исполнителю
Условия могут быть простыми и составными. Простым условием называется выражение, которое включает в себя одно высказывание. Составное условие — условие, которое включает в себя несколько простых высказываний, связанных между собой логическими операциями. В примере 8.4 приведены простые условия, в примере 8.5 составные условия. Условия под одинаковыми номерами относятся к одному исполнителю. Исполнителем для первого условия может быть текстовый редактор. Второе условие может быть понятно роботу, двигающемуся по лабиринту, или компьютерному исполнителю Робот, средой обитания которого является клеточное поле. Исполнителем для третьего условия может быть человек, понимающий математику и английский язык, или компьютер, выполняющий программу на языке Python. Использование условий в алгоритмах позволяет исполнителю выполнять различные действия в зависимости от истинности или ложности условия. Составлять условия проще для формальных исполнителей (пример 8.6), которые, в отличие от человека, выполняют действия всегда одинаково. Такие исполнители имеют ограниченный набор выполняемых команд и умеют проверять несколько условий. Рассмотрите алгоритм с выбором действий в зависимости от значения условия (пример 8.7). Исполнитель Редактор может выполнять следующие команды:
От значения условия зависит, будет повторяться выполнение действий или нет: действия будут выполняться пока условие истинно (ложно). В примере 8.8 приведён алгоритм с повторением действий, пока истинно условие.
8.2. Условия для компьютерных исполнителейМногие из вас неоднократно имели дело с различными компьютерными играми. Для достижения цели игры необходимо управлять компьютерным объектом в его среде обитания. Подавая отдельные команды объекту исполнителю, вы предписываете ему выполнить то или иное действие. Некоторые действия могли выполняться только при определённых условиях, т. е. исполнитель должен был уметь проверять условия (пример 8.9). Компьютерные исполнители и среды их обитания располагаются в памяти компьютера и поэтому являются виртуальными. Прообразами компьютерных исполнителей часто являются реальные объекты, поэтому системы команд и системы условий компьютерных исполнителей могут быть близкими и понятными для человека. Многие компьютерные исполнители используются для учебных целей. В прошлом году вы познакомились с компьютерным исполнителем Черепаха. Условия для этого исполнителя приведены в примере 8.10. Но есть ещё и другие учебные компьютерные исполнители: Чертёжник, Робот, Водолей, Кузнечик, Кенгурёнок и др. Условия могут входить в систему команд исполнителя как логические высказывания. Выполняя такую команду, исполнитель проверяет, истинно условие или ложно (пример 8.11). Все компьютерные исполнители являются формальными исполнителями. Они всегда выполняют одну и ту же команду одинаково и не вникают в суть отдаваемых команд. За действия формального исполнителя всегда отвечает тот, кто им управляет. Формальные исполнители характеризуются:
В общем случае любые алгоритмы должны содержать предписания двух видов:
Это утверждение, разработанное выдающимися учёными современности в рамках общей теории алгоритмов, было доказано А. А. Марковым (младшим), являющимся создателем теории нормальных алгоритмов. |
Пример 8.1. Условия в правилах дорожного движения: если горит зелёный свет, можно переходить улицу.
Пример 8.3. Применение условия в математике. Треугольник существует, если для большей стороны а выполняется неравенство: a < b + c.
Пример 8.4. Простые условия.
Пример 8.5. Составные условия.
Пример 8.6. Характеристики формальных и неформальных исполнителей.
Пример 8.7. Алгоритм для исполнителя Редактор.
Пусть исходная цепочка символов — АВС. Длина цепочки — 3.
Рассмотрим другую цепочку символов: ABCD, длина цепочки — 4.
Пример 8.8. Алгоритм для исполнителя Вычислитель.
Работа алгоритма для числа 1024
Ответ: 4201. Алгоритм работал, пока условие было истинным. Условие стало ложным после того, как команды алгоритма (1-4) выполнились четыре раза. Работа алгоритма для числа 0
Ответ: 0. Алгоритм прекратил работу сразу после проверки условия, поскольку оно являлось ложным. Команды 2 -4 не выполнились ни разу. Пример 8.9. Игра «Сокобан»
Пример 8.10. Исполнитель Черепаха. В систему условий, истинность которых может проверять Черепаха, входят следующие:
Также для Черепахи возможна проверка условия нахождения в начале координат: position() == home() Условие можно прочитать так: текущая позиция Черепахи совпадает с её «домом» — началом координат. Пример 8.11. Исполнитель Кенгурёнок.
|
1. Что понимают под условием?
2. Какими могут быть условия?
3. Чем составные условия отличаются от простых?
4. Для чего могут использоваться условия в алгоритмах?
Упражнения
1. Наберите предложения в текстовом редакторе и выделите в них условия цветом (жёлтым — простые, зелёным — составные). Определите, все ли высказывания будут истинными.
- Если ты хочешь покататься на велосипеде или на самокате, то нужно сделать уроки.
- Я сегодня пойду на тренировку, если не будет дождя.
- Деньги служат тебе, если умеешь ими пользоваться, если же не умеешь, властвуют над тобой.
- Я помогу ей с задачей по математике, если она попросит меня об этом и не будет со мной спорить.
2. Откройте файл. Дополните условиями предложения в файле.
- Бактерии быстро размножаются и образуют группы (колонии), … .
- Будешь уважать традиции своих предков и гордиться их поступками и достижениями, … .
- Вероятность ошибок при письме снижается, … .
- В корне жог/жёг пишется буква о, … .
3. Сформулируйте и запишите в тетрадь условия, при которых можно выполнить следующие действия.
- Начать набор нового абзаца текста в текстовом редакторе.
- Увидеть результат работы программы для исполнителя Черепаха.
- Определить, какая из двух точек, заданных координатами, находится ближе к центру координат.
- Определить, есть ли среди цифр натурального трёхзначного числа одинаковые.
4. Исполнитель Попрыгунчик обитает в следующей обстановке.
Попрыгунчик может прыгать из той клетки, где он находится, в одну из четырёх соседних, но не может перепрыгивать через стены.
Запишите в тетрадь:
- Номера клеток, в которых может находиться Попрыгунчик, чтобы совершить один прыжок в определённом направлении. Например, вверх — A l, В1, … .
- Условия, при которых Попрыгунчик может прыгать в определённом направлении.
- Номера клеток начальных положений Попрыгунчика и условие, при котором Попрыгунчик, находясь в этих клетках, сможет совершить три прыжка влево.
5*. Поле шахматной доски может быть указано парой натуральных чисел, каждое из которых не превосходит 8: первое число — это номер по вертикали, второе — по горизонтали. Даны натуральные числа k, l, m, n. Запишите простое условие, которое будет истинным тогда и только тогда, когда поля (k, l) и (m, n) являются полями одного цвета.









