Составиь программу в среде pascal вычислить сумму четных и нечетных членов
Составиь программку в среде pascal вычислить сумму четных и нечетных членов последовательности с общим членом Ak=(k+1)/(2k)2, где k =1,2,3...17
Задать свой вопрос1 ответ
Драбкина
Вероника
// PascalABC.NET 3.2, сборка 1488 от 21.06.2017
// Внимание! Если программка не работает, обновите версию!
1 Обыденный вариант
begin
var s:=SeqGen(17,k-gt;(k+2)/(4*Sqr(k+1)));
Writeln('Сумма четных членов ',s.Where((x,i)-gt;i.IsOdd).Sum);
Writeln('Сумма нечетных членов ',s.Where((x,i)-gt;i.IsEven).Sum);
end.
Итог
Сумма четных членов 0.43519602111678
Сумма нечетных членов 0.821643794807771
2. Вариант "для шибко умных" (с классом для простых дробей)
type
fraction=class
public
numerator:BigInteger;
denominator:BigInteger;
class function GCD(a,b:BigInteger):BigInteger;
begin
while blt;gt;0 do (a,b):=(b,a mod b);
Result:=a
end;
constructor Create(num:BigInteger:=0; denom:BigInteger:=1);
begin
var n:=GCD(num,denom);
numerator:=num div n;
denominator:=denom div n
end;
class function operator +(a,b:fraction):fraction;
begin
var n:=GCD(a.denominator,b.denominator);
Result:=new fraction(a.numerator*(b.denominator div n)+
b.numerator*(a.denominator div n),a.denominator div n*b.denominator);
end;
class procedure operator +=(var R:fraction; a:fraction);
begin
R:=R+a;
end;
end;
function Frc(a,b:BigInteger):fraction;
begin
Result:=new fraction(a,b);
end;
function Sumf(Self:sequence of fraction):fraction; extensionmethod;
begin
Result:=new fraction;
foreach var fr in Self do Result+=fr;
end;
function ToReal(Self:BigInteger):(real,integer); extensionmethod;
begin
var s:=Self.ToString;
var r:real;
if Real.TryParse(s,r) then Result:=(r,0)
else Result:=(s.Left(16).ToReal,s.Length-16)
end;
function ToReal(Self:fraction):real; extensionmethod;
begin
var a:=Self.numerator.ToReal;
var b:=Self.denominator.ToReal;
Result:=a[0]/b[0]*Power(10,a[1]-b[1])
end;
function Print(Self:fraction; s:string:=' '):fraction; extensionmethod;
begin
Result:=Self;
if Self.denominator=1 then Write(Self.numerator,s)
else Write(Self.numerator,'/',Self.denominator,s)
end;
begin
var f:=Range(2,17,2).Select(k-gt;frc(k+1,Sqr(2*k))).Sumf;
Write('Сумма четных членов '); f.Print; Writeln('= ',f.ToReal);
f:=Range(1,17,2).Select(k-gt;frc(k+1,Sqr(2*k))).Sumf;
Write('Сумма нечетных членов '); f.Print; Writeln('= ',f.ToReal);
Результат
Сумма четных членов 4913189/11289600 = 0.43519602111678
Сумма нечетных членов 192723465457/234558414090 = 0.82164379480777
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
Игорь 14 лет назад был на 8 лет моложе, чем его
Математика.
Два тела массами m1 и m2 находящие на расстоянии R друг
Физика.
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
Облако тегов