blob: 5031ab7bbdbc7263cbbd22eae1d6d533fb9d5f89 (
plain) (
tree)
|
|
PROGRAM sumharmonics (input, output);
CONST
firstterm = 2;
VAR
numerator, denominator,
lastterm, termcount : integer;
PROCEDURE lowterm (VAR num, den : integer);
VAR
numcopy, dencopy, remainder : integer;
BEGIN
numcopy := num;
dencopy := den;
WHILE dencopy <> 0 DO
BEGIN
remainder := numcopy MOD dencopy;
numcopy := dencopy;
dencopy := remainder;
END; { while }
IF numcopy > 1
THEN
BEGIN
num := num DIV numcopy;
den := den DIV numcopy;
END
END; { lowterm }
PROCEDURE addrationals (VAR num1, den1 : integer;
num2, den2 : integer);
BEGIN
num1 := num1 * den2 + num2 * den1;
den1 := den1 * den2;
END; { addrationals }
BEGIN { sumharmonics }
numerator := 1;
denominator := 1;
READ (lastterm);
FOR termcount := firstterm TO lastterm DO
BEGIN
addrationals (numerator, denominator, 1, termcount);
lowterm (numerator, denominator);
WRITELN (numerator, '/', denominator)
END; { for }
END. {sumharmonics}
|