Значение функции sin2(x) можно Вычислите с помощью...
Значение функции sin2(x) можно Вычислите с помощью разложения ее в ряд Маклорена $$sin^{2}(x)=x^{2}-\frac{x^{4}}{3}+\frac{2x^{6}}{45}-...+(-1)^{n-1}2^{2n-1}\frac{x^{2n}}{(2n)!}+...$$ Вычислите sin2(x) с точностью EPS, т.е. вычисление суммы ряда нужно продолжать до тех пор, пока абсолютная величина очередного члена ряда не станет меньше EPS. Определите количество членов ряда, которое для этого понадобилось. Надо написать программу в delpi по данному условию должно выйти что-то типа того, только формула в расчёте другая:
Код
unit Unit1; {Выполнил Влад} {Вычислите sin2(x) с точностью EPS, т.е. вычисление суммы ряда нужно продолжать до тех пор, пока абсолютная величина очередного члена ряда не станет меньше EPS. Определите количество членов ряда, которое для этого понадобилось.} interface
function Mst(sender: TObject):boolean; var p : string; begin Mst :=false; with sender as TEdit do begin p:= Text; if (p='') or (p='-') or (p=',') or (p='-,') or (p=',-') then Mst :=true; end; end;
procedure TForm1.Button1Click(Sender: TObject); var x,eps,t,s:real; i:integer; begin if Mst (edit_x) or Mst (edit_eps) then begin showMessage ('Введены не все значения'); edit_x.text:=' '; edit_eps.text:=' '; exit; end; eps := strtoFloat(edit_eps.Text); x := strtoFloat(edit_x.Text); i:=1; t:=x*x; s:=t; while abs(t)>eps do begin inc(i); t:=x*x-(x*x*x)/3+2*(x*x*x*x)/45-t*x*x*4/(2*i*(2*i-1)); s:=s+t; end; label_otvet1.Caption :=floattostrf (s, ffgeneral,4,2); label_otvet2.Caption :=inttostr(i); label_otvet3.Caption :=floattostrf (sin(t), ffgeneral,4,2); end; procedure TForm1.Button2Click(Sender: TObject); begin showmessage ('Вычислите sin^2(x) с точностью EPS, т.е. вычисление суммы ряда нужно продолжать до тех пор, пока абсолютная величина очередного члена ряда не станет меньше EPS. Определите количество членов ряда, которое для этого понадобилось.'); end;
procedure TForm1.Edit_xKeyPress(Sender: TObject; var Key: Char); begin if not(key in['0'..'9', '-', #8]) then key:=#0; case key of '0'..'9',#8:; '-':if Edit_x.Text='' then key:='-' else key:=#0; ',':if Pos(',',Edit_x.Text)=0 then Key:=',' else key:=#0 end; end; procedure TForm1.Edit_EPSKeyPress(Sender: TObject; var Key: Char); begin if not(key in['1'..'9','0', ',' , #8]) then key:=#0; case key of '1'..'9',#8:; '-':if Edit_EPS.Text='' then key:='-' else key:=#0; ',':if Pos(',',Edit_EPS.Text)=0 then Key:=',' else key:=#0 end; end; end.