mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-30 11:14:07 +08:00
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4200 7fd9a85b-ad96-42d3-883c-3090e2eb8679
47 lines
1.2 KiB
ObjectPascal
47 lines
1.2 KiB
ObjectPascal
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}
|
|
|