PROGRAM 21
PROGRAM FINDGCD_OF_3_INTEGERS;
{ANTHONY F. ORITZ, ASSIGNMENT 7A, JULY 14, 1994}
{THIS PROGRAM FINDS AND PRINTS THE GCD OF THREE FACTORS.}
USES CRT;
VAR
A, B, C, GCD, GCD2: INTEGER;
ANS: STRING;
PROCEDURE INPUTDATA (VAR A, B, C: INTEGER);
BEGIN
WRITE ('ENTER THE FIRST POSITIVE INTEGER. ');
READLN (A);
WRITE ('ENTER THE SECOND POSITIVE INTEGER. ');
READLN (B);
WRITE ('ENTER THE THIRD POSITIVE INTEGER. ');
READLN (C);
END;
PROCEDURE ABSOLUTEVALUE;
BEGIN
A := ABS (A);
B := ABS (B);
C := ABS (C);
END;
PROCEDURE PRINTRESULTS;
BEGIN
WRITELN;
IF (A <> 0) AND (B <> 0) AND (C <> 0) THEN
WRITELN ('THE GCD OF ',A, ', ',B, ', AND ', C, ' IS ', GCD2, '.');
WRITELN;
END;
PROCEDURE INQUIRY;
BEGIN
WRITE ('WOULD YOU LIKE TO CONTINUE WITH THIS PROGRAM? TYPE "YES" TO CONTINUE. ');
READLN (ANS);
END;
FUNCTION FINDGCD (A, B: INTEGER): INTEGER;
BEGIN
IF (A = 0) OR (B = 0) THEN
BEGIN
GOTOXY (1, 4);
WRITELN;
GOTOXY (1, 5);
WRITE ('THESE THREE VARIABLES DON''T HAVE A GCD. ');
END
ELSE
BEGIN
WHILE A <> B DO
IF A > B THEN
A := A - B
ELSE
B := B - A;
END;
FINDGCD := A;
END;
BEGIN
REPEAT
CLRSCR;
INPUTDATA (A, B, C);
ABSOLUTEVALUE;
GCD := FINDGCD (A, B);
GCD2 := FINDGCD (GCD, C);
PRINTRESULTS;
INQUIRY;
UNTIL ANS <> 'YES';
END.
{ OUTFILE: PROG21.OUT }
ENTER THE FIRST POSITIVE INTEGER. 2
ENTER THE SECOND POSITIVE INTEGER. 4
ENTER THE THIRD POSITIVE INTEGER. 6
THE GCD OF 2, 4, AND 6 IS 2.
WOULD YOU LIKE TO CONTINUE WITH THIS PROGRAM? TYPE "YES" TO CONTINUE. no
BACK TO COMP151 PAGE.