Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Report by IAG.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.17 Mб
Скачать
  1. Научный калькулятор

Интерфейс:

Код программы:

unit Unit5;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Menus, ExtCtrls, Grids, XPMan;

type

TForm5 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

Button6: TButton;

Button7: TButton;

Button8: TButton;

Button9: TButton;

Button10: TButton;

Button11: TButton;

Button12: TButton;

Button13: TButton;

Button14: TButton;

Edit1: TEdit;

Button15: TButton;

Button16: TButton;

Button17: TButton;

Button20: TButton;

Button21: TButton;

Button22: TButton;

Button23: TButton;

Button24: TButton;

Button25: TButton;

Button26: TButton;

Button27: TButton;

Button28: TButton;

Button29: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure Button9Click(Sender: TObject);

procedure Button10Click(Sender: TObject);

procedure Button11Click(Sender: TObject);

procedure Button13Click(Sender: TObject);

procedure Button14Click(Sender: TObject);

procedure Button15Click(Sender: TObject);

procedure Button16Click(Sender: TObject);

procedure Button12Click(Sender: TObject);

procedure Button17Click(Sender: TObject);

procedure N21Click(Sender: TObject);

procedure N31Click(Sender: TObject);

procedure N41Click(Sender: TObject);

procedure N61Click(Sender: TObject);

procedure N2101Click(Sender: TObject);

procedure N1081Click(Sender: TObject);

procedure N16101Click(Sender: TObject);

procedure N32101Click(Sender: TObject);

procedure Button18Click(Sender: TObject);

procedure Button20Click(Sender: TObject);

procedure Button21Click(Sender: TObject);

procedure Button22Click(Sender: TObject);

procedure Button23Click(Sender: TObject);

procedure Button24Click(Sender: TObject);

procedure Button25Click(Sender: TObject);

procedure Button26Click(Sender: TObject);

procedure Button27Click(Sender: TObject);

procedure Button28Click(Sender: TObject);

procedure Button29Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

type

Tmass=array of Real;

Tmatrix=array of Tmass;

var

Form5: TForm5;

num1,num2:real;

doit:string;

n:integer;

implementation

{$R *.dfm}

//Ну тут комментировать особенно нечего. Просто задаем команды каждой кнопке

//И отправляем ее в Edit1

procedure TForm5.Button10Click(Sender: TObject);

begin

Edit1.Text:=Edit1.Text+floattostr(0);

end;

procedure TForm5.Button11Click(Sender: TObject);

begin

Edit1.Clear;

num1:=0;

num2:=0;

doit:='';

end;

procedure TForm5.Button1Click(Sender: TObject);

begin

Edit1.Text:=Edit1.Text+floattostr(1);

end;

procedure TForm5.Button20Click(Sender: TObject);

begin

num1:=strtofloat(Edit1.Text);

Edit1.Text:=floattostr(ln(num1));

end;

procedure TForm5.Button21Click(Sender: TObject);

begin

num1:=strtofloat(Edit1.Text);

Edit1.Text:=floattostr(cos(num1));

end;

procedure TForm5.Button22Click(Sender: TObject);

begin

num1:=strtofloat(Edit1.Text);

Edit1.Text:=floattostr(sin(num1));

end;

procedure TForm5.Button23Click(Sender: TObject);

begin

num1:=strtofloat(Edit1.Text);

Edit1.Text:=floattostr(sin(num1)/cos(num1));

end;

procedure TForm5.Button24Click(Sender: TObject);

begin

num1:=strtofloat(Edit1.Text);

Edit1.Text:=floattostr(cos(num1)/sin(num1));

end;

procedure TForm5.Button25Click(Sender: TObject);

begin

num1:=strtofloat(Edit1.Text);

Edit1.Text:=floattostr(exp(num1*ln(num1)));

end;

procedure TForm5.Button2Click(Sender: TObject);

begin

Edit1.Text:=Edit1.Text+floattostr(2);

end;

procedure TForm5.Button3Click(Sender: TObject);

begin

Edit1.Text:=Edit1.Text+floattostr(3);

end;

procedure TForm5.Button4Click(Sender: TObject);

begin

Edit1.Text:=Edit1.Text+floattostr(4);

end;

procedure TForm5.Button5Click(Sender: TObject);

begin

Edit1.Text:=Edit1.Text+floattostr(5);

end;

procedure TForm5.Button6Click(Sender: TObject);

begin

Edit1.Text:=Edit1.Text+floattostr(6);

end;

procedure TForm5.Button7Click(Sender: TObject);

begin

Edit1.Text:=Edit1.Text+floattostr(7);

end;

procedure TForm5.Button8Click(Sender: TObject);

begin

Edit1.Text:=Edit1.Text+floattostr(8);

end;

procedure TForm5.Button9Click(Sender: TObject);

begin

Edit1.Text:=Edit1.Text+floattostr(9);

end;

procedure TForm5.Button13Click(Sender: TObject);

begin

num1:=strtofloat(Edit1.Text);

doit:='плюс';

Edit1.Clear;

end;

procedure TForm5.Button14Click(Sender: TObject);

begin

num1:=strtofloat(Edit1.Text);

doit:='минус';

Edit1.Clear;

end;

procedure TForm5.Button15Click(Sender: TObject);

begin

num1:=strtofloat(Edit1.Text);

doit:='умножить';

Edit1.Clear;

end;

procedure TForm5.Button16Click(Sender: TObject);

begin

num1:=strtofloat(Edit1.Text);

doit:='разделить';

Edit1.Clear;

end;

procedure TForm5.Button12Click(Sender: TObject);

begin

num2:=strtofloat(Edit1.Text);

if doit='плюс'

then Edit1.Text:=floattostr(num1+num2);

if doit='минус'

then Edit1.Text:=floattostr(num1-num2);

if doit='умножить'

then Edit1.Text:=floattostr(num1*num2);

if doit='разделить'

then if num2=0 then begin

MessageDlg('На ноль делить нельзя!!!',mtInformation,[mbok],0);end else

Edit1.Text:=floattostr(num1/num2);

if doit='степень'

then Edit1.Text:=floattostr(exp(num2*ln(num1)));

if doit='логарифм'

then Edit1.Text:=floattostr(ln(num1)/ln(num2));

num1:=0;

num2:=0;

doit:='';

end;

procedure TForm5.Button17Click(Sender: TObject);

begin

Edit1.Text:=Edit1.Text+',';

end;

procedure TForm5.Button18Click(Sender: TObject);

begin

num1:=strtofloat(Edit1.Text);

if num1<0 then begin MessageDlg('Под знаком корня не может быть отрицательное число!!!',mtInformation,[mbok],0);end

else Edit1.Text:=floattostr(sqrt(num1));

end;

procedure TForm5.N21Click(Sender: TObject);

var

b:array[1..20] of integer;

o,p,j,t:integer;

s:string;

begin

p:=strtoint(edit1.Text);

t:=2;

o:=0;

while p<>0 do begin

o:=o+1;

b[o]:=p mod t;

p:=p div t;

end;

s:='';

for j:=o downto 1 do

s:=s+chr(b[j]+48+round(b[j]/19)*7);

edit1.Text:=s;

end;

procedure TForm5.N31Click(Sender: TObject);

var

b1:array[1..20] of integer;

o1,p1,j1,t1:integer;

s1:string;

begin

p1:=strtoint(edit1.Text);

t1:=8;

o1:=0;

while p1<>0 do begin

o1:=o1+1;

b1[o1]:=p1 mod t1;

p1:=p1 div t1;

end;

s1:='';

for j1:=o1 downto 1 do

s1:=s1+chr(b1[j1]+48+round(b1[j1]/19)*7);

edit1.Text:=s1;

end;

procedure TForm5.N41Click(Sender: TObject);

var

b2:array[1..20] of integer;

o2,p2,j2,t2:integer;

s2:string;

begin

p2:=strtoint(edit1.Text);

t2:=16;

o2:=0;

while p2<>0 do begin

o2:=o2+1;

b2[o2]:=p2 mod t2;

p2:=p2 div t2;

end;

s2:='';

for j2:=o2 downto 1 do

s2:=s2+chr(b2[j2]+48+round(b2[j2]/19)*7);

edit1.Text:=s2;

end;

procedure TForm5.N61Click(Sender: TObject);

var

b3:array[1..20] of integer;

o3,p3,j3,t3:integer;

s3:string;

begin

p3:=strtoint(edit1.Text);

t3:=32;

o3:=0;

while p3<>0 do begin

o3:=o3+1;

b3[o3]:=p3 mod t3;

p3:=p3 div t3;

end;

s3:='';

for j3:=o3 downto 1 do

s3:=s3+chr(b3[j3]+48+round(b3[j3]/19)*7);

edit1.Text:=s3;

end;

procedure TForm5.N2101Click(Sender: TObject);

var

a4:array[1..20]of integer;

i4,j4,r4:integer;

s4,m4:real;

k4:string;

begin

k4:=edit1.text;

r4:=2;

s4:=0;

for i4:=length(k4) downto 1 do begin

j4:=ord(k4[i4]);

s4:=s4+(j4-48-round((j4-48)/19)*7)*exp((length(k4)-i4)*ln(r4));

end;

edit1.Text:=floattostr(s4);

end;

procedure TForm5.N1081Click(Sender: TObject);

var

a5:array[1..20]of integer;

i5,j5,r5:integer;

s5,m5:real;

k5:string;

begin

k5:=edit1.text;

r5:=8;

s5:=0;

for i5:=length(k5) downto 1 do begin

j5:=ord(k5[i5]);

s5:=s5+(j5-48-round((j5-48)/19)*7)*exp((length(k5)-i5)*ln(r5));

end;

edit1.Text:=floattostr(s5);

end;

procedure TForm5.N16101Click(Sender: TObject);

var

a6:array[1..20]of integer;

i6,j6,r6:integer;

s6,m6:real;

k6:string;

begin

k6:=edit1.text;

r6:=16;

s6:=0;

for i6:=length(k6) downto 1 do begin

j6:=ord(k6[i6]);

s6:=s6+(j6-48-round((j6-48)/19)*7)*exp((length(k6)-i6)*ln(r6));

end;

edit1.Text:=floattostr(s6);

end;

procedure TForm5.N32101Click(Sender: TObject);

var

a7:array[1..20]of integer;

i7,j7,r7:integer;

s7,m7:real;

k7:string;

begin

k7:=edit1.text;

r7:=32;

s7:=0;

for i7:=length(k7) downto 1 do begin

j7:=ord(k7[i7]);

s7:=s7+(j7-48-round((j7-48)/19)*7)*exp((length(k7)-i7)*ln(r7));

end;

edit1.Text:=floattostr(s7);

end;

procedure TForm5.Button26Click(Sender: TObject);

begin

num1:=strtofloat(Edit1.Text);

doit:='степень';

Edit1.Clear;

end;

procedure TForm5.Button27Click(Sender: TObject);

begin

num1:=strtofloat(Edit1.Text);

Edit1.Text:=floattostr(ln(num1)/ln(10));

end;

procedure TForm5.Button28Click(Sender: TObject);

begin

num1:=strtofloat(Edit1.Text);

if num1=0 then begin MessageDlg('На ноль делить нельзя!!!',mtInformation,[mbok],0);end

else Edit1.Text:=floattostr(1/num1);

end;

procedure TForm5.Button29Click(Sender: TObject);

begin

num1:=strtofloat(Edit1.Text);

doit:='логарифм';

Edit1.Clear;

end;

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]