Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Программирование цикла в Delphi 7 7 вариант нужен срочно

Александр Лепешинский Ученик (101), на голосовании 1 неделю назад
Вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) для x, изменяющихся от xn до xk, с заданным количеством шагов m (ℎ = ??−?? ? ). Близость значений S(x) и Y(x) во всем диапазоне значений x указывает на правильность вычисления S(x) и Y(x).
Голосование за лучший ответ
Jurijus Zaksas Искусственный Интеллект (445705) 1 месяц назад
Чему в данном случае равно n? Или с какой точностью надо вычислять ряд?
Александр ЛепешинскийУченик (101) 1 месяц назад
0,001 точность
Jurijus Zaksas Искусственный Интеллект (445705) Ща усе будет...
Александр ЛепешинскийУченик (101) 1 месяц назад
x:=xn;

Repeat
a:=1;
s:=1;
n:=0;

while abs(a) > e do

begin
Inc(n);
a:=-a*x/n;
s:=s+a;
end;
y:= (1+x*x)/2*(arctan(x)-x/2);
memo1.Lines.add(floattostrf(x,fffixed,6,2)+' '+floattostrF(s,fffixed,8,4)+' '+floattostrf(y,fffixed,8,4)+' '+ Inttostr(n));
x:=x+h;
until x>xk+h/2
Александр Лепешинский Ученик (101) Александр Лепешинский, пример
Александр ЛепешинскийУченик (101) 1 месяц назад
n это нач значение 0,1
Jurijus ZaksasИскусственный Интеллект (445705) 1 месяц назад
Примерно так (оформи вывод по нужным правилам):
 program project1; 

{$mode objfpc}{$H+}

uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
Classes, Math
{ you can add units after this };

function y(x: Double): Double;
begin
Result := (1 + sqr(x))/2*ArcTan(x)-x/2;
end;

function s(x: Double): Double;
const
e:Double = 0.001;
var
pm, xx, ss: Double;
n: integer;
begin
Result := 0;
pm := 1;
xx := sqr(x)*x;
n := 1;
repeat
ss:=xx/(4*sqr(n)-1);
Result:=Result + pm*ss;
inc(n);
xx := xx * sqr(x);
pm := -pm;
until abs(ss)<e;
end;
Jurijus ZaksasИскусственный Интеллект (445705) 1 месяц назад
   
const
xn: Double = 0.1;
xk: Double = 1.0;
m: Integer = 12;

var
x, h: Double;
n: integer;
begin
h:= (xk - xn) / m;
x := xn;
n:=1;
while (x <= xk) do
begin
WriteLn('s(',x,')=',s(x),', y(',x,')=',y(x));
x:=xn+h*n;
inc(n);
end;
Readln;
end.

Александр Лепешинский Ученик (101) Jurijus Zaksas, спасибо большое
Похожие вопросы