Как найти алгоритм с ветвлением

Вопросы занятия:

·                  
алгоритмы
с ветвлениями.

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

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

Для принятия решения ход рассуждений может быть таким:

Полная форма записи:

ЕСЛИ <условие> ТО <одна последовательность
команд> ИНАЧЕ <другая последовательность команд>

Например,

Если знать, где упадёшь, то соломки подстелешь, иначе
разобьёшь нос.

         Иногда, встречаются ситуации, когда вторая
последовательность команд отсутствует, то есть сокращённая форма записи.

ЕСЛИ <условие> ТО <одна последовательность
команд>

Например,

Если цветут ландыши, то пришла весна.

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

Рассмотрим такую ситуацию: шестиклассница Таня
принялась за уроки. Таня решила позвонить Никите. Если Никита ответит, то
сделать информатику, если он не ответит, то позвонить Маше. Если Маша ответит,
то разобраться с математикой, иначе (если Маша не ответит) выучить
стихотворение по литературе.

Изобразим с помощью блок-схемы последовательность
действий Тани:

Начало алгоритма (Таня решила позвонить). Далее
Условие для принятия решения (Никита ответил) если да – то делать информатику;
если нет – то следующее действие (позвонить Маше). Далее – условие (Маша
ответила), если да – то разобраться с математикой, если нет – учить
стихотворение по литературе. Конец алгоритма.

Итак, Вы заметили, что Таня совершала действия, в
зависимости от выполнения или невыполнения определённого условия, то есть
действовала по алгоритму с ветвлением.

Даже в русских народных сказках героям приходится
принимать решения. Давайте вспомним Илью Муромца.

И отправился в путь Илья Муромец по Земле Русской.

Долго ехал иль коротко да выехал он к трём
дороженькам. Камень лежит, а на нём написано:

«Прямо пойдёшь — жену найдёшь, влево пойдёшь –
богатство найдёшь, вправо пойдёшь – смерть найдёшь».

Задумался Илья Муромец:

«Жену искать – да женат уже, на Алёнушке, богатство
вовсе мне не надобно! Поеду смерть искать, на роду мне смерти не написано».

И пошёл Илья дорогой правою.

Опишем алгоритм действий Ильи Муромца в словесной
форме:

То есть, если рассматривать ситуацию с Ильёй Муромцем
мы видим, что, выбрав одну из дорог, герой определил свою дальнейшую судьбу.

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

Имеется 5 одинаковых, пронумерованных медальонов. Но
один из них фальшивый. Он легче остальных (4 медальона имеют одинаковый вес).
Требуется при помощи 2 взвешиваний на чашечных весах без гирь найти фальшивый
медальон.

Алгоритм решения этой задачи может быть, например,
таким:

Положим на первую чашу весов медальоны 1 и 2 на вторую
3 и 4. Если весы в равновесии, то фальшивый медальон 5.

Иначе, если первая чаша весов поднялась вверх, то
убираем медальоны и положим на первую чашу весов медальон 1, а на вторую
медальон 2. Далее

если первая чаша весов поднялась вверх, то фальшивый
медальон 1, иначе фальшивый медальон 2.

Если вторая чаша поднялась вверх, убираем медальоны и
положим на первую чашу весов медальон 3, а на вторую медальон 4. Если первая
чаша весов поднялась вверх, то фальшивый медальон 3, иначе фальшивый медальон
4.

С помощью блок-схемы решение данной задачи можно
изобразить так:

Начало.

Выполняемое действие: Положим на первую чашу весов
медальоны 1 и 2 на вторую 3 и 4.

Далее условие: смотрим на весы. Весы в равновесии?
Если да, то Вывод: фальшивый медальон 5. Если нет, то Вывод: фальшивый медальон
на поднявшейся вверх чаше весов.

Следующее Условие – Какая чаша весов поднялась вверх?

Если первая, то Действие: положим на первую чашу весов
медальон 1, а на вторую медальон 2.

Условие: Какая чаша весов поднялась вверх? Если первая
то, вывод – фальшивый медальон 1. Иначе (если поднялась вторая чаша) фальшивый
медальон 2.

Если вторая, то Действие: положим на первую чашу весов
медальон 3, а на вторую медальон 4.

Условие: Какая чаша весов поднялась вверх? Если первая
то, вывод – фальшивый медальон 3. Иначе (если поднялась вторая чаша) фальшивый
медальон 4.

Конец алгоритма.

Таким образом, в этой задаче, фальшивый медальон, мы
нашли за два взвешивания.

Давайте разработаем свой алгоритм с ветвлениями на
компьютерном практикуме. Создадим презентацию с гиперссылками «Времена года», с
помощью редактора презентаций PowerPoint. Сделаем презентацию, в которой, в
зависимости от принятого Вами решения (по алгоритму с ветвлениями) будут
меняться слайды.

Напомним, что открыть программу PowerPoint можно нажав
в меню Пуск – Все программы
– Microsoft Office – Microsoft PowerPoint 2010.

Выберем вкладку Главная, затем в группе Слайды
нажмём на кнопку Макет нам нужен слайд Заголовок и объект.

В поле Заголовок слайда введём название «Времена
года». Для того чтобы у нас получился индивидуальный заголовок, перейдём на
вкладку Форматирование и с помощью инструментов группы Стили WordArt выберем
понравившийся Вам вид.

 Затем в поле Текст слайда перечислим все времена
года. Выделим получившийся список и перейдём на вкладку Главная. Используя
инструменты группы Шрифт отредактируем список.

На вкладке Главная нажимаем Создать слайд на кнопке
Макет выбираем Два объекта.

Озаглавим слайд «Зима», и сделаем заголовок красочным
и индивидуальным.

Заполним одно из полей стихотворением о зиме. Для
этого, на вашем компьютере, в Вашей рабочей папке, откроем папку «Времена
года». В данной папке находится текстовый документ «Стихи». Нам необходимо
открыть его и скопировать стихотворение о зиме. Затем ставим курсор в поле
«Текст слайда» и нажимаем Вставить.

В другое поле вставим рисунок Зима из папки «Времена
года». Для этого в поле нажимаем Рисунок. На компьютере выбираем папку «Времена
года», затем рисунок зима.

Точно также создадим слайды «Весна», «Лето» и «Осень».

Нам необходимо связать слово «зима» с подходящим к
нему слайдом, то есть, создать гиперссылку. Для этого перейдём на первый слайд,
выделим слово «Зима» и нажмём Вставка — Гиперссылка.

Затем в окне Вставка гиперссылки выберем Связать с: –
местом в документе. Это будет слайд Зима. Заметьте, слово «зима» на первом
слайде изменилось.

Точно также создаём гиперссылки от слов «Весна»,
«Лето», «Осень».

Добавим на каждый слайд Зима, Весна, Лето и Осень
управляющую кнопку, которая осуществляет переход на первый слайд.

Для этого:

перейдём на вкладку Вставка;

в группе Фигуры выберем среди управляющих кнопок
кнопку В начало;

растянем кнопку до нужного нам размера;

в окне Настройка действия установим переход по
гиперссылке на первый слайд.

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

Сохраним презентацию при помощи вкладки Файл,
Сохранить как в своей рабочей папке. Указываем путь и задаём имя Времена года.
Нажимаем кнопку сохранить.

Итак, в нашей презентации «Времена года» ветвление –
это переход и открытие выбранного нами слайда.

Таким образом, сегодня на уроке мы узнали, что:

Ветвлением
называется форма организации действий, при которой в зависимости от выполнения
или невыполнения некоторого условия совершается либо одна, либо другая последовательность
действий.

Для записи алгоритма с ветвлениями используется полная
и сокращённая формы записи.

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

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

Algo_970x90-20219-0c5b45.png

В предыдущей статье шла речь об алгоритмах, их особенностях и свойствах. Особое внимание было уделено линейной структуре как самому простому способу реализации. Сегодня поговорим о более сложных алгоритмах, обладающих разветвлённой структурой. Но прежде чем продолжать, следует кое-что вспомнить.

Алгоритм – это ясный перечень действий, который направлен на решение какой-либо задачи. Одно из свойств алгоритма — дискретность. Дискретность связана с наличием в алгоритмической последовательности ряда операций (этапов, действий), выполняемых пошагово, то есть дискретно. Алгоритм обладает свойством дискретности, так как он представляет собой процесс решения задачи в виде последовательного выполнения простых шагов. И каждое действие исполняется лишь после окончания исполнения предыдущего. Также предполагается наличие определённых исходных данных и результата выполнения.

Блок-схема — графический способ описания алгоритмов. Графическое представление обеспечивает наглядность и упрощает запись, делая последовательность более понятной. При использовании схемы каждому действию соответствует определённая геометрическая фигура (эти фигуры называют блоками). Вот наиболее часто употребляемые:

1-1801-45f906.png

Ещё раз о линейности

Линейная последовательность — самая простая из возможных структур. При наличии линейности команды выполняются в чёткой последовательности и в порядке их записи, то есть друг за другом. Вот линейная алгоритмическая последовательность посадки дерева:
1) выкапывание ямки в земле;
2) размещение в ямке саженца;
3) закапывание ямки;
4) поливание места посадки водой.

Такой линейный алгоритм имеет следующую блок-схему:

2-1801-c5c0b7.png

А вот и общая схема линейного алгоритма:

3-1801-35f267.png

Ветвление в алгоритмических последовательностях

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

4-1801-2c4a5c.png

«Направо пойдёшь — жену найдёшь, налево пойдешь — богатым будешь, прямо пойдёшь — смерть найдёшь».

Подобная ситуация заставляет принимать решения с учётом определённого условия. Если нужна жена, то витязь идёт направо, если богатство, то налево, если жизнь не мила, то прямо. Условия, которые влияют на решение, располагаются между словами «если» и «то».

От значения условий зависит дальнейшее поведение. Когда условие выполняется, оно принимает значение «истина», когда нет — «ложь». Иногда анализ ситуации и выбор не вызывают особых затруднений, а иногда принять решение очень трудно. А всё потому, что принимающий решение пытается продумать каждый из вариантов и предугадать последствия выбора. Нельзя не вспомнить гроссмейстера, который анализирует позицию на ходы вперёд, прежде чем передвинуть фигуру на шахматной доске.

Компьютерные программы и игры тоже построены на выборе действий. А блок-схема при наличии ветвления приобретает иной вид:

4.1-1801-fa94a6.png

Логика разветвляющих алгоритмов

Логику можно описать следующим образом:

ЕСЛИ <условие истинно> ТО <действие 1> ИНАЧЕ <действие 2>

Ветвление — метод и форма организации действий, когда в зависимости от выполнения определённого условия совершается та либо иная последовательность шагов.

Algo_970x90-20219-0c5b45.png

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

5-1801-c7b186.png

Для закрепления можно решить задачу.

Есть 3 монеты одинакового достоинства. Одна из монет фальшивая (известно, что она имеет меньший вес). Найдите фальшивую монету на чашечных весах без гирь с помощью только одного взвешивания.

Решение легко описывается посредством схематических блоков:

6-1801-145fea.png

Следующий пример легко экстраполируется в жизнь. Речь идёт об алгоритме для перехода дороги при наличии светофора. Он имеет следующий вид:
1. Подходим к светофору.
2. Смотрим, какой горит свет.
3. Если зелёный, переходим дорогу.
4. Если красный, ждём, пока загорится зелёный, а потом переходим дорогу.

Соответствующая блок-схема:

7-1801-391350.png

Программный способ записи

Чтобы алгоритм было понятен компьютеру, машине и любой другой цифровой системе, следует оформить его в таком виде, который эта система способна воспринимать. То есть надо написать программу, используя для этого команды из СКИ. СКИ — это список команд исполнителя — перечень команд, ему понятных. А любой исполнитель способен исполнить лишь те команды, которые включены в его СКИ, а если говорить человеческим языком — входят в набор его компетенций.

Для примера можно реализовать алгоритм на языке программирования Pascal. Исходя из вышесказанного, следует использовать команды, входящие в терминологию Pascal.

Простейший пример описания алгоритма с разветвляющейся структурой — условный оператор IF. Полная конструкция этого условного оператора имеет следующий вид:

if<логическое выражение>then<оператор 1>else<оператор 2>

Здесь if — это «если», then — это «то», else — «иначе».

Условный оператор работает просто:
— вычисляется значение логического выражения, которое расположено после служебного слова IF;
— если результат — истина, выполняется оператор 1, который размещён после THEN, причём действие после ELSE пропускается;
— если результат — ложь, пропускается уже действие после THEN, а действие после ELSE выполняется с помощью оператора 2.

Теперь можно вспомнить пресловутого витязя на распутье и написать простую программу, реализующую этот алгоритм с помощью соответствующих условных операторов.

program Algoritm_vetvlenia;
Var x :string;
Begin
WriteLn ('Витязь, куда путь держишь?');
ReadLn (x);
If x='Направо'  then  writeLn ('Направо пойдёшь — жену найдёшь');
If x='Налево'  then  writeLn ('Налево пойдешь — богатым будешь');
If x='Прямо'  then  writeLn ('Прямо пойдёшь — смерть найдёшь');
ReadLn;
End.

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

Algo_970x550-20219-265dfd.png

Источники:
• http://informatic.hop.ru/p33.htm;
• https://interneturok.ru/lesson/informatika/6-klass/algoritm-i-ispolniteli/prakticheskaya-rabota-2-sostavlenie-algoritmov;
• https://www.turbopro.ru/index.php/algoritmizatsiya-i-ispolniteli/5210-algoritmy-ponyatie-i-vidy-algoritma-blok-skhemy;
• https://www.yaklass.ru/p/informatika/6-klass/algoritmy-14002/tipy-algoritmov-13610/re-61ead1ff-bc77-453f-ac99-e46da267f3f3.

Линейный алгоритм (следование) — это алгоритм, который описывает последовательно выполняющиеся действия.

Рассмотрим простой пример линейного алгоритма.

Алгоритм «Открой дверь».

  1. Начало.
  2. Достань ключ из кармана.
  3. Вставь ключ в замочную скважину.
  4. Поверни ключ два раза.
  5. Вытащи ключ.
  6. Конец.

Изобразим данный алгоритм графически, с помощью блок-схемы.

следование.png

Алгоритм с ветвлением (разветвляющийся) — это алгоритм, в котором в зависимости от результатов проверки условия выполняется либо одно действие, либо другое.

Редко в нашей жизни встречаются ситуации, когда известна чёткая последовательность действий. Часто мы стоим перед выбором и принимаем решение в зависимости от ситуации. Если на улице светит солнце, то зонт и дождевик оставим дома, иначе всё это возьмем с собой. Но выбор не всегда бывает таким простым.

Общий вид: ЕСЛИ <условие> ТО <действие (1)> ИНАЧЕ <действие (2)>.

Рассмотрим пример алгоритма «Купи мороженное».

мороженое.png

Разветвляющиеся алгоритмы. Команда ветвления

Существует широкий
круг задач, при решении которых необходимо
сделать определенный выбор в зависимости
от выполнения некоторых . Процесс решения
таких задач описывается алгоритмом,
тип которого определяется как
разветвляющийся.
В разветвляющихся алгоритмах принцип
линейного автоматического перехода от
команды к команде, от действия к действию
в порядке естественного следования не
является всеобщим, так как иногда
возникает необходимость произвольного
перехода к предписанию, то есть нарушения
линейности переходов. Ветвящиеся
алгоритмы допускают два способа
представления — графический и словесный.

При графическом
представлении алгоритма ветвление
(развилка, выбор дальнейших действий)
организуется с помощью логического
элемента (ромб с записанным внутри
условием), имеющего один вход и два
выхода. Назначение логического элемента
— проверка заданного условия. В
зависимости от выполнения (истинности)
или невыполнения (ложности) проверяемого
условия возможен выход соответственно
на ветвь “Да
или “Нет“.
Пример:

Задача.
Вычислить y = |x|.

Дано:
х
– значение аргумента.

Требуется:
у
– значение функции.

Метод решения:
y
=

Алгоритм решения
данной задачи сначала составим в
графической форме (Рис. 2).

Рис. 2

Словесная форма
алгоритма
.

Начало

Запросить
значение переменной x

Если
х>=0

то

y:=х

иначе

у:=–х

Конец ветвления

Вывести
значение переменной у

Конец

Общий вид полной
условной конструкции, реализующей
ветвление при графическом представлении
алгоритма, изображен на Рис. 3. Здесь Q
— проверяемое условие; Т — действие,
которое должно быть выполнено в случае
истинности условия Q
(положительная ветвь ветвления); Р —
действие, выполняемое, если условие Q
ложно (отрицательная ветвь ветвления).

Рис. 3

Рис. 4

При словесном
представлении алгоритма полная условная
конструкция реализуется командой
ветвления

вида:

Если
Q

то

T

иначе

P

Конец
ветвления

Но возможен и
другой вариант — неполная
условная конструкция

(Рис. 4), достаточно часто встречающаяся
при решении задач.

При словесном
представлении алгоритма ей отвечает
команда ветвления:

Если
Q

то

T

Конец
ветвления

Циклические алгоритмы

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

Однако “неоднократно”
не значит “до бесконечности”.
Организация циклов, никогда не приводящая
к остановке в выполнении алгоритма (так
называемое “зацикливание”), является
нарушением требования его результативности
— получения результата за конечное
число шагов.

Рассмотрим
графическое представление циклического
блока алгоритма (Рис. 5). В него входят в
качестве базовых следующие структуры:
логический элемент с проверкой условия
Q
и блок S,
называемый телом
цикла
. Здесь
тело цикла S
расположено после проверки условия Q
(цикл с
предусловием
),
поэтому может случиться, что при
определенных условиях блок S
не выполнится ни разу. Такой вариант
организации цикла, управляемый
предусловием, называется цикл-пока.

Рис. 5

При словесном
представлении алгоритма команда,
организующая повторение в цикле-пока
имеет вид:

Пока
Q
повторять

S

Конец
цикла

Таким образом,
если Q
не выполняется, то предусмотрен выход
из цикла на команду, записанную после
строки “Конец цикла”. Здесь условие
Q
— это условие на продолжение цикла.

Возможен другой
случай, когда тело цикла S выполняется,
по крайней мере, один раз и будет
повторяться до тех пор, пока не выполнится
условие Q (Рис. 6). Такая организация
цикла, когда тело цикла, расположено
перед проверкой условия Q,
носит название цикла
с постусловием

или цикла-до.
Истинность условия Q
в этом случае — причина окончания цикла.
Команда, организующая цикл-до,
приведена ниже:

Рис. 6

Повторять

S

пока
не
Q

Конец
цикла

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

План урока:

Программирование разветвляющихся алгоритмов

Определение разветвляющегося алгоритма

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

Формы записи условного оператора if

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

Циклический оператор while

Программирование разветвляющихся алгоритмов

Не все алгоритмы можно представить в виде списка действий. Бывают случаи, когда на выполнение чего-либо влияют определённые факторы. Например, если погода будет хорошей, то Настя пойдёт гулять и есть мороженое, однако, если погода будет плохой – она будет сидеть дома и делать уроки. В данном случае, окончательное действие зависело от того, какой будет погода. Это и есть условие выполнения.

1 kakaya budet pogoda

Определение разветвляющегося алгоритма

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

2 shema

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

Простые условия содержат одно логическое (булево) выражение, то есть такое утверждение, которое является либо истинным, либо ложным.

Логическое выражение может быть представлено как одним идентификатором логического типа, так и двумя идентификаторами или выражениями, между которыми стоит знак логической операции отношения, позволяющей сравнить их между собой. К операциям отношения относятся:

  • > (больше);
  • < (меньше);
  • >= (больше или равно);
  • <= (меньше или равно);
  • <> (не равно);
  • = (равно).

Примеры простых логических выражений:

  • Value (идентификатор Value должен иметь логический тип данных);
  • a – b <> 5 (истинно, если a – b не равно 5);
  • c >= 10 + 11 (истинно, если c имеет значение 21 или больше);
  • 7 > 8 (это выражение всегда ложно);
  • ‘бабушка’ <> ‘дедушка’ (это выражение всегда истинно).

Первые три выражения имеют в своём составе переменные или константы, следовательно, об истинности всего выражения можно говорить только когда эти идентификаторы будут иметь какие-то определённые значения:

  • Если a = 5, b = 3, то второе выражение является истинным. Однако, если a = 5, b = 0, то результатом их разности будет число 5, которое делает это выражение ложным.
  • Если c = 9, то третье выражение будет ложным, при этом, если с имеет значение 21 и более, то выражение будет истинным.

Составные условия представляют выражения, составленные из нескольких логических выражений, соединённых при помощи служебных слов and («И», логическое умножение) или or («ИЛИ», логическое сложение), например:

  • p and q (истинно, если истинны обе логические переменные – p И q);
  • a > b or x < 7 (истинно, если a > b, ИЛИ если x < 7);
  • c < 3 or d > 5 and x <> 2 (истинно, если c < 3, ИЛИ если d > 5 И x <> 2).

В третьем примере сначала определяется истинность выражения d > 5 and x <> 2, а затем выполняется операция or, поскольку логическое умножение, как и арифметическое, имеет приоритет над сложением.

Вложенные ветвления представляют собой условие внутри условия. Когда «условие 1» будет принимать истинное значение, программа перейдёт на проверку «условия 2», иначе – выполнится «ветвь 1». Если «условие 2» окажется истинным, то выполнится «ветвь 3», иначе – «ветвь 2». Таким образом, «условие 2» является вложенным в «условие 1».

tablica primer algoritma

Какие условные операторы языка Паскаль позволяют описывать подобные разветвленные алгоритмы?  На этом уроке мы продолжим разбор условного оператора if и рассмотрим различные его формы.

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

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

Формы записи условного оператора if

Неполный условный оператор if включает в себя служебное слово if («если»), за которым следует условие – простое либо составное логическое выражение, после которого пишется слово then («то»). Далее указывается оператор, выполняемый тогда, когда заданное условие является истинным. В конце оператора ставится точка с запятой:

if <условие> then <оператор 1>;

Полный условный оператор if, в дополнение к «оператору 1», выполняющемуся при истинности условия, добавляет «оператор 2», который выполняется если условие ложно. При этом после «оператора 1» пишется служебное слово else («иначе»), за которым следует «оператор 2», а разделитель точка с запятой переносится в конец оператора:

if <условие> then <оператор 1> else <оператор 2>;

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

if <условие> then

    <оператор 1>

else

    <оператор 2>;

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

Составной оператор в Паскале применяется тогда, когда в одной из ветвей нужно выполнить более одного оператора. Составной оператор начинается со служебного слова begin и завершается служебным словом end. В промежутке между этими двумя словами находятся операторы, выполнение которых происходит в том порядке, в котором они записаны. Составные операторы могут применяться везде, где применяются простые операторы, и также как простые операторы, они должны отделяться точкой с запятой по тем же правилам. Пример использования составного оператора в конструкции if..then..else:

if <условие> then

    begin

        <оператор 1>;

        <оператор 2>;

    end

else

    begin

        <оператор 3>;

        <оператор 4>;

    end;

В данном примере, в случае истинности условия будут выполняться операторы 1 и 2, в случае ложности – операторы 3 и 4.

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

Так как «оператор 1» в примерах выше может быть любым допустимым оператором языка Паскаль, никто не запрещает использовать вместо него еще один оператор if, создавая таким образом вложенные условные операторы:

if <условие 1> then

    if <условие 2> then

        <оператор 1>

     else

    <оператор 2>

else

    <оператор 3>;

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

Однако, на этом многообразие операторов ветвления не заканчивается. Так, для разветвляющихся циклических алгоритмов применяется оператор while.

Циклический оператор while

Если нужно создать цикл, то циклический оператор while отлично подходит для этой задачи. Он используется тогда, когда неизвестно точное число повторений одних и тех же действий. Однако, эти действия могут не выполниться ни разу. Оператор while записывается следующим образом:

While <условие> do

    <оператор 1>;

Выполнение действий, заключённых в операторе 1, продолжается до тех пор, пока логическое выражение в условии принимает истинное значение. Когда условие станет ложным, программа выйдет из цикла и перейдёт к выполнению последующих команд.

Задачи

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

Задача 1. Необходимо создать программу, которая на вход будет получать 2 числа, а выводить наибольшее из них. Если числа одинаковы, то нужно вывести любое из них.

Решение.

3 reshenie algoritmov

Шаг 1. Необходимо ввести наименование программы. В данном случае это будет решение первой задачи.

Шаг 2. Учитывая, что числа, которые получит программа и запишет в переменные a и b, будут относиться к численному типу данных, необходимо указать тип integer.

Шаг 3. После записи слова begin, обозначающего начало командного блока, нужно записать текст, который программа будет выводить изначально. Так как на вход должны подаваться два числа, так и записывается: «Введите два числа: ».

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

Шаг 5. Появление условного оператора if. В данной задаче необходимо вывести наибольшее число, поэтому условием будет сравнение чисел.

Шаг 6. Проверка написанного кода программы и правильности выводящихся данных. Если значение a больше значения b, то программа выводит значение, закреплённое за переменной a. В противном случае, программа выведет число b. Если числа одинаковы, то программа автоматически перейдёт к выполнению оператора, записанного после слова else, так как числа одинаковы, нет разницы в том, какое из них выводить.

Задача 2. На вход программа получает 3 числа, которые обозначают длины различных отрезков. Необходимо выяснить, можно ли построить с помощью этих отрезков треугольник. Если да, то каким он будет: тупоугольным, прямоугольным или остроугольным.

Решение.

3 reshenie k zadace 2 poisk algoritma

Шаг 1. Для решения этой задачи понадобятся минимальные знания в области математики. Изначально необходимо помнить, что в прямоугольном треугольнике сумма квадратов катетов равна квадрату гипотенузы, в тупоугольном треугольнике сумма квадратов двух наименьших сторон меньше квадрата наибольшей, а в остроугольном то же самое, но наоборот: сумма квадратов двух наименьших сторон больше квадрата наибольшей.

Шаг 2. Построение кода программы. Для начала необходимо дать ей название.

Шаг 3. Указывается тип данных. Поскольку данные, которые получает программа, относятся к численному типу данных, то после названий переменных нужно написать integer.

Шаг 4. После этого пишется запрос программы, в случае со второй задачей текст будет выглядеть так: «Введите длины трёх отрезков в порядке возрастания: ».

Шаг 5. Запись оператора, который поможет программе получить данные.

Шаг 6. Запись и представление примерной работы всех необходимых условий. Изначально нужно понять, образуют ли отрезки какой-либо треугольник, для этого записывается условие, дословно переводящееся как «если c< a+b тогда». Если его значение будет истинным, то программа перейдёт к дальнейшим условиям, таким как «если квадрат c равен сумме квадратов a и b» и так далее.

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

Задача 3. Нужно найти минимальное целое число a, при котором равенство 3a > n является истинным. На вход подаётся число n, большее чем единица.

Решение.

5 postroenie koda

Шаг 1. Для начала необходимо дать программе название.

Шаг 2. Учитывая, что на вход подаётся целое число, указать тип данных, в данном случае – integer.

Шаг 3. Запись командного блока. Нужно написать слово, обозначающее начало, begin.

Шаг 4. Первоначальный вывод программы. Необходимо написать то, что программа будет выдавать в первую очередь. В данном случае, она будет запрашивать число, запрос так и пишется: «Введите число: » .

Шаг 5. Запись необходимых операторов. Используя оператор readln программа считывает данные и переводит курсор на новую строку. Далее она производит операции над поступившими данными.

Шаг 6. Запись цикла. «Пока 3*а меньше или равно n» она будет прибавлять к a по единице. После того, как цикл закончится, программа выведет итоговое значение a, которое и будет ответом к задаче.

Шаг 7. Проверка правильности записи алгоритма. В конце программного блока, после слова end нельзя забывать точку, её обязательно нужно поставить.

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

Решение.

6 kod algoritmy informatika

Шаг 1. Для решения данной задачи понадобится вспомнить операции mod и div в Паскале. Div возвращает целую часть при делении какого-то числа на какое-то число. К примеру, если 5 поделить на 3, то в остатке будет 2. При записи 5 div 3 программа выдаст значение 1, тк 5 делится на 3 ровно 1 раз. Mod возвращает остаток от деления. При записи 5 mod 3 программа выдаст значение 2, поскольку остаток от деления 5 на 3 равен 2. Как же решать эту задачу?

Шаг 2. Записать название программы. В данном случае будет «Задача 4».

Шаг 3. Указание типа вводимых данных. Longint представляет тип данных с длинными целыми числами, к нему можно отнести подающееся на вход число (а) и цифру, которую нужно удалить (b). Следующим типом будет byte, он представляет целый беззнаковый тип.

Шаг 4. После этого следует командный блок. Вписываются 2 оператора readln, позволяющие программе считать необходимые данные.

Шаг 5. Запись цикла. В данной программе лучше всего использовать цикл «Пока a больше 0». Здесь идёт пример составного оператора. После присвоения переменной m нового значения программа переходит к условию «Если m не равно n, тогда», при истинности которого присваивает переменной b новое значение. Из выполненного условия программа переходит к присвоению переменной a нового значения, равному целой части от деления числа, заключённого в a, на 10. После выполнения всех действий и условий в первом цикле, программа переходит ко второму циклу «Пока b больше 0». В нём она присваивает переменным a и b новые значения.

Шаг 6. Проверка кода программы. После окончания всех циклов она должна вывести итоговое число и завершить свою работу.

Добавить комментарий