ВУЗ:
Составители:
Рубрика:
Войти в тело функции или выйти из него с помощью операторов
GOTO, GOSUB, RETURN нельзя, хотя внутри тела эти операторы допус-
тимы.
Определения функций не могут быть вложенными, хотя в определе-
нии могут встречаться вызовы других или этих же функций (и процедур).
В последнем случае имеем дело с рекурсивным вызовом. Обычно в много-
строчном определении функции имеется оператор присваивания, в кото-
ром в левой части стоит имя функции. Если такого оператора нет, то зна-
чение, возвращаемое функцией, не определено. Для выхода из тела функ-
ции до оператора END DEF применяется оператор EXIT DEF.
Пример. Определим функцию, которая рекурсивно вычисляет значе-
ние факториала целого числа:
REM Определение функции FNfact%
DEF FNfact%(n%)
IF n%=0 THEN FNfact%=1
EXIT DEF
IF n%=1 THEN FNfact%=1_
ELSE FNfact%=n%*FNfact%(n%-1%)
END DEF
REM Использование ранее определенной функции FNfact%
PRINT "факториал 5=";FNfact% (5%)
2.8.3. Процедуры − самое мощное средство для построения модуль-
ной программы − определяются с помощью оператора SUB и END SUB,
которые служат, соответственно, началом и концом группы операторов,
называемой процедурой:
SUB имя [(список параметров)]
[LOCAL список переменных]
[STATIC список переменных]
[SHARED список переменных]
операторы
[EXIT SUB]
END SUB
имя − уникальное имя процедуры, отвечающее тем же правилам, по
которым образуются имена переменных; список параметров − после-
довательность, разделенных запятыми формальных параметров, которые
служат только для определения процедуры, не имея никакого отношения к
Войти в тело функции или выйти из него с помощью операторов
GOTO, GOSUB, RETURN нельзя, хотя внутри тела эти операторы допус-
тимы.
Определения функций не могут быть вложенными, хотя в определе-
нии могут встречаться вызовы других или этих же функций (и процедур).
В последнем случае имеем дело с рекурсивным вызовом. Обычно в много-
строчном определении функции имеется оператор присваивания, в кото-
ром в левой части стоит имя функции. Если такого оператора нет, то зна-
чение, возвращаемое функцией, не определено. Для выхода из тела функ-
ции до оператора END DEF применяется оператор EXIT DEF.
Пример. Определим функцию, которая рекурсивно вычисляет значе-
ние факториала целого числа:
REM Определение функции FNfact%
DEF FNfact%(n%)
IF n%=0 THEN FNfact%=1
EXIT DEF
IF n%=1 THEN FNfact%=1_
ELSE FNfact%=n%*FNfact%(n%-1%)
END DEF
REM Использование ранее определенной функции FNfact%
PRINT "факториал 5=";FNfact% (5%)
2.8.3. Процедуры − самое мощное средство для построения модуль-
ной программы − определяются с помощью оператора SUB и END SUB,
которые служат, соответственно, началом и концом группы операторов,
называемой процедурой:
SUB имя [(список параметров)]
[LOCAL список переменных]
[STATIC список переменных]
[SHARED список переменных]
операторы
[EXIT SUB]
END SUB
имя − уникальное имя процедуры, отвечающее тем же правилам, по
которым образуются имена переменных; список параметров − после-
довательность, разделенных запятыми формальных параметров, которые
служат только для определения процедуры, не имея никакого отношения к
Страницы
- « первая
- ‹ предыдущая
- …
- 35
- 36
- 37
- 38
- 39
- …
- следующая ›
- последняя »
