INFONKO.RU

Представление ветвлений на АЯ. Трассировка ветвящихся алгоритмов

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

Первая задача: даны два числа; выбрать большее из них.

Пусть исходными данными являются переменные А и В. Их значения будут задаваться вводом. Значение большего из них должно быть присвоено переменной С и выведено на экран компьютера. Например, если А = 5, В = 8, то должно получиться: С = 8.

Блок-схема алгоритма решения этой задачи изображена на рис. 3.6.

Рис. 3.6. Алгоритм выбора большего из двух чисел (с полным ветвлением)

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

Условием, по которому разветвляется алгоритм, является отношение неравенства А > В. Изучая базы данных и электронные таблицы, вы узнали, что такое отношение является логическим выражением. Если оно справедливо, то результатом будет логическая величина "истина" и выполнение алгоритма продолжится по ветви "да"; в противном случае логическое выражение примет значение "ложь" и выполнение алгоритма пойдет по ветви "нет".

До выполнения на компьютере правильность алгоритма можно проверить путем заполнения трассировочной таблицы. Вот как будет выглядеть трассировка нашего алгоритма для исходных значений А = 5, В = 8.

Шаг Операция А В С Проверка условия
ввод А, В
А>В 5 > 8, нет (ложь)
С:=В
вывод С

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

В алгоритме на рис. 3.6 используется полное ветвление. Эту же самую задачу можно решить, применяя структурную команду неполного ветвления. Блок-схема такого алгоритма изображена на рис. 3.7.

Рис. 3.7. Алгоритм выбора большего из двух значений (с неполным ветвлением)

Выполните самостоятельно трассировку этого алгоритма для вариантов 1) А = 0,2, В = 0,3; 2) А = 7, В = 4; 3) А = 5, В = 5. Если вы все проделаете правильно, то убедитесь, что алгоритм верный.

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

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



Как выглядит команда ветвления, вы уже знаете. Вот два алгоритма на АЯ, соответствующие блок-схемам на рис. 3.6 и 3.7:

алг БИД1 вещ А, В, С нач ввод А, В если А>В то С:=А иначе С:=В кв вывод С кон алг БИД2 вещ А, В, С нач ввод А, В С:=А если В>А то С:=В кв вывод С кон

Под сокращенным названием алгоритмов ВИД подразумевается "Большее из двух".

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

Следующая задача: упорядочить значения двух переменных X и Y по возрастанию. Смысл этой задачи следующий: если для исходных значений переменных справедливо отношение X Y (например, X = 2, Y = 1), то выполнить обмен значениями.

Алгоритм обмена значениями двух переменных был рассмотрен в предыдущем параграфе. Вспомним, что для обмена нужна третья вспомогательная переменная.

В алгоритме решения данной задачи используется неполное ветвление. Приведем блок-схему (рис. 3.8) и алгоритм на АЯ.

алг СОРТИРОВКА вещX, Y, С нач ввод X, Y если X>Y то С:=Х Х:=Y Y:=С кв вывод X, Y кон
Рис. 3.8. Блок-схема алгоритма упорядочения двух величин

Здесь роль вспомогательной переменной для обмена выполняет С.



infonko.ru/obyasnenie-puteshestviya-vo-vremeni.html infonko.ru/obyasnenie-svoego-videniya-problemi-partneru.html infonko.ru/obyasnenie-tehnologii-piramidi.html infonko.ru/obyasnenie-znakov-prepinaniya.html infonko.ru/obyasneniya-na-osnove-parallelnih-processov.html infonko.ru/obyasneniya-storon-i-tretih-lic-pismennie-i-veshestvennie-dokazatelstva-audio-i-videozapisi-kak-otdelnie-sredstva-dokazivaniya.html infonko.ru/obyasneniya-storon-i-tretih-lic-pokazaniya-svidetelej.html infonko.ru/obyasni-poslovici-i-napisanie-propushennih-bukv.html infonko.ru/obyasnite-chto-takoe-intervyu.html infonko.ru/obyasnitelnie-koncepcii-v-kurse-istorii-socialnoj-raboti.html infonko.ru/obyasnitelnie-principi-psihologii.html infonko.ru/obyasnite-mehanizm-dejstviya-kipelok-v-processe-kipeniya-zhidkosti.html infonko.ru/obyasnite-motivi-drevnego-cheloveka-v-poklonenii-sverhestestvennim-silam.html infonko.ru/obyasnite-oshibochnie-udareniya-v-glagolah.html infonko.ru/obyasnite-osobennosti-kazahskogo-muzikalnogo-zhanra-kyuya.html infonko.ru/obyasnite-pochemu-kogda-zalozhen-nos-ploho-oshushaetsya-vkus-pishi.html infonko.ru/obyasnite-pochemu-zarozhdenie-proizvodyashego-hozyajstva-v-nauke-nazvali-neoliticheskoj-revolyuciej.html infonko.ru/obyasnite-preimushestva-i-nedostatki-zakritih-i-otkritih-sistem-teplosnabzheniya.html infonko.ru/obyasnite-prichini-bistrogo-razvitiya-gorodov-i-rosta-torgovli-v-kazahstane-vo-vtoroj-polovine-xix-veka.html infonko.ru/obyasnite-prichini-porazhenij-vosstanij-v-uralskoj-turgajskoj-oblastyah-1868-1869-godah-i-na-mangistau1870-godu.html