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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2007, 16:51   #1
HAMMAN
Пользователь
 
Аватар для HAMMAN
 
Регистрация: 09.01.2007
Сообщений: 92
По умолчанию Калькулятор!

Народ мне осталось написать код для %,tg,ctg
подскажите мне их...

Код:
{$R *.dfm}

procedure TForm1.Button7Click(Sender: TObject);
begin
 close;
end;


procedure TForm1.Button12Click(Sender: TObject);
begin
 if flag1 then begin
 edit1.Text:=button12.Caption;
 flag1:=false
 end
   else
   begin
   edit1.Text:=edit1.Text+button12.Caption;
   end;
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
 if flag1 then begin
 edit1.Text:=button13.Caption;
 flag1:=false
 end
   else
   begin
   edit1.Text:=edit1.Text+button13.Caption;
   end;
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
 if flag1 then begin
 edit1.Text:=button14.Caption;
 flag1:=false
 end
   else
   begin
   edit1.Text:=edit1.Text+button14.Caption;
   end;
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
 if flag1 then begin
 edit1.Text:=button15.Caption;
 flag1:=false
 end
   else
   begin
   edit1.Text:=edit1.Text+button15.Caption;
   end;
end;

procedure TForm1.Button16Click(Sender: TObject);
begin
 if flag1 then begin
 edit1.Text:=button16.Caption;
 flag1:=false
 end
   else
   begin
   edit1.Text:=edit1.Text+button16.Caption;
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 operand:='+';
 flag3:=true;
  if flag2 then begin
  op1:=strtofloat(edit1.Text);
  flag2:=false;
  end
   else begin
   if not flag1 then op1:=op1+strtofloat(edit1.Text);
   edit1.Text:=floattostr(op1);
   end;
   flag1:=true;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
operand:='/';
if flag2 then begin
op1:=strtofloat(edit1.Text);
flag2:=false;
flag3:=true;

end
else begin
if not flag1 then op1:=op1/strtofloat(edit1.Text);
edit1.Text:=floattostr(op1);
end;
flag1:=true;
end;

procedure TForm1.Button19Click(Sender: TObject);
begin
  if Edit1.Text = '0' then
    begin
      Edit1.Text := '0,';
      op1 := 1;
    end;
  if Pos(',',Edit1.Text) = 0 then
      Edit1.Text := Edit1.Text + ',';
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
case operand of
'/' : if strtofloat(edit1.Text)<>0 then op1:=op1/strtofloat(edit1.Text);
'*' : op1:=op1*strtofloat(edit1.Text);
'+' : op1:=op1+strtofloat(edit1.Text);
'-' : op1:=op1-strtofloat(edit1.Text);
end;
if strtofloat (edit1.Text)<>0 then
edit1.Text:=floattostr(op1)
else edit1.Text:='error!';
flag2:=true;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
operand:='*';
if flag2 then begin
op1:=strtofloat(edit1.Text);
flag2:=false;
flag3:=true;

end
else begin
if not flag1 then op1:=op1*strtofloat(edit1.Text);
edit1.Text:=floattostr(op1);
end;
flag1:=true;
end;

procedure TForm1.Button18Click(Sender: TObject);
var s:string;
begin
 s:=edit1.Text;
 if s[1]<>'-' then insert('-',s,0) else
 delete(s,1,1);
 edit1.Text:=s;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
operand:='-';
 flag3:=true;
  if flag2 then begin
  op1:=strtofloat(edit1.Text);
  flag2:=false;
  end
   else begin
   if not flag1 then op1:=op1+strtofloat(edit1.Text);
   edit1.Text:=floattostr(op1);
   end;
   flag1:=true;
end;

procedure TForm1.Button17Click(Sender: TObject);
begin
 if flag1 then begin
 edit1.Text:=button17.Caption;
 flag1:=false
 end
   else
   begin
   edit1.Text:=edit1.Text+button17.Caption;
   end;
end;

procedure TForm1.Button26Click(Sender: TObject);
begin
if strtofloat(edit1.Text)>=0 then begin
op1:=sqrt(strtofloat(edit1.Text));
edit1.Text:=floattostr(op1);
end
else
begin
flag1:=true;
flag2:=true;
flag3:=true;
edit1.Text:='ошибка !';
end;
end;

procedure TForm1.Button24Click(Sender: TObject);
begin
if strtofloat(edit1.Text) <>0 then begin
op1:=sin(strtofloat(edit1.Text)*180/pi);
edit1.Text:=floattostr(op1);
flag1:=true;
flag2:=true;
flag3:=true;
end;
end;

procedure TForm1.Button25Click(Sender: TObject);
begin
if strtofloat(edit1.Text) <>0 then begin
op1:=cos(strtofloat(edit1.Text)*180/pi);
edit1.Text:=floattostr(op1);
end
else
begin
flag1:=true;
flag2:=true;
flag3:=true;
edit1.Text:='1';
end;
end;

procedure TForm1.Button22Click(Sender: TObject);
begin
if strtofloat(edit1.Text) <>0 then begin
op1:=Sqr(strtofloat(edit1.Text));
edit1.Text:=floattostr(op1);
flag1:=true;
flag2:=true;
flag3:=true;
end;
end;

procedure TForm1.Button27Click(Sender: TObject);
var
 z:Integer;
begin
  op1:=StrToFloat(Edit1.Text);
  op1:=1/op1;
  Edit1.Text:=FloatToStr(op1);
end;

end.
Заренее благодарен!.
HAMMAN вне форума Ответить с цитированием
Старый 17.02.2007, 17:45   #2
AVer
Андрей
Форумчанин
 
Аватар для AVer
 
Регистрация: 21.11.2006
Сообщений: 457
По умолчанию

А там так и будет:

Tan(X);

Только ответ получишь в радианах. Чтобы перевести в градусы умнож результат на 180/pi.
ICQ: 5311314
[SIGPIC][/SIGPIC]
AVer вне форума Ответить с цитированием
Старый 17.02.2007, 20:55   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А вот с процентами придется повозиться!
Там аж целых два действия - сначала поделить одно число на другое, а уже только потом аккуратно помножить на 100...
Точно не помню, но вроде в третьем классе проходят. А вам еще не давали?
Цитата:
Что бы узнать процент от числа, необходимо число разделить на сто (узнаем чему равен 1%) и умножить на количество процентов
Так, наверное, новые русские считают.
Пример: сколько процентов от двух составляет единица?
1/2=0.5
0.5*100=50%

Последний раз редактировалось mihali4; 18.02.2007 в 04:16.
mihali4 вне форума Ответить с цитированием
Старый 18.02.2007, 01:50   #4
Speeker
Форумчанин
 
Аватар для Speeker
 
Регистрация: 01.12.2006
Сообщений: 241
По умолчанию

Что бы узнать процент от числа, необходимо число разделить на сто (узнаем чему равен 1%) и умножить на количество процентов

Цитата:
Сообщение от AVer Посмотреть сообщение
А там так и будет:

Tan(X);
Да нет, функции Тan в Делфи и паскале нету, надо использовать
Sin(x)/Cos(x) - Tg(x) и Cos(x)/Sin(x) - Ctg(x)
А дальше все как ты сказал про радианы
Програмисты - единственные люди, которым платят за исправления их же ошибок
Speeker вне форума Ответить с цитированием
Старый 18.02.2007, 13:16   #5
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Цитата:
Да нет, функции Тan в Делфи и паскале нету, надо использовать
Sin(x)/Cos(x) - Tg(x) и Cos(x)/Sin(x) - Ctg(x)
Как это нету? Всё там есть:
tan - тангенс;
cotan - котангенс;
DegtoRad - градусы в радианы;
RadToDeg - радианы в градусы;

У меня в книжке целая страница тригонометрических функций в делфе.

P.S.: модуль Math в uses не забываем подключать.
zetrix вне форума Ответить с цитированием
Старый 20.02.2007, 19:29   #6
Sllikmll
Новичок
Джуниор
 
Регистрация: 20.02.2007
Сообщений: 1
По умолчанию

Выложити исходники калькулятора.. Очень нужны...
Sllikmll вне форума Ответить с цитированием
Старый 20.02.2007, 19:35   #7
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

http://www.programmersclub.ru/labmatem

Калькулятор

Если вы только-только начали изучать Delphi, попробуйте сначала сделать в Delphi калькулятор, стандартный калькулятор или с тремя edit для ввода первого числа, вторую для ввода второго числа, а третью для вывода ответа. У вас обязательно получится эта программа, и вы поверите в свои силы программиста.
А позже своё приложениеможете сравнить с этим калькулятором.
Скачать (30 кб)
Alar вне форума Ответить с цитированием
Старый 21.02.2007, 21:06   #8
HAMMAN
Пользователь
 
Аватар для HAMMAN
 
Регистрация: 09.01.2007
Сообщений: 92
По умолчанию

Цитата:
Сообщение от Alar Посмотреть сообщение
http://www.programmersclub.ru/labmatem

Калькулятор

Если вы только-только начали изучать Delphi, попробуйте сначала сделать в Delphi калькулятор, стандартный калькулятор или с тремя edit для ввода первого числа, вторую для ввода второго числа, а третью для вывода ответа. У вас обязательно получится эта программа, и вы поверите в свои силы программиста.
А позже своё приложениеможете сравнить с этим калькулятором.
Скачать (30 кб)
Проблема в том что преподу нужен более лучший вариант с одним полем ввода!.
HAMMAN вне форума Ответить с цитированием
Старый 21.02.2007, 21:27   #9
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

Цитата:
Проблема в том что преподу нужен более лучший вариант с одним полем ввода!.
А вы видели эту программу?
Alar вне форума Ответить с цитированием
Старый 24.02.2007, 22:15   #10
HAMMAN
Пользователь
 
Аватар для HAMMAN
 
Регистрация: 09.01.2007
Сообщений: 92
По умолчанию

Цитата:
Сообщение от Alar Посмотреть сообщение
А вы видели эту программу?
Видел и к тому же я почти ее закончил...
Еще оин вопрос как можно сделать,чтобы буквы не вводились в поле ввода цифр...то есть вообще никак не риагировала на буквы - только на цифры...и как можно свой калькулятор прявязать к NUMLOCKU?
Изображения
Тип файла: jpg калькуляторрр.JPG (21.0 Кб, 172 просмотров)

Последний раз редактировалось HAMMAN; 24.02.2007 в 22:17.
HAMMAN вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Калькулятор Nixtone Помощь студентам 7 03.07.2008 23:17
Калькулятор =) noxer Microsoft Office Excel 1 29.04.2008 05:14
Калькулятор Ivanich Помощь студентам 5 21.12.2007 14:48
Калькулятор Maycal Общие вопросы C/C++ 2 18.11.2007 06:02
Калькулятор zetrix Софт 7 28.09.2007 08:39