Автор работы: Пользователь скрыл имя, 30 Января 2013 в 09:46, реферат
Создадим универсальный калькулятор на Delphi, который будет считать множество функций.
Приступим..
Для начала нам нужен 1 Edit..сразу-же очищаем его Text, на событие OnKeyPress пишем следующий код:
Калькулятор на Delphi
Создадим универсальный
калькулятор на Delphi, который будет
считать множество функций.
case key of '0'..'9',',':; {Запрещаем в поле Edit ввод любых символов, кроме цифр и запятых} else key:=#0;end;
var i,n:integer; begin n:=pos(',',edit1.text); {ищем первую запятую в поле} for i:=n+1 to length(edit1.text) do if edit1.text[i]=',' then edit1.clear; {Если находится ещё одна запятая после первой - очищаем поле}
procedure TForm1.Button7Click(Sender: TObject); begin edit1.Text:=edit1.Text+'1'; end; if edit1.Text='00' then edit1.Text:='0'; {позволяет ввод
лишь одного нуля вначале}
var Form1: TForm1; a,b,d:extended; c:char;
if edit1.Text<>'' then a:=strtofloat(edit1.Text); {Проверяем введено ли число в поле} c:='+'; {Сохраняем математическое действие} edit1.Clear; procedure TForm1.Button12Click(Sender: TObject); begin if edit1.Text<>'' then b:=strtofloat(edit1.Text); case c of '+':d:=a+b; '-':d:=a*b; '*':d:=a*b; '/':d:=a/b;end; edit1.Text:=floattostr(d); end;
procedure TForm1.Button17Click(Sender: TObject); begin edit1.Text:=floattostr(pi); {Вписываем в поле число Пи} end;
procedure TForm1.Button18Click(Sender: TObject); begin edit1.Text:=floattostr(cos( end; procedure TForm1.Button21Click(Sender: TObject); begin edit1.Text:=floattostr(sqrt( end;
procedure TForm1.Button23Click(Sender: TObject); begin edit1.Text:=floattostr(-( end;
if edit1.Text<>'' then b:=strtofloat(edit1.Text); case c of '+':d:=a+b; '-':d:=a*b; '*':d:=a*b; '/':begin if edit1.Text<>'' then b:=strtofloat(edit1.Text); if b=0 then showmessage('На ноль делить нельзя') else d:=a/b;end; 'm':d:=round(a) mod round(b); 'd':d:=round(a) div round(b); 'o':d:=round(a) or round(b); 'x':d:=round(a) xor round(b); 'a':d:=round(a) and round(b); '^':d:=exp(b*ln(a)); end; edit1.Text:=floattostr(d); end;
procedure TForm1.Button32Click(Sender: TObject); var x:extended; i:integer; begin if edit1.Text<>'' then begin x:=strtofloat(edit1.Text); for i:=1 to round(x)-1 do x:=x*i; edit1.Text:=floattostr(x);end; end;
procedure TForm1.Button35Click(Sender: TObject); begin if edit1.Text<>'' then edit1.Text:= floattostr(strtofloat(edit1. end;
procedure TForm1.Button40Click(Sender: TObject); begin if edit1.Text<>'' then edit1.Text:=floattostr(exp( end;
procedure TForm1.Button30Click(Sender: TObject); begin if edit1.Text<>'' then edit1.Text:=floattostr(trunc( end;
procedure TForm1.Button29Click(Sender: TObject); begin if edit1.Text<>'' then edit1.Text:=floattostr(-( end;
procedure TForm1.Button31Click(Sender: TObject); begin if edit1.Text<>'' then if strtofloat(edit1.Text)>0 then edit1.Text:=floattostr(ln( end;
procedure TForm1.Button36Click(Sender: TObject); var s:string; begin s:=edit1.Text; delete(s,length(s),1); edit1.Text:=s; end;
procedure TForm1.Button38Click(Sender: TObject); begin edit1.Clear; end;
procedure TForm1.Button37Click(Sender: TObject); begin close(); end;
|