Guest User

Untitled

a guest
Jan 13th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 3.49 KB | None | 0 0
  1. unit Unit2;
  2. interface
  3.  uses StdCtrls, SysUtils;
  4.    Type
  5.        fun = function(x : extended):extended; // Объявление типа функция
  6.              {Расчет таблицы функции f (табуляция функции)}
  7.   procedure Tabl(f:fun;xn,xk:extended; m: word; Mem1 : TMemo);
  8. implementation
  9.   procedure Tabl;
  10.      var x,y,h: extended;
  11.          i : integer;
  12.     begin
  13.     x:=xn;  h:=(xk-xn)/m;
  14.  for i:=1 to m+1 do begin
  15.      y:=f(x);
  16.     Mem1.Lines.Add(' x='+FloatToStrf(x,fffixed,8,3)+
  17.                                 ' y='+FloatToStrf(y,fffixed,8,3));
  18.         x:=x+h;
  19.                                end;
  20.      end;
  21. end.
  22.  
  23.  
  24.  
  25. unit Unit1;
  26.  
  27. interface
  28.  
  29. uses
  30.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  31.   Dialogs,Math,Unit2, StdCtrls, Buttons, ExtCtrls;
  32.  
  33. type
  34.   TForm1 = class(TForm)
  35.     edt1: TEdit;
  36.     edt2: TEdit;
  37.     edt3: TEdit;
  38.     edt4: TEdit;
  39.     mmo1: TMemo;
  40.     btn1: TBitBtn;
  41.     btn2: TBitBtn;
  42.     lbl1: TLabel;
  43.     lbl2: TLabel;
  44.     lbl3: TLabel;
  45.     lbl4: TLabel;
  46.     rg1: TRadioGroup;
  47.     procedure FormCreate(Sender: TObject);
  48.     procedure btn1Click(Sender: TObject);
  49.   private
  50.     { Private declarations }
  51.   public
  52.     { Public declarations }
  53.   end;
  54.  
  55. var
  56.   Form1: TForm1;
  57.     xn,xk,e,h : extended;
  58.   m : word;
  59.  
  60.  
  61. implementation
  62.  
  63. {$R *.dfm}
  64. function sx(x:extended):extended;
  65.  var a,n,s : extended;
  66.      k : integer;
  67. begin
  68.     k:=-1;  a:=1;  n:=0; s:=0;
  69.   try
  70.          while (abs(a) > e) do begin
  71.               n:=n+1;
  72.               a:=-a*sqr(2*x)/(4*sqr(n)-2*n);
  73.               s:=s+a;
  74.            end;
  75.        Result:=s;
  76.    except
  77. on EInvalidOp do  
  78.                k:=MessageDlg('Неправильная операция с плавающей точкой. '+  
  79.                                         ' Продолжить вычисления?',mtError,[mbYes,mbNo],0);
  80. on EOverFlow do  
  81.                k:=MessageDlg('Переполнение при выполне-нии операции с'+
  82.       ' плавающей точкой! Продолжить вычисления?',mtError,[mbYes,mbNo],0);
  83.       else  
  84.                k:=MessageDlg('Возникла неизвестная исключительная ситуация!'+
  85.                                         ' Продолжить вычисления?',mtError,[mbYes,mbNo],0);
  86.    end;
  87.      case k of
  88.       mrYes : Result:=0;
  89.       mrNo  : Halt(1);
  90.       end;  
  91. end;
  92.  
  93. function yx(x:extended):extended;
  94. begin
  95.   Result:=2*(Sqr(Cos(x))-1);
  96. end;
  97.  
  98.  
  99. procedure TForm1.FormCreate(Sender: TObject);
  100. begin
  101. Mmo1.Clear;
  102.   RG1.ItemIndex:=0;
  103.     Edt1.Text:='0,1';
  104.     Edt2.Text:='1';
  105.     Edt3.Text:='6';
  106.     Edt4.Text:='0,0001';
  107.  
  108. end;
  109.  
  110. procedure TForm1.btn1Click(Sender: TObject);
  111. begin
  112. Mmo1.Clear;
  113.         Mmo1.Lines.Add('Лаб. раб. №6 ст. гр. 152001 Бондаря С С');
  114.      xn:=StrToFloat(Edt1.Text);
  115.         Mmo1.Lines.Add(' xn='+FloatToStrF(xn,ffFixed,6,2));
  116.      xk:=StrToFloat(Edt2.Text);
  117.         Mmo1.Lines.Add(' xk='+FloatToStrF(xk,ffFixed,6,2));
  118.      m:=StrToInt(Edt3.Text);
  119.  
  120.         Mmo1.Lines.Add(' h='+IntToStr(m));
  121.      e:=StrToFloat(Edt4.Text);
  122.         Mmo1.Lines.Add(' e='+FloatToStrF(e,ffFixed,8,5));
  123.     case RG1.ItemIndex of
  124.      0 : begin
  125.           Mmo1.Lines.Add('Расчет S(x)');
  126.           Tabl(sx,xn,xk,m,Mmo1);
  127.          end;
  128.      1 : begin
  129.           Mmo1.Lines.Add('Расчет Y(x)');
  130.           Tabl(yx,xn,xk,m,Mmo1);
  131.          end;
  132.     end;
  133. end;
  134.  
  135.  
  136.  
  137. end.
Add Comment
Please, Sign In to add comment