1. Результатом работы функции является некоторое значение.
2. Функция может быть вызвана только в составе некоторого выражения, процедура вызывается как отдельный оператор.
3. Если в теле функции ее имени не присвоено значение, то она возвращает произвольный результат.
Одним из наиболее элегантных приемов программирования является рекурсия.
Рекурсия – обращение алгоритма к самому себе.
Реализация процедур и функций в языке Паскаль поддерживает рекурсивные вызовы.
Рекурсия характеризуется условием окончания продолжения рекурсии и глубиной рекурсивных вызовов.
Пример 1.
Числа Фиббоначи.
F1=1
F2=1
F(n)=F(n-1)+F(n-2) (n>2)
Функция находящая n-ое число Фиббоначи
Function fib(n:integer):integer;
Begin
If n<=2 then fib:=1
Else fib:=fib(n-1)+fib(n-2)
End;
Пример 2.
Наибольший общий делитель.
Function nod(a,b:integer):integer;
Begin
If (a=0) or (b=o) then nod:=a+b
Else
If a>b then nod:=nod(b,a mod b)
Else nod:=nod(a,b mod a);
End.
N!=(N-1)!*N
Кроме основных конструкций язык Turbo Pasсal содержит набор модулей, позволяющих реализовать возможности взаимодействия с операционной системой, с другими программами и т. д.
Модуль DOS – диалог с операционной системой DOS.
SYSTEM - системные процедуры и конcтнты.
Graph - работа с графикой .
Print – работа с принтером.
Этот модуль подключается по умолчанию и поэтому явно подключать его необязательно.
Назначение: завершает оператор цикла.
Вызов: Break;
Примечание: если Break содержится вне тела цикла, то это приводит к ошибке.
Пример.
for i:=2 to a–1 do
if a mod i=0 then
Begin
F:=true
Break;
End.
2. Halt [(code; WORD)]
Назначение: останавливает выполнение программы и передает управление операционной системе.
Вызов: halt;
halt (2)
Примечание: необязательный параметр code задает код завершения программы Halt без параметров соответствует Halt (0)
Назначение: выполняет выход из текущего блока.
Вызов: Exit;
Примечание: если процедура Exit находится в теле процедуры или функции, то происходит завершение работы процедуры или функции, если Exit находится в основном блоке, то происходит завершение работы программы.