Разработка алгоритма методом последовательной детализации.

Важнейшим технологическим приёмом структурного программирования, является декомпазиция решаемые задачи решаются на подзадачи – более простые с точки зрения прграмирования части исходной задачи. Алгоритмы решения таких подзадач называются вспомогательными алгоритмами. В связи с этим возможны 2 пути построения алгоритма:
1. сверху – вниз, когда сначала строится основной алгоритм затем вспомогательные алгоритмы.
2. с низу – вверх, когда сначала вспомогательный, затем основные.
Подход сверху – вниз, называется методом последовательной детализации. С низу вверх, сборочным методом.

Метод последовательной детализации сначало анализируется исходная задача. В ней выделяются подзадачи. Строится иерархия таких подзадач. Затем составляются алгоритмы (или программы), начиная с основного алгоритма (основной программы), далее — вспомогательные алгоритмы (подпрограммы) с последовательным углублением уровня, пока не получим алгоритмы, состоящие из простых команд.

Пример: проссумировать элементы одномерного массива из 10 элементов.
Начнём с того что представим в общем виде алгоритм как линейную последовательность этапов решения задач:
1. ввод массива с клавиатуры;
2. подсчёт суммы элементов в массиве;
3. вывод результата.
Первый шаг детализации – наметить все необходимые подпрограммы указав лишь их заголовки:
Program Sum_ma;
    Var A: array [1…10] of real;
    I: integer;
    Begin
    Procedure Wwod_mas; {введите массив с клавиатуры};
    Function Sum (A: array [1…10] of real): real; {подсчитать сумму в массиве};
    Writeln (Sum(A));
    End.
Второй шаг детализации – составим подпрограмму:
Procedure Wwod_mas;
Var
    A: array [1…10] of real;
    Begin
        Writeln (“Введите массив”);
        For i:=1 to 10 do
            Readln (A [i]);
    End.
Function Sum (A: array [1…10] of real): real;
Var
    I: integer;
    S: integer;
    Begin For i:=1 to 10 do
    S: = S+A[i];
    Sum: = S;
End.
Окончательно объеденив тексты программ, тексты подпрограмм с основной программой получили рабочий вариант программы Sum_mas.
Hosted by uCoz