All pastes #730637 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-10-09 12:18 UTC
rendered paste body
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;