Advertisement
Guest User

Full Code

a guest
Oct 1st, 2014
350
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.09 KB | None | 0 0
  1. unit Unit1;
  2.  
  3. {$mode objfpc}{$H+}
  4.  
  5. interface
  6.  
  7. uses
  8.   Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
  9.   StdCtrls, ExtCtrls, Buttons, Math;
  10.  
  11. type
  12.  
  13.   { TForm1 }
  14.  
  15.   TForm1 = class(TForm)
  16.     Edit1: TEdit;
  17.     Edit2: TEdit;
  18.     Edit3: TEdit;
  19.     Edit4: TEdit;
  20.     Edit5: TEdit;
  21.     Edit6: TEdit;
  22.     Edit7: TEdit;
  23.     Edit8: TEdit;
  24.     Image1: TImage;
  25.     Label1: TLabel;
  26.     Label2: TLabel;
  27.     Label3: TLabel;
  28.     Label4: TLabel;
  29.     Label5: TLabel;
  30.     PageControl1: TPageControl;
  31.     SpeedButton1: TSpeedButton;
  32.     StatusBar1: TStatusBar;
  33.     TabSheet1: TTabSheet;
  34.     TabSheet2: TTabSheet;
  35.     procedure SpeedButton1Click(Sender: TObject);
  36.   private
  37.     { private declarations }
  38.   public
  39.     { public declarations }
  40.   end;
  41.  
  42. var
  43.   Form1: TForm1;
  44.   x,y,detx,dety,det: double;
  45.  
  46. implementation
  47.  
  48. {$R *.lfm}
  49.  
  50. { TForm1 }
  51.  
  52. function getFrazione(x: double):string;
  53. var h1, h2, k1, k2, y, a, aux: double;
  54. begin
  55.  
  56.   //Assegnazione di valori
  57.   h1 := 1;
  58.   h2 := 0;
  59.   k1 := 0;
  60.   k2 := 1;
  61.   y := x;
  62.  
  63.   repeat
  64.    begin
  65.     a := floor(y);
  66.     aux := h1;
  67.     h1 := a*h1+h2;
  68.     h2 := aux;
  69.     aux := k1;
  70.     k1 := a*k1+k2;
  71.     k2 := aux;
  72.     y := 1/(y-a) ;
  73.    end;
  74.    until ( abs(x-h1/k1) > x*0.000001);
  75.  
  76.   Result := FloatToStr(h1) + '/' + FloatToStr(k1);
  77. end;
  78.  
  79. procedure TForm1.SpeedButton1Click(Sender: TObject);
  80. var a,b,c,d,e,f: double;
  81. begin
  82.  
  83.   a := StrToFloat(Edit1.text);
  84.   b := StrToFloat(Edit2.text);
  85.   c := StrToFloat(Edit3.text);
  86.   d := StrToFloat(Edit4.text);
  87.   e := StrToFloat(Edit5.text);
  88.   f := StrToFloat(Edit6.text);
  89.  
  90.   {calcolo nella matrice}
  91.   detx := (c*e)-(b*f);
  92.   dety := (a*f)-(c*d);
  93.   det  := (a*e)-(d*b);
  94.  
  95.   {esportazione dati}
  96.   if ( det <> 0 ) then
  97.   begin
  98.     x := detx/det;
  99.     y := dety/det;
  100.     Edit7.Text := getFrazione(x);
  101.     Edit8.Text := getFrazione(y);
  102.   end
  103.    else
  104.     if ((detx=0) and (dety=0)) then
  105.      begin
  106.       Edit7.Clear;
  107.       Edit8.Clear;
  108.      end
  109.     else
  110.    begin
  111.     Edit7.Clear;
  112.     Edit8.Clear;
  113.   end;
  114. end;
  115.  
  116. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement