Набор отдельных операторов в программе образует управляющую структуру. Набор управляющих структур образует программу. Принято выделять три фундаментальные структуры, с помощью которых конструируются программы. Это последовательное выполнение, ветвление и повторение.
Линейные алгоритмы.
Наиболее простой из трех основных управляющих структур - это последовательное выполнение (линейные алгоритмы).
Алгоритм линейной структуры характерен тем, что каждый блок (шаг) выполняешься, безусловно и однократно. Управление в программе передается в порядке возрастания номеров строк и ни одна строка не пропускается и ни одна строка не выполняется дважды.
Линейные алгоритмы на практике встречаются крайне редко, они, как правило, являются частью более сложного алгоритма.
Алгоритмы ветвления.
Альтернатива (развилка) возникает тогда, когда в зависимости от исходных данных или полученных результатов дальнейших ход процесса следует по тому или иному пути, т.е. мы встречаемся с логическим анализом.
Во всех алгоритмических языках имеются операторы, точно отражающие эту структуру управления. Организация разветвления в программе на языке Бейсик или Паскале осуществляется оператором условного перехода IF / THEN / ELSE, имеющем модификации.
Оператор записывается в общем виде так:
IF <условие> THEN <действие1> E1SE <действие2>
Выполнение оператора начинается с вычисления значения выражения, т.е. с проверки условия:
Если выражение имеет значение "истина", то выполняется последовательность операторов стоящая после служебного слова THEN (действие1), а затем операторы в последующей программной строке, иначе выполняются операторы, записанные после служебного слова ELSE (действие2).
Если оператор записан так:
IF<условие> THEN <действие>
то он выполняется следующим образом:
Если условие оказывается истинным, то выполняются операторы, стоящие после THEN (действие), если условие не выполняется, то происходит переход к следующей программной строке.
Пример программы на Паскаль с использованием Алгоритма ветвления:
Вводится число и проверяется, равно ли оно заранее задуманному числу 5.
Program ygaday;
Label 1;
Var x,a:integer;
Begin
x:=5;
1: Write('vvedi 4islo (0-9):');readln(a);
IF A<X THEN writeln('4islo doljno bit bolwe!');
IF A>X THEN writeln('4islo doljno bit men`we!');
IF A<>X THEN goto 1;
Writeln('Ygadali!!!');
End.
Очень важно предусмотреть в алгоритме все возможные варианты, не смотря на то, что в каждом отдельном случае решение задачи идет по одному пути.