Внутрь оператора if могут быть вложены другие if. Например, пусть в последовательности чисел a,b,c требуется вывести первое по порядку положительное число. Если таковых не оказалось, печатать “Все числа отрицательны”. Программа справа.
Оператор безусловного перехода. Оператор вида:
ü GOTO меткаоператора
вынуждает программу выполнять не следующий по порядку оператор, а оператор с указанной меткой. Например, оператор GOTO m читается как “Идти к оператору с меткой m”и передает ему управление. Метки должны быть предварительно объявлены оператором label в разделе объявлений программы (в нашем случае label m). Меткам можно давать произвольные символьные или числовые имена, важно только, чтобы все метки были разными, т.е. никогда не совпадали в пределах программы. В операторе, на который происходит ссылка, метка ставится перед ним и отделяется двоеточием.
Очень распространенной задачей является программирование процессов с несколькими исходами – ветвящихся процессов. Здесь удобно (по крайней мере, на первом этапе) сначала построить блок-схему, дающую наглядное графическое представление алгоритма. В блок-схеме отдельные операции или их группы помещаются в прямоугольные блоки. Операции анализа отображаются ромбами. Обозначение других операций будет рассмотрено позже. Блок-схемы обрамляют блоки НАЧАЛО и КОНЕЦ. Мы будем изображать последние только в случае, если возможно разночтение.
Задача 3-1. Для произвольного аргумента
Х вычислить значение кусочно-ломаной
функции Y(X) (рис.3-1а).
Отметим, что практически любая задача может быть запрограммирована
по-разному. Два таких решения приведены в program p3_1 (рис. 3-1б и 3-1в).
Второй вариант работает быстрее поскольку при выполнении условия, следующие условия не проверяются.