End.
S:=0;
Begin
Program Sum;
End.
Begin
Program Factorial;
Таблица 1
| Обозначение блока
| Назначение блока
|
| Начало, завершение программы или подпрограммы
|
|
| Обработка данных, (вычисления)
|
| Операции ввода/вывода
|
| Проверка условия .
|
| Счетные циклы (блок модификаций)
|
| Вызов процедур (подпрограмм)
|

| Маркировка разрывов линий
|
Независимо от языка программирования алгоритм любой задачи может быть составлен из вышеуказанных блоков.
По последовательности выполняемых действий алгоритмы подразделяются на:
1. Линейные.
2. Разветвляющиеся.
3. Циклической структуры.
1. Линейные алгоритмы.
Все операции выполняются последовательно, одна за другой.
Пример: вычислить площадь треугольника по формуле Герона.

2. Разветвленные алгоритмы.
Предполагаемая последовательность операторов зависит от результата выполнения некоторого условия.
Тип 1

Пример
Тип 2
К следующему оператору
Пример: вычислить y=1/x
К следующему оператору
3. Циклические алгоритмы.
Предполагается, что некоторые действия надо выполнить несколько раз.
Циклические процессы вычислений можно разделить на три группы:
· Счетные циклы (циклы с заданным числом повторений цикл For).
· Итерационные циклы (циклы, завершающиеся по выполнению или нарушению условий - цикл с предусловием и цикл с постусловием).
· Поисковые циклы (выход из данного вида цикла возможен либо по завершению процесса, либо досрочный выход по какому-то дополнительному условию).
Существует три типа алгоритмов циклической структуры:
1. Итерационные циклы
1).цикл с предусловием - условие проверяется до выполнения тела цикла;
Примеры: Вычислить Z=F4, где F4=cx+P;
-1<=x<=3; c=1.6; h=1.2;

2). цикл с постусловием – условие проверяется после выполнения тела цикла.


3). Блок модификаций.
Применяется в счетных циклах.
Упрощает отображение цикла в блок-схеме, совмещает функции счетчика и контроль выхода из цикла.
Пример 1: Вычислить 10!

Var i , F : integer; { longint }
F:=1;
For i:=1 to 10 do F:=F*i;
Writeln(‘F=’,F);
Пример 2
1). Вычислить

Var i,S: real;
For i:=1 to 5 do
S:= S + sin(i);
writeln(‘S=’, S:5:2);