unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus; type TForm1 = class(TForm) MainMenu1: TMainMenu; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Funkcje1: TMenuItem; Horner1: TMenuItem; Memo1: TMemo; Label5: TLabel; Wyk1: TMenuItem; Label6: TLabel; Label7: TLabel; Label8: TLabel; Edit5: TEdit; Edit6: TEdit; Sinus1: TMenuItem; Label9: TLabel; Label10: TLabel; Label11: TLabel; Edit7: TEdit; Edit8: TEdit; Label12: TLabel; Label13: TLabel; Label14: TLabel; Edit9: TEdit; Edit10: TEdit; Sinush1: TMenuItem; Wyj1: TMenuItem; procedure Horner1Click(Sender: TObject); procedure Wyk1Click(Sender: TObject); procedure Sinus1Click(Sender: TObject); procedure Sinush1Click(Sender: TObject); procedure Wyj1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} type wektor=array[0..10]of single; var a,b:wektor; procedure horner(var a,b:wektor; var x,s:single;n:integer); var i:integer; begin b[0]:=a[0]; for i:=1 to n do b[i]:=a[i]+b[i-1]*x; s:=b[n]; end; function fexp(x,eps:real):real; // x – wykładnik potęgi var t,s:real; k:integer; begin t:=1.0; s:=t; k:=0; while t>eps do begin k:=k+1; t:=t*x/k; s:=s+t; end; fexp:=s; end; function fsin(x,eps:real):real; var s,t:real; k:integer; begin t:=x; k:=1; s:=t; while abs(t)>(eps*abs(s)) do begin k:=k+2; t:=-t*sqr(x)/(k*(k-1)); s:=s+t; end; fsin:=s; end; function fsinh(x,eps:real):real; var s,t:real; k:integer; begin t:=x; k:=1; s:=t; while abs(t)>(eps*abs(s)) do begin k:=k+1; t:=t*sqr(x)/((2*k-2)*(2*k-1)); s:=s+t; end; fsinh:=s; end; procedure TForm1.Horner1Click(Sender: TObject); var c,x:single; begin a[0]:=strtofloat(edit1.text); a[1]:=strtofloat(edit2.text); a[2]:=strtofloat(edit3.text); a[3]:=strtofloat(edit4.text); x:=3; horner(a,b,x,c,3); memo1.Lines.Add(floattostr(c)); end; procedure TForm1.Wyk1Click(Sender: TObject); var x,eps,exp:real; begin x:=strtofloat(edit5.text); eps:=strtofloat(edit6.text); exp:=fexp(x,eps); memo1.Lines.Add(floattostr(exp)); end; procedure TForm1.Sinus1Click(Sender: TObject); var x,eps,sin:real; begin x:=strtofloat(edit7.text); eps:=strtofloat(edit8.text); while x>7 do x:=x-6.283185; while x<-7 do x:=x+6.283185; sin:=fsin(x,eps); memo1.Lines.Add(floattostr(sin)); end; procedure TForm1.Sinush1Click(Sender: TObject); var x,eps,sinh:real; begin x:=strtofloat(Edit9.text); eps:=strtofloat(Edit10.text); if x<=1 and x>=-1 begin sinh:=fsinh(x,eps); memo1.Lines.Add(floattostr(sinh)); end; end; procedure TForm1.Wyj1Click(Sender: TObject); begin close; end; end. //for i=1 to 100 do //x=i //rysowanie wykresow //form1.canvas.pixels[x.]:=clrbl;