CHECK POINT
*配列
PROGRAM toi111(input,output);
VAR a,b,c,d : integer;
PROCEDURE okikae;
BEGIN c:=a;a:=b;b:=c END;
BEGIN READ(a,b);
IF a<b THEN
okikae;
REPEAT
d:=a MOD b;a:=b;b:=d
UNTIL d=0;
WRITELN(a)
END.
これはaとbの最大公約数を求めるプログラムです。
1.まず初めに、READ文でa=6,b=9を読み込みます。
2.次に、IF文でaとbを比較するとa<bであるから、PROCEDURE okikae;に入ります。
3.PROCEDURE okikae;で、aとbの値を交換します。
4.次に、REPEAT文でd=3,a=6,b=3となります。d=0ではないので再びREPEAT文を行うと、
d=0,a=3,b=0となり、REPEAT文から抜けます。
5.よって最終的に、aとbの最大公約数は3となります。
練習問題