9 Июнь 2008

Вопрос 3 Написать рекурсивную функцию вычисления факториала.

pRogram Zdn_3;
var Fct:byte;

Function Factor(F:byte):longint;
Begin
If f=0 Then Factor:=1
Else Factor:=Factor(F-1)*F
End;

BEGIN
Write(’F! (0<=F<=255) / F= ‘);
Readln(Fct);
Writeln(’Factorial ‘,Fct,’! = ‘,Factor(Fct));
Readln;
END.

Вопрос 3. Оформление функций на языке Паскаль.

написано в рубрике: Алгоритмизация (Т) — Метки: , , , — Михаил @ 19:10

Процедуры и функции представляют собой относительно самостоятельные фрагменты программы, оформленные особым образом и снабженные именем. Упоминание этого имени в тексте программы называется вызовом процедуры (функции).

Описание подпрограммы состоит из заголовка и тела подпрограммы. Заголовок процедуры имеет вид: procedure <имя> [(<СП.ф.п.>)] : <тип>; . Здесь: <имя> - имя подпрограммы (правильный идентификатор), <СП.ф.п.>- список формальных параметров, <тип> - тип возвращаемого функции результата. Сразу за заголовком подпрограммы может следовать одна из стандартных директив assembler, external, far, forward, inline, interrupt, near. Эти директивы уточняют действие компилятора и распространяются на всю подпрограмму и только на нее, т.е. если за подпрограммой следует другая подпрограмма, стандартная директива, указанная за заголовком первой, не распространяется на вторую.

Assemblerотменяет стандартную последовательность машинных инструкций, вырабатываемых при входе в процедуру и выходом из нее.

ExternalС помощью этой директивой объявляется внешняя подпрограмма.

Farкомпилятор должен создавать код подпрограммы, рассчитанный на дальнюю модель вызова.

Near- заставит компилятор создать код, рассчитанный на ближайшую модель памяти.

Forwardиспользуется при опережающем описании для сообщения компилятору, что описание подпрограммы следует где-то дальше по тексту программы (но в пределах текущего программного модуля).

Inlineуказывает на то, что тело подпрограммы реализуется с помощью встроенных машинных инструкций.

Interruptиспользуется при создание процедур обработки прерываний.

Параметры.

Список формальных параметров необязателен и может отсутствовать. Если же он есть, то в нем должны быть перечислены имена формальных параметров и их типы, например: Procedure SB (a: Real; b: Integer; c: Char); Для оператора тела подпрограммы список параметров является своеобразным расширением раздела описаний: все переменные из этого списка могут использоваться в любых выражениях внутри подпрограммы. Таким способом осуществляется настройка алгоритма подпрограммы на конкретную задачу.

© Проект «Студенты-Программеры»., 2008. Все права защищены.
Перепечатка материалов только при наличии активной ссылки на источник.
Powered by WordPress