Рассмотрим несколько задач, решение которых на компьютере получается с помощью ветвящихся алгоритмов.
Первая задача: даны два числа; выбрать большее из них.
Пусть исходными данными являются переменные А и В. Их значения будут задаваться вводом. Значение большего из них должно быть присвоено переменной С и выведено на экран компьютера. Например, если А = 5, В = 8, то должно получиться: С = 8.
Блок-схема алгоритма решения этой задачи изображена на рис. 4.1.
Рис. 4.1. Алгоритм выбора большего из двух чисел (с полным ветвлением)
Нетрудно понять смысл этого алгоритма. Если значение переменной А больше, чем В, то переменной С присвоится значение А. В противном случае, когда А < В, переменной С присвоится значение В.
Условием, по которому разветвляется алгоритм, является отношение неравенства А > В. Изучая базы данных и электронные таблицы, вы узнали, что такое отношение является логическим выражением. Если оно справедливо, то результатом будет логическая величина «истина» и выполнение алгоритма продолжится по ветви «да»; в противном случае логическое выражение примет значение «ложь» и выполнение алгоритма пойдет по ветви «нет».
Алгоритм с ветвлением
До выполнения на компьютере правильность алгоритма можно проверить путем заполнения трассировочной таблицы. Вот как будет выглядеть трассировка нашего алгоритма для исходных значений А = 5, В = 8.
Ветвление является структурной командой. Его исполнение происходит в несколько шагов: проверка условия (выполнение логического выражения) и выполнение команд на одной из ветвей «да» или «нет». Поэтому в трассировочной таблице записываются не команды алгоритма, а отдельные операции, выполняемые компьютером на каждом шаге.
В алгоритме на рис. 4.1. используется полное ветвление. Эту же самую задачу можно решить, применяя структурную команду неполного ветвления. Блок-схема такого алгоритма изображена на рис. 4.2.
Рис. 4.2. Алгоритм выбора большего из двух значений (с неполным ветвлением)
Выполните самостоятельно трассировку этого алгоритма для вариантов 1) А = 0,2, В = 0,3; 2) А = 7, В = 4; 3) А = 5, В = 5. Если вы все проделаете правильно, то убедитесь, что алгоритм верный.
А теперь запишем рассмотренные алгоритмы на Алгоритмическом языке (АЯ). Во-первых, нужно решить вопрос о том, как описать переменные в этом алгоритме. Вспомним, что для всех переменных в алгоритме на Алгоритмическом языке необходимо указать их тип.
Переменные А, В, С — числовые величины. В этой задаче они могут принимать любые значения. В программировании числовые величины, которые могут иметь любые значения — целые, дробные, — называются вещественными. Им ставится в соответствие вещественный тип. На Алгоритмическом языке этот тип указывается служебным словом вещ.
Программирование разветвляющихся алгоритмов
Как выглядит команда ветвления, вы уже знаете. Вот два алгоритма на АЯ, соответствующие блок-схемам на рис. 4.1 и 4.2:
алг БИД1 вещ А, В, С нач ввод А, В если А>В то С:=А иначе С:=В кв вывод С кон
алг БИД2 вещ А, В, С нач ввод А, В С:=А если В>А то С:=В кв вывод С кон
Под сокращенным названием алгоритмов ВИД подразумевается «Большее из двух».
Для программирования характерно то, что одна и та же задача может быть решена с помощью разных алгоритмов. И чем сложнее задача, тем больше можно придумать различных алгоритмов ее решения. Для больших задач (производственных, научных) практически невозможно точное совпадение алгоритмов, составленных разными программистами.
Следующая задача: упорядочить значения двух переменных X и Y по возрастанию. Смысл этой задачи следующий: если для исходных значений переменных справедливо отношение X < Y (например, X = 1, Y = 2), то оставить их без изменения; если же X >Y (например, X = 2, Y = 1), то выполнить обмен значениями.
Алгоритм обмена значениями двух переменных был рассмотрен в предыдущем параграфе. Вспомним, что для обмена нужна третья вспомогательная переменная.В алгоритме решения данной задачи используется неполное ветвление.
Приведем блок-схему (рис. 3.8) и алгоритм на АЯ.
Источник: studfile.net
Информатика 4 класс
В 3 классе мы изучили линейные алгоритмы . Основной принцип составления линейного алгоритма состоит в описание действий, которые выполняются однократно в заданном порядке. Исполнитель выполняет действия последовательно, одно за другим в том порядке, в котором они следуют.
Например, чтобы решить задачу по математике, необходимо выполнить следующие действия:
- Прочесть задачу
- Выполнить краткую запись
- Выполнить вычисления
- Записать ответ
Что такое алгоритм с ветвлением? Примеры и определение алгоритмов ветвления
Любой интеллект в животном мире пользуется определёнными алгоритмами предпочтения, которые выражают личные «хочу». Можно сказать, что потенциально искусственные интеллекты тоже будут пользоваться чем-то подобным. А пока к реализации человеческого восприятия мира наиболее близко подошли именно благодаря алгоритмам с ветвлением. И они будут рассмотрены в данной статье с объяснением их логики и особенностей.
Что такое алгоритм с ветвлением в программировании?
Прежде чем приступить к основной теме, необходимо сделать небольшой экскурс в теорию. Алгоритмом называется четкая последовательность действий, которая направлена на то, чтобы достичь определённой цели или решить поставленную задачу. Делятся они на три типа:
- Линейные.
- С ветвлением.
- Циклические.
Нас интересует алгоритм с ветвлением, поэтому описан будет только он. Данная команда предлагает выбор процедуры или функции, и при соответствии определённым условиям, которые есть на данный момент, происходит выбор. Структура такого алгоритма называется разветвляющейся. Она обеспечивает выбор между несколькими альтернативами.
Каждый из путей (в большинстве случаев) ведет к общей точке в программном коде. Важным ветвление является и тогда, когда необходимо пропустить определённое действие. Используется оно и тогда, когда пользователю предоставляется выбор, и этот выбор следует запомнить для дальнейшей работы. В целом полезны и легки эти алгоритмы с ветвлениями.
6 класс теоретически даже сможет понять и реализовать полученные знания на практике. Если есть вопросы – прочитайте статью, скорее всего, после завершения этого процесса их не останется.
Использование алгоритмов с ветвлением
Так уж получилось, что возникновение ситуаций, когда всё можно будет сделать без выбора, ничтожно маловероятно, поэтому необходимо продумывать, какие варианты потенциально могут возникнуть. Так, проводя параллель с жизнью, можно привести классический пример с погодой: если на улице жарко, то необходимо надеть майку и шорты, если идёт снег – курточку.
Случаются и более сложные выборы, от которых может зависеть дальнейшая жизнь человека (или работы программы). Алгоритмы разнятся своей сложностью и детализированием описания шагов. Так, для создания ориентира для себя можно использовать простое ограниченное описание (что и как должно работать). Но с компьютером такой фокус не прокатит.
Здесь необходимо пошаговое решение каждой задачи. Алгоритм включает в себя ветвление, которое, в свою очередь, может продолжаться практически бесконечно. Хотя на практике редактирование такого написанного кода является проблемным. Чтобы вы имели представление, предлагаем ознакомиться с такими формами:
- Простая. Если вы хотите быть здоровым, вам необходимо заниматься спортом.
- Сложная. Есть желание быть здоровым? Если да, то занимайтесь спортом. Если нет, то валяйтесь на диване и смотрите телевизор.
- Сложная форма с неполным ветвлением. Необходимо выйти на улицу. Идет ли дождь? Если нет, можно сразу выходить. Если идёт – возьмите зонтик. И только потом выходите на улицу.
Создание алгоритмов в общих чертах
Вот вы создаёте алгоритм с ветвлением, по которому будет выполняться программа. Если есть желание изобразить выбор схематически, то подойдёт ромб. Верхушкой обозначим передачу сигнала, а в остальные три стороны осуществляется рассылка ответов. При этом вовсе необязательно использовать их все: достаточно и двух.
Ромб, кстати, это оператор ветвления, который используется для обозначения этого действия. Но мы немного забежали вперёд. С чего начинается любая работа? С получения данных! При построении алгоритма не забывайте указывать, с какими данными идёт работа.
Также всегда должно быть логическое завершение. Ведь алгоритм, который невесть где обрывается, может вызвать «вечное» использование процессора, и игра попросту зависнет. Что, конечно, вызовет негативную реакцию.
Что необходимо, чтобы создать схему и практическую реализацию алгоритма?
Прежде чем приступать к рисовке схемы, необходимо хорошо выучить, что за что отвечает, чтобы в будущем не было логических ошибок. Также необходимо выучить все нюансы реализации алгоритмов с ветвлением на тех языках программирования, на которых планируется написание программы. Чтобы в будущем не возникало проблем, необходимо отточить своё умение на «чистых листах». Ведь если понять, как и что работает, то реализация в большинстве случаев не составит проблем. Если проблемы всё же возникают, попробуйте создавать алгоритм минимальными работающими шажками, чтобы выявить проблему.
Особенности при создании
Потенциально ветвления могут быть бесконечными. Поэтому при их создании можете не ограничивать себя количеством условий (хотя в конечном итоге чем их больше, тем труднее ориентироваться). Также немного о полном и неполном ветвлении. Что представляет собой первое, наверное, понятно. А в каких случаях используется неполное и как определить, что оно необходимо?
Если есть необходимость провести дополнительные действия, в связи с особенностью построения программы, и одновременно есть вариант простого продолжения, или было нужно впихнуть строки кода туда, где они не предусмотрены – то это как раз тот случай. И схема построения будет неполной, но в полном объеме выполняющей свой функционал.
Пример
Давайте, чтобы усвоить полученные знания лучше, разберёмся со всей сказанной информацией на примере простой программки. Ведь хоть и лёгок алгоритм с ветвлением, примеры позволят лучше разобраться, что и как. Допустим, вы пишете простую игрушку, в которой управляемый человеком персонаж должен убежать от компьютерных персонажей.
Если между ними происходит контакт, то по истечении небольшого промежутка времени осуществляется какое-то действие (герой начинает медленнее бежать или вообще проигрывает). Что и как тут сделать – выбор за вами. Но всё же следует учитывать целый аспект всевозможных действий, которые открываются перед программистом для реализации задуманного. Так, можно отнимать «жизни» у персонажа или сделать так, чтобы на управляемого человеком героя накладывался определённый эффект вроде замедления, и действенным он был, пока работает цикл, который, в свою очередь, работает в определённом временном промежутке. Конечный выбор за вами.
Послесловие
Итак, под конец необходимо подвести итоги всему, что было сказано выше. Освоить составляющие программирования, в том числе и алгоритмы с ветвлением, не составляет труда, если хорошо постараться. Необходимо изучить все, с чем придётся работать. Также для лучшего эффекта полезной будет практическая реализация полученных знаний. Можете начать с чего-то простого, прорабатывая алгоритм на бумаге или в электронном файле, постепенно перенося его в среду разработки.
Источник: fb.ru