Program v Delphi na výpočet čísla Pi
Delphi & Pascal (česká wiki)
Kategória: KMP (Klub mladých programátorov)
Autor: Dalibor Martišek
Program: Pi_efektivne_unit.pas
Súbor exe: Pi_efektivne_pro.exe
Potrebné: Pi_efektivne.zip
Autor: Dalibor Martišek
Program: Pi_efektivne_unit.pas
Súbor exe: Pi_efektivne_pro.exe
Potrebné: Pi_efektivne.zip
Program v Delphi na výpočet čísla Pi. Ukážka 4 algoritmov optimálnych pre počítačové spracovanie.
{ Pi_Efektivne_Pro.pas Copyright (c) Dalibor Martisek } { Ukazka 4 algoritmov optimalnych pre pocitacove spracovanie. } { } { Datum:28.07.2006 http://www.trsek.com } unit Pi_Efektivne_Unit; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Label1: TLabel; EditK: TEdit; Edit1: TEdit; Edit2: TEdit; Button3: TButton; Edit3: TEdit; Label41: TLabel; EditPi: TEdit; Edit4: TEdit; Image1: TImage; Image2: TImage; Image3: TImage; Image4: TImage; Image5: TImage; Image6: TImage; Image7: TImage; Image8: TImage; EditS1: TEdit; EditS2: TEdit; EditS3: TEdit; EditS4: TEdit; Button1: TButton; procedure Sumy(Sender: TObject); procedure Finish(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Sumy(Sender: TObject); var k,n,ErrorReport :Integer; Jmen1,Jmen2,Suma :Extended; PrevodRetezec :String; begin Suma:=0; Val(EditK.Text,k,ErrorReport); For n:=0 to k do if odd(n) then Suma:=Suma-1/(2*n+1) else Suma:=Suma+1/(2*n+1); Str(Suma:18:17,PrevodRetezec); Edit1.Text:=PrevodRetezec; Suma:=4*Suma; Str(Suma:18:17,PrevodRetezec); EditS1.Text:=PrevodRetezec; Suma:=0; for n:=1 to k do if odd(n) then Suma:=Suma+1/(n*n) else Suma:=Suma-1/(n*n); Str(Suma:18:17,PrevodRetezec); Edit2.Text:=PrevodRetezec; Suma:=sqrt(12*Suma); Str(Suma:18:17,PrevodRetezec); EditS2.Text:=PrevodRetezec; Suma:=0; for n:=1 to k do if odd(n) then Suma:=Suma+1/(2*n-1)/(2*n-1)/(2*n-1) else Suma:=Suma-1/(2*n-1)/(2*n-1)/(2*n-1); Str(Suma:18:17,PrevodRetezec); Edit3.Text:=PrevodRetezec; Suma:=exp(1/3*ln(32*Suma)); Str(Suma:18:17,PrevodRetezec); EditS3.Text:=PrevodRetezec; Jmen1:=5;Jmen2:=239; Suma:=4/Jmen1-1/Jmen2; for n:=2 to k do begin Jmen1:=Jmen1*5*5;Jmen2:=Jmen2*239*239; if odd(n) then Suma:=Suma+1/(2*n-1)*(4/Jmen1-1/Jmen2) else Suma:=Suma-1/(2*n-1)*(4/Jmen1-1/Jmen2); end; Str(Suma:18:17,PrevodRetezec); Edit4.Text:=PrevodRetezec; Suma:=4*Suma; Str(Suma:18:17,PrevodRetezec); EditS4.Text:=PrevodRetezec; Str(pi:18:17,PrevodRetezec); EditPi.Text:=PrevodRetezec; end; procedure TForm1.Finish(Sender: TObject); begin Close end; end.