Var a,s,p:real; begin a:=8.5; s:=0; while a<=40.9+0.005 do begin s:=s+a; a:=a+0.1; end; writeln('s = ',s:6:2); p:=1; a:=1; while a<=3+0.005 do begin p:=p*a; a:=a+0.25; end; writeln('p = ',p:6:2); if s>p then writeln('Сумма больше') else writeln('Произведение больше'); end.
function gcd(a: integer; b: integer): integer; {Нахождение НОД} var i: integer; begin while b <> 0 do begin a := a mod b; i := b; b := a; a := i end; result := a end;
function RedFrac(a: Frac): Frac; {Сокращение дроби} var igcd: integer; r: Frac; begin igcd := gcd(a.P, a.Q); r.P := a.P div igcd; r.Q := a.Q div igcd; RedFrac := r end;
function Add(a, b: Frac): Frac; {Сложение дробей} var r: Frac; begin r.P := a.P * b.Q + b.P * a.Q; r.Q := a.Q * b.Q; Add := RedFrac(r) end;
function Mult(a, b: Frac): Frac; {Умножение дробей} var r: Frac; begin r.P := a.P * b.P; r.Q := a.Q * b.Q; Mult := RedFrac(r) end;
var m, n, k: Frac;
begin m.P := 4; m.Q := 15; {4/15} n.P := 9; n.Q := 25; {9/25} k := Add(m, n); Writeln(k.P, '/', k.Q); k := Mult(m, n); Writeln(k.P, '/', k.Q); end.
begin
a:=8.5;
s:=0;
while a<=40.9+0.005 do
begin
s:=s+a;
a:=a+0.1;
end;
writeln('s = ',s:6:2);
p:=1;
a:=1;
while a<=3+0.005 do
begin
p:=p*a;
a:=a+0.25;
end;
writeln('p = ',p:6:2);
if s>p
then writeln('Сумма больше')
else writeln('Произведение больше');
end.
Результат:
s = 8027.50
p = 304.54
Сумма больше