Advertisement
Guest User

symbolenewtona

a guest
Nov 8th, 2015
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.18 KB | None | 0 0
  1. unit prawiedobrze;
  2.  
  3.  
  4.  
  5.  
  6. {$mode objfpc}{$H+}
  7.  
  8. interface
  9.  
  10. uses
  11.   Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
  12.  
  13. type
  14.  
  15.   { TForm1 }
  16.  
  17.   TForm1 = class(TForm)
  18.     Button1: TButton;
  19.     Button2: TButton;
  20.     Edit1: TEdit;
  21.     Edit2: TEdit;
  22.     Edit3: TEdit;
  23.     Label1: TLabel;
  24.     Label2: TLabel;
  25.     Label3: TLabel;
  26.     Label4: TLabel;
  27.     procedure Button1Click(Sender: TObject);
  28.     procedure Button2Click(Sender: TObject);
  29.     procedure Label4Click(Sender: TObject);
  30.   private
  31.     { private declarations }
  32.   public
  33.     { public declarations }
  34.   end;
  35.  
  36. var
  37.   Form1: TForm1;
  38.   suma,i,t, n, p, k, n_minus_i_silnia, wynik: Int64;
  39.   n_str, k_str: string ;
  40.  
  41.  
  42.  
  43.  
  44. implementation
  45.  
  46. {$R *.lfm}
  47.  
  48. { TForm1 }
  49.  
  50. procedure TForm1.Button2Click(Sender: TObject);
  51. begin
  52.   Close;
  53. end;
  54.  
  55. procedure TForm1.Label4Click(Sender: TObject);
  56. begin
  57.  
  58. end;
  59.  
  60. procedure TForm1.Button1Click(Sender: TObject);
  61.  
  62.  
  63. begin
  64.  
  65.  n_str:=Edit1.Text;
  66.  k_str:=Edit2.Text;
  67.  TryStrToInt64( n_str,n);
  68.  TryStrToInt64( k_str,k);
  69.  begin
  70.   if not TryStrToInt64( n_str,n) then Edit1.Text:='Podales stringa!'
  71.   else                  begin
  72.     n:=StrToInt64(n_str) ;
  73.   if not n>-2 then Edit1.text:='Zla liczba'
  74.   else n:=StrtoInt64(n_str);
  75.   begin
  76.   if not TryStrToInt64( k_str,k) then Edit2.Text:='Podales stringa!'
  77.   else                  begin
  78.     k:=StrToInt64(k_str) ;
  79.   if not k>-2 then Edit2.text:='Zla liczba'
  80.   else k:=StrtoInt64(k_str);
  81.  
  82.  
  83.    wynik:=0;
  84.  
  85.    for p:=1 to k do //petla ktora oblicza ciag dwumianow newtona
  86.  
  87.    begin
  88.  
  89.  
  90.    suma:=1;
  91.    for i:=k+1 to n do      //petla ktora oblicza licznik ulamka
  92.    begin
  93.        suma:=suma*i;
  94.    end;
  95.  
  96.     n_minus_i_silnia:=1;
  97.  
  98.     for i:=1 to n-k do     //petla, ktora oblicza mianownik ulamka
  99.      begin
  100.          n_minus_i_silnia:=n_minus_i_silnia*i;
  101.     end;
  102.  
  103.  
  104.     if (wynik+(suma div n_minus_i_silnia) < 2147483647) then
  105.     wynik:=wynik+(suma div n_minus_i_silnia)
  106.     else Edit3.text:='przepelnienie danych';
  107.  
  108.  
  109.  
  110.     k:=k-1;
  111.  
  112.  
  113.  
  114.  
  115.     end;end;end;end;
  116.  
  117.     Edit3.Text:=IntToStr(wynik);     //pokazuje wynik
  118.     wynik:=0;
  119.  
  120.     end;end;end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement