Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Отметим, что при записи ветвлений необходимо иметь специальный указатель конца ветвления, отделяющий ветвление от остальной части алгоритма. При отсутствии такого указателя алгоритм становится двусмысленным. Например, в приведенном выше алгоритме вычисления модуля числа отсутствие ключевого слова все привело бы к тому, что невозможно было бы понять, находится ли команда вывести число в ветви развилки или вне ее.
Для того, чтобы Исполнитель алгоритмов имел возможность формировать условие, он должен анализировать обстановку, в которой он оказался. Для этого у каждого исполнителя имеется система вопросов (СВИ – Система Вопросов Исполнителя), которые он понимает и на которые умеет отвечать. С помощью этих вопросов (команд) ЭВМ может получить информацию об обстановке вокруг исполнителя.
На каждый из этих вопросов исполнитель отвечает либо "ДА", либо "НЕТ".
Практически в любом языке программирования есть оператор, соответствующий паскалевскому IF. В качестве операторов, содержащихся в ветвях IF, могут быть любые операторы, включая, и оператор выбора. Кроме того, во многих языках программирования есть и другие языковые средства, обеспечивающие разветвляющиеся алгоритмы. К ним относится, например оператор выбора. Он используется, когда происходит деление не на два, а большее число вариантов. В Паскале он выглядит следующим образом:
CASE <выражение> OF
значение_1: оператор_1;
значение_2: оператор_2;
...
значение_N: оператор_N;
ELSE: оператор_1;
END;
Принцип его работы состоит в том, что вычисляется значение выражения, а затем происходит последовательное сравнение этой величины с определенными вариантами до первого совпадения. В результате выполняется соответствующая ветвь, либо при отсутствии совпадений – ветвь else.
Например, программа, определяющая количество дней в месяце с заданным номером при условии, что год не високосный.
var m: integer;
begin
writeln(‘Введите номер месяца от 1 до 12’);
readln(m);
case m of
1, 3, 5, 7, 8, 10, 12: writeln(’31 день’);
2: writeln(’28 дней’);
4, 6, 9, 11: writeln(’30 дней’);
else writeln(‘Неверно введен номер месяца’);
end;
end.
Заметим, что оператор выбора не приводит к появлению новых возможностей у языка программирования. Он просто обеспечивает более компактный и удобочитаемый код по сравнению с серией вложенных друг в друга условных операторов if. Любой алгоритм, обеспечивающий выбор можно реализовать с помощью одного или нескольких ветвлений.
Применение алгоритмов с ветвлениями
Дата публикования: 2014-11-03; Прочитано: 269 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!