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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2007, 14:09   #1
HAMMAN
Пользователь
 
Аватар для HAMMAN
 
Регистрация: 09.01.2007
Сообщений: 92
Вопрос Помогите немного доделать программку на Дельфях

Дело в том, что у меня программка (Калькулятор) почти готовая за исключением систем счисления, градусов и радиан!Никак не могу их добить!Помогите по-возможности...
Вложения
Тип файла: rar Калькулятор модифицированный.rar (177.4 Кб, 21 просмотров)

Последний раз редактировалось HAMMAN; 28.04.2007 в 14:13.
HAMMAN вне форума Ответить с цитированием
Старый 28.04.2007, 22:58   #2
HAMMAN
Пользователь
 
Аватар для HAMMAN
 
Регистрация: 09.01.2007
Сообщений: 92
По умолчанию

Вот небольшой отрывок с той программки:
Код:
var
  Form1: TForm1;
  flag1,flag2,flag3,flag4:boolean;
  op1,op2:real;
  operand:char;
  tan:Real;

implementation

{$R *.dfm}

procedure TForm1.SpeedButton11Click(Sender: TObject);
begin
if flag1 then begin
 edit1.Text:=Speedbutton11.Caption;
 flag1:=false
 end
   else
   begin
   edit1.Text:=edit1.Text+Speedbutton11.Caption;
   end
end;
.............
procedure TForm1.SpeedButton8Click(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.SpeedButton23Click(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.SpeedButton7Click(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.SpeedButton9Click(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.SpeedButton18Click(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.SpeedButton13Click(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.SpeedButton35Click(Sender: TObject);
begin
  op1:=StrToFloat(Edit1.Text);
  op1:=1/op1;
  Edit1.Text:=FloatToStr(op1)
end;

procedure TForm1.SpeedButton6Click(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.SpeedButton26Click(Sender: TObject);
begin
 op1:=StrToFloat(Edit1.Text);
 op1:=Log10(op1);
 Edit1.Text:=FloatToStr(op1);
end;

procedure TForm1.SpeedButton24Click(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.SpeedButton25Click(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.SpeedButton27Click(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.SpeedButton28Click(Sender: TObject);
begin
operand:='^';
if flag2 then begin
op1:=strtofloat(edit1.Text);
flag2:=false;
end
else begin
if not flag1 then op1:=exp(ln(op1)*strtofloat(edit1.Text));
edit1.Text:=floattostr(op1);
end;
flag1:=true;
end;

procedure TForm1.SpeedButton31Click(Sender: TObject);
begin
  op1:=Exp(1);
  op1:=StrToFloat(Edit1.Text);
  op2:=ln(op1);
  Edit1.Text:=FloatToStr(op2);
end;

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

end.
ВОТ СЮДА НУЖНО ЕЩЁ СИСТЕМУ СЧИСЛЕНИЙ КАК НА СТАНДАРТНОМ WINDOWS КАЛЬКУЛЯТОРЕ!

Последний раз редактировалось Alar; 29.04.2007 в 17:25. Причина: Учитесь использовать тег [CODE]
HAMMAN вне форума Ответить с цитированием
Старый 28.04.2007, 23:10   #3
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

http://alienhacker.narod.ru/ProjectsRS.htm
Скачай оттуда калькулятор, посмотри.
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 28.04.2007, 23:58   #4
HAMMAN
Пользователь
 
Аватар для HAMMAN
 
Регистрация: 09.01.2007
Сообщений: 92
По умолчанию

Цитата:
Сообщение от Shuraken Посмотреть сообщение
http://alienhacker.narod.ru/ProjectsRS.htm
Скачай оттуда калькулятор, посмотри.
ссылки битые...
HAMMAN вне форума Ответить с цитированием
Старый 29.04.2007, 13:58   #5
bill
Форумчанин
 
Аватар для bill
 
Регистрация: 26.04.2007
Сообщений: 440
По умолчанию

формула перевода радиан в углы-
a:=180*f/p (если мне память не изменяет), где p - это пи, а-это уже угол, f-это то число которое у тебя есть(оно всегда в радианах). Вот со системами счисления я не знаю точно.
bill вне форума Ответить с цитированием
Старый 29.04.2007, 14:03   #6
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
По умолчанию

по системами счисления - бери в сети алгоритмы и вставляй в программу. твоя прога %)
что от нас ждешь ?. так даже не интересно ..
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 16.05.2007, 11:40   #7
beso
Пользователь
 
Регистрация: 02.04.2007
Сообщений: 37
По умолчанию HAMMAN!

HAMMAN vbmenu_register("postmenu_17890", true); ! pasmatri Rabochi Kalkulatore! a pvaevo progu ka vi tam napisana ia ni ponial! ,,Pasmapri rabochi Probu i tebia Pamojet"
Вложения
Тип файла: rar Kalk-Gatovi.rar (168.0 Кб, 12 просмотров)
beso вне форума Ответить с цитированием
Старый 16.05.2007, 23:05   #8
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

Надавать бы по ушам предыдущему постеру... Жаль с мобилы...
По теме: зайди в поиск - в свое время я писал на форуме стандартные функции перевода систем счисления.
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите немного если не сложно,оч надо(Pascal) Bremen Помощь студентам 7 27.07.2008 12:52
Помогите объяснить программку Panda Помощь студентам 2 03.07.2008 08:21
Помогите написать программку olegavi Общие вопросы C/C++ 1 06.05.2008 16:11