Advertisement
daniv1

Кльові штуки від Рабика

Apr 20th, 2018
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 4.43 KB | None | 0 0
  1. unit Unit2;
  2.  
  3. interface
  4.  
  5. uses
  6.   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  7.   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
  8.  
  9. type
  10.   TForm2 = class(TForm)
  11.     Label1: TLabel;
  12.     Label2: TLabel;
  13.     Label3: TLabel;
  14.     Label4: TLabel;
  15.     Label5: TLabel;
  16.     Label6: TLabel;
  17.     Label7: TLabel;
  18.     Label8: TLabel;
  19.     Edit1: TEdit;
  20.     Edit2: TEdit;
  21.     Edit3: TEdit;
  22.     Edit4: TEdit;
  23.     Edit5: TEdit;
  24.     Edit6: TEdit;
  25.     Edit7: TEdit;
  26.     Edit8: TEdit;
  27.     Label9: TLabel;
  28.     Button1: TButton;
  29.     Button2: TButton;
  30.     Button3: TButton;
  31.     Button4: TButton;
  32.     Button5: TButton;
  33.     procedure Button1Click(Sender: TObject);
  34.     procedure Button2Click(Sender: TObject);
  35.     procedure Button3Click(Sender: TObject);
  36.     procedure Button5Click(Sender: TObject);
  37.     procedure Button4Click(Sender: TObject);
  38.   private
  39.     { Private declarations }
  40.   public
  41.     { Public declarations }
  42.   end;
  43.  
  44. var
  45.   Form2: TForm2;
  46.   x1 , x2 ,x3 , y1 , y2 ,y3 , s: real;
  47.  
  48. implementation
  49.  
  50.  
  51.  
  52. function f(x: real) : real ;
  53. begin
  54.   f:= sin(x) / cos(x);
  55. end;
  56.            function calculateLength(x1, y1, x2, y2:real):real;
  57. begin
  58. calculateLength := sqrt( sqr(x2 - x1) + sqr(y2 - y1) );
  59. end;
  60. //обчислення півпериметра
  61. function calculateHalfOfPerimeter(l1, l2, l3:real):real;
  62. begin
  63. calculateHalfOfPerimeter := (l1 + l2 + l3) / 2;
  64. end;
  65. //обчислення площі
  66. function calculateSquare(x1, y1, x2, y2, x3, y3:real):real;
  67. var p, l1, l2, l3: real;
  68. begin
  69. l1 := calculateLength(x1, y1, x2, y2);
  70. l2 := calculateLength(x2, y2, x3, y3);
  71. l3 := calculateLength(x1, y1, x3, y3);
  72. p := calculateHalfOfPerimeter(l1, l2, l3);
  73. calculateSquare := sqrt( p * (p - l1) * (p - l2) * (p - l3) );
  74. end;
  75.  
  76. function maxFunction1(x : real  ; y: real  ) : real ;
  77. begin
  78.   maxFunction1 := sin(x + y)  ;
  79. end;
  80. function maxFunction2( z: real ) : real ;
  81. begin
  82.   maxFunction2 := sin(10 - 2*z) / cos(10 - 2*z) ;
  83. end;
  84. function maxFunction3( y: real  ) : real ;
  85. begin
  86.   maxFunction3 := 6* y* y* y;
  87. end;
  88. {$R *.dfm}
  89.  
  90. procedure TForm2.Button1Click(Sender: TObject);
  91. var y , x : real ;
  92. begin
  93.    x:= StrToFloat(edit1.Text);
  94.    edit2.Text:= FloatToStr(f(x));
  95. end;
  96.  
  97. procedure TForm2.Button2Click(Sender: TObject);
  98. var x, y ,z , max1 , max2, max3 : real ;
  99. begin
  100.  
  101. x:= StrToFloat(edit3.Text);
  102. y:= StrToFloat(edit4.Text);
  103. z:= StrToFloat(edit5.Text);
  104. max1 := maxFunction1(x , y);
  105. max2 := maxFunction2(z);
  106. max3 := maxFunction3(y);
  107.                  if(( max1 > max2 ) and(max1 > max3)) then
  108.                       begin
  109.                         edit6.Text:= FloatToStr(max1);
  110.                            end;
  111.                    if(( max2 > max1 ) and(max2 > max3)) then
  112.                  begin
  113.                         edit6.Text:= FloatToStr(max2);
  114.                  end;
  115.                       if(( max3 > max1 ) and(max3 > max2)) then
  116.                  begin
  117.                         edit6.Text:= FloatToStr(max3);
  118.                  end;
  119. end;
  120.  
  121.  
  122. procedure TForm2.Button3Click(Sender: TObject);
  123. var xt , yt , st1 , st2 , st3   , e, st: real ;
  124. begin
  125.      xt:= StrToFloat(edit7.Text);
  126.      yt:= StrToFloat(edit8.Text);
  127.      x1:= -1 ;
  128.      x2 := 1 ;
  129.      x3 :=1;
  130.      y1 := 1 ;
  131.      y2 := 1;
  132.      y3:= -1 ;
  133.  
  134. S := calculateSquare(x1, y1, x2, y2, x3, y3);
  135. //площа малих трикутників
  136. St1 := calculateSquare(xt, yt, x1, y1, x3, y3);
  137. St2 := calculateSquare(x2, y2, xt, yt, x3, y3);
  138. St3 := calculateSquare(x1, y1, x2, y2, xt, yt);
  139. //сума площ малих трикутників
  140. St := St1 + St2 + St3;
  141. e := 0.0001;
  142. if ( (xt = x1) and (yt = y1) )
  143. or ( (xt = x2) and (yt = y2) )
  144. or ( (xt = x3) and (yt = y3) ) then //якщо на куті
  145. begin
  146. Label9.Caption:='Point is on kut';
  147. end
  148. else if (St1<e)
  149. or (St2<e)
  150. or (St3<e) then //якщо на стороні
  151. begin
  152. Label9.Caption :='Point is on one of the sides';
  153. end
  154. else if (St + e >= S) and (St - e <= S) then //якщо просто всередині
  155. begin
  156. Label9.Caption :='Point is inside triangle';
  157. end
  158. else
  159. begin
  160. label9.Caption :='OUT OF TRIANGLE'; //якщо поза трикутником
  161. end;
  162.  
  163. end;
  164.  
  165. procedure TForm2.Button4Click(Sender: TObject);
  166. begin
  167. edit1.Text := '';
  168. edit2.Text := '';
  169. edit3.Text := '';
  170. edit4.Text := '';
  171. edit5.Text := '';
  172. edit6.Text := '';
  173. edit7.Text := '';
  174. edit8.Text := '';
  175. end;
  176.  
  177. procedure TForm2.Button5Click(Sender: TObject);
  178. begin
  179. Close;
  180. end;
  181.  
  182. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement