Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2010, 20:32   #1
SPQR10000
Пользователь
 
Регистрация: 23.09.2009
Сообщений: 48
По умолчанию Калькулятор

Привет!Я вот пишу сейчас инженерный калькулятор на Делфи 7!
Вы не подскажете,как мне запрограммировать клавишу "+/-"?
SPQR10000 вне форума Ответить с цитированием
Старый 17.02.2010, 20:35   #2
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

Код:
if edt1.text[1]='-' then edt1.text[1]:=''
else edt1.text:='-'+edt1.text;
Google2010 вне форума Ответить с цитированием
Старый 17.02.2010, 20:43   #3
SPQR10000
Пользователь
 
Регистрация: 23.09.2009
Сообщений: 48
По умолчанию

Цитата:
Сообщение от Google2010 Посмотреть сообщение
Код:
if edt1.text[1]='-' then edt1.text[1]:=''
else edt1.text:='-'+edt1.text;
спасибо,конечно,но твой код у меня не сработал!
Вот мой код калькулятора!
unit Dcal;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TCalc = class(TForm)
Pole: TEdit;
B7: TButton;
B8: TButton;
B5: TButton;
Plus: TButton;
Bb: TButton;
Bplus: TButton;
B0: TButton;
B1: TButton;
B2: TButton;
B3: TButton;
B6: TButton;
B9: TButton;
B4: TButton;
Delit: TButton;
Ravno: TButton;
Umn: TButton;
Minus: TButton;
Ln: TButton;
Button1: TButton;
Back: TButton;
procedure B0Click(Sender: TObject);
procedure B1Click(Sender: TObject);
procedure B2Click(Sender: TObject);
procedure B3Click(Sender: TObject);
procedure B4Click(Sender: TObject);
procedure B5Click(Sender: TObject);
procedure B6Click(Sender: TObject);
procedure B7Click(Sender: TObject);
procedure B8Click(Sender: TObject);
procedure B9Click(Sender: TObject);
procedure BbClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure PlusClick(Sender: TObject);
procedure MinusClick(Sender: TObject);
procedure UmnClick(Sender: TObject);
procedure DelitClick(Sender: TObject);
procedure RavnoClick(Sender: TObject);
procedure BplusClick(Sender: TObject);
procedure BminusClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Calc: TCalc;
d,v,o:real;
mode:integer;
implementation

{$R *.dfm}

procedure TCalc.B0Click(Sender: TObject);
begin
pole.Text:=pole.Text+'0';
end;

procedure TCalc.B1Click(Sender: TObject);
begin
pole.Text:=pole.Text+'1';
end;

procedure TCalc.B2Click(Sender: TObject);
begin
pole.Text:=pole.Text+'2';
end;

procedure TCalc.B3Click(Sender: TObject);
begin
pole.Text:=pole.Text+'3';
end;

procedure TCalc.B4Click(Sender: TObject);
begin
pole.Text:=pole.Text+'4';
end;

procedure TCalc.B5Click(Sender: TObject);
begin
pole.Text:=pole.Text+'5';
end;

procedure TCalc.B6Click(Sender: TObject);
begin
pole.Text:=pole.Text+'6';
end;

procedure TCalc.B7Click(Sender: TObject);
begin
pole.Text:=pole.Text+'7';
end;

procedure TCalc.B8Click(Sender: TObject);
begin
pole.Text:=pole.Text+'8';
end;

procedure TCalc.B9Click(Sender: TObject);
begin
pole.Text:=pole.Text+'9';
end;

procedure TCalc.BbClick(Sender: TObject);
begin
pole.Text:=pole.Text+',';
end;

procedure TCalc.Button1Click(Sender: TObject);
begin
pole.Text:='0';
end;

procedure TCalc.PlusClick(Sender: TObject);

begin
v:=strtofloat(pole.Text);
mode:=1;
pole.Text:='';
end;

procedure TCalc.MinusClick(Sender: TObject);
begin
v:=strtofloat(pole.Text);
mode:=2;
pole.Text:='';
end;

procedure TCalc.UmnClick(Sender: TObject);
begin
v:=strtofloat(pole.Text);
mode:=4;
pole.Text:='';
end;

procedure TCalc.DelitClick(Sender: TObject);
begin
v:=strtofloat(pole.Text);
mode:=3;
pole.Text:='';
end;

procedure TCalc.RavnoClick(Sender: TObject);
begin
case mode of
1:begin
o:=strtofloat(pole.Text);
d:=v+o;
pole.Text:=floattostr(d);
end;
2:begin
o:=StrToFloat(pole.Text);
d:=v-o;
Pole.Text:=FloatToStr(d);
end;
3:begin
o:=StrToFloat(pole.Text);
d:=v/o;
Pole.Text:=FloatToStr(d);
end;
4:begin
o:=StrToFloat(pole.Text);
d:=v*o;
pole.text:=FloatToStr(d);
end;
end;
end;
procedure TCalc.BplusClick(Sender: TObject);
begin
if pole.Text[1]='-' then pole.Text[1]:=''
else pole.Text:='-'+pole.Text;
end;




Как мне под него подогнать кнопку "+/-"?
SPQR10000 вне форума Ответить с цитированием
Старый 17.02.2010, 20:48   #4
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

Код:
procedure TForm1.btn1Click(Sender: TObject);
var s:string;
begin
  s:=pole.Text;
 if s[1]='-' then begin Delete(s,1,1) ;pole.text:=s;end
else pole.text:='-'+s;
end;
Google2010 вне форума Ответить с цитированием
Старый 17.02.2010, 20:58   #5
SPQR10000
Пользователь
 
Регистрация: 23.09.2009
Сообщений: 48
По умолчанию

Спасибо,заработало!С меня плюс!
SPQR10000 вне форума Ответить с цитированием
Старый 19.02.2010, 21:39   #6
SPQR10000
Пользователь
 
Регистрация: 23.09.2009
Сообщений: 48
По умолчанию

А не подскажите ли,как мне реализовать логарифм натуральный?(Ln)?
Мне осталось только его реализовать и проверки там всякие!
Проверки вроде додумался как написать,а вот логарифм-ну никак!
SPQR10000 вне форума Ответить с цитированием
Старый 20.02.2010, 19:06   #7
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

Код:
pole.text:=FloatToStr(Ln(StrToFloat(pole.text)));
Google2010 вне форума Ответить с цитированием
Старый 21.02.2010, 13:44   #8
SPQR10000
Пользователь
 
Регистрация: 23.09.2009
Сообщений: 48
По умолчанию

Спасибо за код,но выбило ошибки:
[Error] Dcal.pas(139): Missing operator or semicolon
[Error] Dcal.pas(139): There is no overloaded version of 'FloatToStr' that can be called with these arguments

может чето я неправильно делаю?
SPQR10000 вне форума Ответить с цитированием
Старый 21.02.2010, 14:11   #9
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Цитата:
Спасибо за код,но выбило ошибки:
Полностью код покажи. Как ты вставил то , что подсказали ?
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 21.02.2010, 14:48   #10
SPQR10000
Пользователь
 
Регистрация: 23.09.2009
Сообщений: 48
По умолчанию

unit Dcal;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TCalc = class(TForm)
Pole: TEdit;
B7: TButton;
B8: TButton;
B5: TButton;
Plus: TButton;
Bb: TButton;
Bplus: TButton;
B0: TButton;
B1: TButton;
B2: TButton;
B3: TButton;
B6: TButton;
B9: TButton;
B4: TButton;
Delit: TButton;
Ravno: TButton;
Umn: TButton;
Minus: TButton;
Ln: TButton;
Button1: TButton;
procedure B0Click(Sender: TObject);
procedure B1Click(Sender: TObject);
procedure B2Click(Sender: TObject);
procedure B3Click(Sender: TObject);
procedure B4Click(Sender: TObject);
procedure B5Click(Sender: TObject);
procedure B6Click(Sender: TObject);
procedure B7Click(Sender: TObject);
procedure B8Click(Sender: TObject);
procedure B9Click(Sender: TObject);
procedure BbClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure PlusClick(Sender: TObject);
procedure MinusClick(Sender: TObject);
procedure UmnClick(Sender: TObject);
procedure DelitClick(Sender: TObject);
procedure RavnoClick(Sender: TObject);
procedure BplusClick(Sender: TObject);
procedure LnClick(Sender: TObject);
procedure BibiClick(Sender: TObject);
// procedure BminusClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Calc: TCalc;
d,v,o:real;
mode:integer;
implementation

{$R *.dfm}

procedure TCalc.B0Click(Sender: TObject);
begin
pole.Text:=pole.Text+'0';
end;

procedure TCalc.B1Click(Sender: TObject);
begin
pole.Text:=pole.Text+'1';
end;

procedure TCalc.B2Click(Sender: TObject);
begin
pole.Text:=pole.Text+'2';
end;

procedure TCalc.B3Click(Sender: TObject);
begin
pole.Text:=pole.Text+'3';
end;

procedure TCalc.B4Click(Sender: TObject);
begin
pole.Text:=pole.Text+'4';
end;

procedure TCalc.B5Click(Sender: TObject);
begin
pole.Text:=pole.Text+'5';
end;

procedure TCalc.B6Click(Sender: TObject);
begin
pole.Text:=pole.Text+'6';
end;

procedure TCalc.B7Click(Sender: TObject);
begin
pole.Text:=pole.Text+'7';
end;

procedure TCalc.B8Click(Sender: TObject);
begin
pole.Text:=pole.Text+'8';
end;

procedure TCalc.B9Click(Sender: TObject);
begin
pole.Text:=pole.Text+'9';
end;

procedure TCalc.BbClick(Sender: TObject);
begin
pole.Text:=pole.Text+',';
end;

procedure TCalc.Button1Click(Sender: TObject);
begin
//pole.Text:='0';
pole.Clear;
end;

procedure TCalc.PlusClick(Sender: TObject);

begin
v:=strtofloat(pole.Text);
mode:=1;
pole.Text:='';
end;

procedure TCalc.MinusClick(Sender: TObject);
begin
v:=strtofloat(pole.Text);
mode:=2;
pole.Text:='';
end;

procedure TCalc.UmnClick(Sender: TObject);
begin
v:=strtofloat(pole.Text);
mode:=4;
pole.Text:='';
end;

procedure TCalc.DelitClick(Sender: TObject);
begin
v:=strtofloat(pole.Text);
mode:=3;
pole.Text:='';
end;

procedure TCalc.RavnoClick(Sender: TObject);
begin
case mode of
1:begin
o:=strtofloat(pole.Text);
d:=v+o;
pole.Text:=floattostr(d);
end;
2:begin
o:=StrToFloat(pole.Text);
d:=v-o;
Pole.Text:=FloatToStr(d);
end;
3:begin
o:=StrToFloat(pole.Text);
d:=v/o;
Pole.Text:=FloatToStr(d);
if pole.Text<>'0' then
d:=v/o;
end;
4:begin
o:=StrToFloat(pole.Text);
d:=v*o;
pole.text:=FloatToStr(d);
end;
5:begin
pole.text:=floattostr(Ln(strtoFloat (pole.text)));
end;
end;
end;
procedure TCalc.BplusClick(Sender: TObject);
var s:string;
begin
s:=pole.Text;
if s[1]='-' then
begin
delete(s,1,1);
pole.Text:=s;
end
else pole.Text:='-'+s;
end;
procedure TCalc.LnClick(Sender: TObject);
begin
//v:=strtofloat(pole.Text);
mode:=5;
pole.Text:='';
end;
end.

я так делал,потому что по-другому не знал,как можно сделать!
SPQR10000 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Калькулятор BaRSyk174 Помощь студентам 4 26.01.2010 20:19
калькулятор vetalij Общие вопросы C/C++ 3 25.01.2010 21:04
Калькулятор slivochny Общие вопросы C/C++ 4 17.06.2009 20:49
Калькулятор ViNcHeStEr Помощь студентам 5 23.11.2008 15:39
Калькулятор Димарик Общие вопросы Delphi 1 04.10.2008 15:52