Seperti halnya dalam beberapa bahasa pemrograman lain, kode program
dalam pascal juga bisa menggunakan rekursi. Rekursi adalah pemanggilan
fungsi atau prosedur oleh dirinya sendiri. Berikut ini contoh program
algoritma euclidean dengan menggunakan fungsi dan rekursi.
Rekursi sebenarnya tidak harus menggunakan fungsi, bisa juga menggunakan prosedur. Contohnya :
Yang perlu diperhatikan adalah bahwa rekursi mutlak membutuhkan syarat
untuk berhenti yang bisa diletakkan dalam percabangan atau perulangan.
Jika tidak ada syarat pemanggilan dalam rekursi, program akan error
karena rekursi akan terus berulang tanpa henti.
Program Euclidean;
uses crt;
var a, b : integer;
function fpb(m, n : integer) : integer;
var r : integer;
begin
r := m mod n;
while (r <> 0) do begin
m := n;
n := r;
r := m mod n;
end;
fpb := n;
end;
Begin
clrscr;
a:=45;
b:=21;
write('fpb ', a, ' dan ', b, ' adalah ', fpb (a, b));
readln;
end.
Program Euclidean;
uses crt;
var a, b, c : integer;
procedure fpb(m:integer; var n : integer);
begin
n:=m mod n;
if(n>0)then fpb(n, m);
end;
Begin
clrscr;
a:=45;
b:=21;
c:=b;
fpb (a, c);
write('fpb ', a, ' dan ', b, ' adalah ', c);
readln;
end.