2. LOGO
Понятие модуля. Конструктивные
характеристики модуля
Конструктивными характеристики модуля:
*размер модуля
*прочность модуля
*сцепление с другими модулями
*рутинность модуля (независимость от предыстории
обращений к нему)
3. LOGO
Использование подпрограмм.
Процедуры и функции
Использование модуля целесообразно
оформлять в виде подпрограммы.
Подпрограммой называется именованная,
логически законченная группа операторов языка,
которую можно вызывать по имени любое
количество раз из различных мест программы.
В языке Pascal имеются два вида подпрограмм –
процедуры и функции. Они имеют один и тот же
смысл и аналогичную структуру, но различаются
назначением и способом использования.
4. LOGO
Использование подпрограмм.
Процедуры и функции
Пример описания функции:
Function Power (Base : real; Index : integer) : real;
{возведение в целую степень вещественного основания}
Var
P : real;
I : integer; Begin
If Index = 0
then Power := 1
else
begin
P := Base;
For I := 2 to abs (Index) do P := P * Base;
If Index > 0
then Power := P else Power := 1/P
end
End; {Конец функции Power}
5. LOGOРекурсивные подпрограммы
Подпрограммы, реализующие рекурсию, называются
рекурсивными. Для понимания сути работы программы
будем рассматривать рекурсивный вызов как вызов другой
подпрограммы. В этом случае при каждом рекурсивном
вызове создается новое множество локальных
переменных. Таким образом, рекурсивный вызов не
изменяет переменных, расположенных вне вызываемой
программы.
При написании рекурсивных подпрограмм особое
внимание необходимо обращать на выход из
подпрограммы в нужный момент, так как возможен выход
значений из допустимого диапазона или потеря порядка
(обращение результата в нуль).
http://ppt.prtxt.ru Company Logo
6. LOGOРекурсивные подпрограммы
В качестве примера рассмотрим описанную выше
задачу возведения вещественного числа в целую
степень, но теперь используем в теле функции
рекурсивный вызов.
Function PowerR (Base: real; Index : integer) : real;
{возведение в целую степень вещественного основания}
Begin
If Index < 0
then PowerR := 1/PowerR(Base, abs(Index)
else
If Index > 0
then PowerR := Base * PowerR(Base, Index-1)
else PowerR := 1
End; {Конец функции PowerR}
http://ppt.prtxt.ru Company Logo