procedure 手続き名(仮引数の宣言);
(この手続き宣言部でのみ有効な定義・宣言部)
begin
(実行文部)
end;
function 関数名(仮引数の宣言): 関数の作る値の型;
program sample3a; { 'た'ぬきプログラム }
type moji=varying[255] of char;
var bun:moji;
procedure tanuki(var a:moji);
var
i,j:integer;
b,c:moji;
begin
i:=index(a,'た');
j:=length(a);
if i<>0 then
begin
b:=substr(a,1,i-1);
c:=substr(a,i+2,j-i-1);
a:=b+c;
end;
if index(a,'た')<>0 then tanuki(a);
end;
begin
bun:='たんたんたぬきのかたたたき';
writeln(bun);
writeln(' ↓'); { ↓ は日本語コード入力で 02 & 変換 }
tanuki(bun);
writeln(bun);
end.
program sample3b; { 最大公約数 }
var tama,koro:integer;
function gcd(a,b:integer):integer;
var
c:integer;
begin
if a<b then begin c:=a; a:=b; b:=c end;
if b=0
then gcd:=a
else gcd:=gcd(b,a mod b);
end;
begin
writeln('最大公約数を計算します。');
writeln('自然数をふたつ入力してください。');
readln(tama);
readln(koro);
write(tama:1,' と ',koro:1,' の最大公約数は ');
writeln(gcd(tama,koro):1);
end.