Рассмотрим задание:
необходимо нарисовать несколько, например четыре, квадрата.
Программа может выглядеть следующим образом:
Program z;
uses Drawman;
Begin
Field (6,7);
OnVector (1,1);
PenDown;
OnVector (0,1);
OnVector (1,0);
OnVector (0,-1);
OnVector (-1,0);
PenUp;
OnVector (2,0);
PenDown;
OnVector (0,1);
OnVector (1,0);
OnVector (0,-1);
OnVector (-1,0);
PenUp;
OnVector (0,2);
PenDown;
OnVector (0,1);
OnVector (1,0);
OnVector (0,-1);
OnVector (-1,0);
PenUp;
OnVector (-2,0);
PenDown;
OnVector (0,1);
OnVector (1,0);
OnVector (0,-1);
OnVector (-1,0);
PenUp;
end.
необходимо нарисовать несколько, например четыре, квадрата.
Программа может выглядеть следующим образом:
Program z;
uses Drawman;
Begin
Field (6,7);
OnVector (1,1);
PenDown;
OnVector (0,1);
OnVector (1,0);
OnVector (0,-1);
OnVector (-1,0);
PenUp;
OnVector (2,0);
PenDown;
OnVector (0,1);
OnVector (1,0);
OnVector (0,-1);
OnVector (-1,0);
PenUp;
OnVector (0,2);
PenDown;
OnVector (0,1);
OnVector (1,0);
OnVector (0,-1);
OnVector (-1,0);
PenUp;
OnVector (-2,0);
PenDown;
OnVector (0,1);
OnVector (1,0);
OnVector (0,-1);
OnVector (-1,0);
PenUp;
end.
Но получается слишком много одних и тех же строк, выделим их красным цветом. А если нам захочется нарисовать десять одинаковых квадратов? Сто?
При создании средних по размеру программ используется структурное программирование, идея которого заключается в том, что структура программы должна отражать структуру решаемой задачи, чтобы алгоритм решения был ясно виден из исходного текста. Программа разбивается на множество подпрограмм (вспомогательных алгоритмов), каждая из которых выполняет какое-то действие, предусмотренное исходным заданием.
Комбинируя вспомогательные алгоритмы, удается сформировать итоговый алгоритм используя блоки кода (подпрограммы), имеющих определенную смысловую нагрузку. Обращаться к ним, можно по их имени.
Очень важная характеристика вспомогательных алгоритмов - это возможность их повторного использования.
Блоки кода, выделенные красным цветом, запишем через процедуру. Назовем ее z1. Таким образом, мы как бы научим Чертежника новой команде z1.
Program z;
uses Drawman;
Procedure z1;
Begin
PenDown;
OnVector (0,1);
OnVector (1,0);
OnVector (0,-1);
OnVector (-1,0);
PenUp;
end;
Begin
Field (6,7);
OnVector (1,1);
z1;
OnVector (2,0);
z1;
OnVector (0,2);
z1;
OnVector (-2,0);
z1;
end.
Получили более компактный и понятный алгоритм. Там, где какие-то части программы повторяются (используются) несколько раз, удобно использовать вспомогательные алгоритмы.
Обратите внимание - если нам потребуется изменить алгоритм так, чтобы рисовались квадраты со стороной не один, а три, то при использовании вспомогательного алгоритма количество правок заметно уменьшается.
Попробуй решить самостоятельно:
Попробуй решить самостоятельно: