Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit Unit3;
- {$mode objfpc}{$H+}
- interface
- uses
- Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
- Menus, ExtCtrls;
- type
- { TLabrab1Results }
- TLabrab1Results = class(TForm)
- Vichislit: TButton;
- Clear: TButton;
- Image1: TImage;
- Zadacha: TLabel;
- Label2: TLabel;
- OtvetZ: TLabel;
- Reshenie: TLabel;
- Delenie: TButton;
- ZnachenieX: TEdit;
- ZnachenieY: TEdit;
- LabelX: TLabel;
- LabelY: TLabel;
- Nazad: TButton;
- Vnachalo: TButton;
- procedure VichislitClick(Sender: TObject);
- procedure ClearClick(Sender: TObject);
- procedure VnachaloClick(Sender: TObject);
- procedure NazadClick(Sender: TObject);
- procedure ZnachenieXChange(Sender: TObject);
- procedure ZnachenieYChange(Sender: TObject);
- procedure ZnachenieYKeyPress(Sender: TObject; var Key: char);
- procedure ZnachenieXKeyPress(Sender: TObject; var Key: char);
- private
- { private declarations }
- public
- { public declarations }
- end;
- var
- Labrab1Results: TLabrab1Results;
- implementation
- uses Unit1, Unit2;
- {$R *.lfm}
- { TLabrab1Results }
- procedure TLabrab1Results.VnachaloClick(Sender: TObject);
- begin
- Titylnik.show;
- Labrab1Results.hide;
- end;
- procedure TLabrab1Results.NazadClick(Sender: TObject);
- begin
- Labrab1.show;
- Labrab1Results.hide;
- end;
- procedure TLabrab1Results.ZnachenieXChange(Sender: TObject);
- begin
- if ((Length(ZnachenieX.Text) > 1) and (ZnachenieX.Text[Length(ZnachenieX.Text)] = '-')) Then
- begin
- ZnachenieX.Text := Copy(ZnachenieX.Text, 1, Length(ZnachenieX.Text) - 1);
- ZnachenieX.SelStart := Length(ZnachenieX.Text);
- ZnachenieX.SelText := '';
- end;
- end;
- procedure TLabrab1Results.ZnachenieYChange(Sender: TObject);
- begin
- if ((Length(ZnachenieY.Text) > 1) and (ZnachenieY.Text[Length(ZnachenieY.Text)] = '-')) Then
- begin
- ZnachenieY.Text := Copy(ZnachenieY.Text, 1, Length(ZnachenieY.Text) - 1);
- ZnachenieY.SelStart := Length(ZnachenieY.Text);
- ZnachenieY.SelText := '';
- end;
- end;
- procedure TLabrab1Results.ZnachenieYKeyPress(Sender: TObject; var Key: char);
- begin
- Case Key Of
- '0'..'9': ;
- #8: ;
- #13: Vichislit.Click;
- '.',',','-':
- Begin
- If Key='.' Then
- Key:=',';
- If Pos(',',ZnachenieY.Text)<>0 Then
- Key:=Chr(0);
- If Pos('-',ZnachenieY.Text)<>0 Then
- Key:=Chr(0);
- end;
- Else
- Key:=Chr(0);
- end;
- end;
- procedure TLabrab1Results.ZnachenieXKeyPress(Sender: TObject; var Key: char);
- begin
- Case Key Of
- '0'..'9': ;
- #8: ;
- #13: Vichislit.Click;
- '.',',','-':
- Begin
- If Key='.' Then
- Key:=',';
- If Pos(',',ZnachenieX.Text)<>0 Then
- Key:=Chr(0);
- If Pos('-',ZnachenieX.Text)<>0 Then
- Key:=Chr(0);
- end;
- Else
- Key:=Chr(0);
- end;
- end;
- procedure TLabrab1Results.ClearClick(Sender: TObject);
- begin
- Reshenie.Caption:='?';
- ZnachenieX.clear;
- ZnachenieY.clear;
- end;
- procedure TLabrab1Results.VichislitClick(Sender: TObject);
- var X, Y, Z: Real;
- i:integer;
- check:boolean;
- begin
- if (ZnachenieX.text='') or (ZnachenieY.text='')
- or (ZnachenieX.text='-') or (ZnachenieY.text='-')
- or (ZnachenieX.text=',') or (ZnachenieY.text=',') then
- Begin
- showmessage ('Заполните корректно оба поля');
- Reshenie.caption:= '?'
- end
- else
- Begin
- check:=True;
- for i:= 1 to (length(ZnachenieX.text) or length(ZnachenieY.text)) do
- Begin
- if ((ZnachenieX.text[i] = '-') or (ZnachenieY.text[i] = '-')) and (i <> 1) then
- check:=False;
- end;
- if check = False then
- showmessage('Арифметические действия внутри переменных запрещены')
- else
- Begin
- Y:= StrToFloat (ZnachenieY.text);
- X:= StrToFloat (ZnachenieX.text);
- if (X+Y)>0 then
- Begin
- Z:= ((X-Y)/(sqrt(X+Y)))+ (X*(sqr(Y)))/ ((sin (sqr(X)))*(sqr(cos(Y))));
- Reshenie.caption:= FloatToStr(Z);
- end
- else
- if (X+Y)=0 then
- Begin
- Reshenie.caption:= '?';
- Showmessage('Знаменатель не может быть равен нулю')
- end
- else
- if (X+Y)<0 then
- Begin
- Reshenie.caption:= '?';
- Showmessage ('Подкоренное значение не может быть отрицательным');
- end
- end
- end
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement