Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.08.2012, 12:17
samuilius samuilius вне форума
Прохожий
 
Регистрация: 01.08.2012
Сообщения: 13
Репутация: 10
По умолчанию калькулятор

Здравствуйте.
У меня задача написать калькулятор на умножение для нескольких edit`s

Для двух у меня получилось вот пример

procedure TForm1.edt2Change(Sender: TObject);
begin
a := StrToFloat(edt1.Text);
b := StrToFloat(edt2.Text);
c := a*b ;
lbl1.Caption := FloatToStr(c);
end;

end.

то есть при добавлении значения в edit2 , значения первого edit умножаем на значение второго edit и выводим в label.

Но следующая задача для меня сложнее и я не могу понять как ее реализовать то есть edit` ов несколько

edit1 edit 2
edit3 edit4
edit5 edit 6

label

тоесть
значения edit1 умножаем на значения edit 2
значения edit3 умножаем на значения edit 4
значения edit5 умножаем на значения edit 6

и результат выводим сразу в лейбл

помогите начинающему пожалуйста
Ответить с цитированием
  #2  
Старый 01.08.2012, 12:42
MiraLaklamon MiraLaklamon вне форума
Новичок
 
Регистрация: 07.06.2012
Сообщения: 59
Версия Delphi: 6, 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от samuilius
Здравствуйте.
У меня задача написать калькулятор на умножение для нескольких edit`s

Для двух у меня получилось вот пример

procedure TForm1.edt2Change(Sender: TObject);
begin
a := StrToFloat(edt1.Text);
b := StrToFloat(edt2.Text);
c := a*b ;
lbl1.Caption := FloatToStr(c);
end;

end.

то есть при добавлении значения в edit2 , значения первого edit умножаем на значение второго edit и выводим в label.

Но следующая задача для меня сложнее и я не могу понять как ее реализовать то есть edit` ов несколько

edit1 edit 2
edit3 edit4
edit5 edit 6

label

тоесть
значения edit1 умножаем на значения edit 2
значения edit3 умножаем на значения edit 4
значения edit5 умножаем на значения edit 6

и результат выводим сразу в лейбл

помогите начинающему пожалуйста
То есть результатов 3, а лейбл 1? Ну можно тогда через запятую вывести. А так ничем не отличается от первого варианта.
Ответить с цитированием
  #3  
Старый 01.08.2012, 13:04
samuilius samuilius вне форума
Прохожий
 
Регистрация: 01.08.2012
Сообщения: 13
Репутация: 10
По умолчанию

нет нужно что бы результат выводился в один лейбл
Ответить с цитированием
  #4  
Старый 01.08.2012, 13:10
MiraLaklamon MiraLaklamon вне форума
Новичок
 
Регистрация: 07.06.2012
Сообщения: 59
Версия Delphi: 6, 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от samuilius
нет нужно что бы результат выводился в один лейбл
1) значения edit1 умножаем на значения edit 2
2) значения edit3 умножаем на значения edit 4
3) значения edit5 умножаем на значения edit 6

Какой из трёх результатов должен выводится в лейбл?
Ответить с цитированием
  #5  
Старый 01.08.2012, 13:24
samuilius samuilius вне форума
Прохожий
 
Регистрация: 01.08.2012
Сообщения: 13
Репутация: 10
По умолчанию

смысл в том, что если в edit2 есть значение то значение edit1 умножаем на значение edit2 и выводим в лейбл, если в edit4 есть значение то умножаем значение edit3 на значение edit4 и плюсуем в лейбл и.т.д.
Ответить с цитированием
  #6  
Старый 01.08.2012, 13:31
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

На ПОЛИЗ было бы проще и гибче.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #7  
Старый 01.08.2012, 13:37
samuilius samuilius вне форума
Прохожий
 
Регистрация: 01.08.2012
Сообщения: 13
Репутация: 10
По умолчанию

не понял что это
Ответить с цитированием
  #8  
Старый 01.08.2012, 13:37
MiraLaklamon MiraLaklamon вне форума
Новичок
 
Регистрация: 07.06.2012
Сообщения: 59
Версия Delphi: 6, 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от samuilius
смысл в том, что если в edit2 есть значение то значение edit1 умножаем на значение edit2 и выводим в лейбл, если в edit4 есть значение то умножаем значение edit3 на значение edit4 и плюсуем в лейбл и.т.д.
Код:
if edit2.Text<>'' then
begin
  a := StrToFloat(edit1.Text);
  b := StrToFloat(edit2.Text);
  c := a*b ;
end;

if edit4.Text<>'' then
begin
  a := StrToFloat(edit3.Text);
  b := StrToFloat(edit4.Text);
  c := c + a*b ;
end;

if edit6.Text<>'' then
begin
  a := StrToFloat(edit5.Text);
  b := StrToFloat(edit6.Text);
  c := c + a*b ;
end;

lbl1.Caption := FloatToStr(c);
Ответить с цитированием
Этот пользователь сказал Спасибо MiraLaklamon за это полезное сообщение:
samuilius (01.08.2012)
  #9  
Старый 01.08.2012, 13:39
samuilius samuilius вне форума
Прохожий
 
Регистрация: 01.08.2012
Сообщения: 13
Репутация: 10
По умолчанию

спасибо сейчас попробуем
Ответить с цитированием
  #10  
Старый 01.08.2012, 13:46
MiraLaklamon MiraLaklamon вне форума
Новичок
 
Регистрация: 07.06.2012
Сообщения: 59
Версия Delphi: 6, 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от samuilius
спасибо сейчас попробуем
Ещё перед всем этим нужно обнулить переменную c:
Код:
c := 0;
Ответить с цитированием
Этот пользователь сказал Спасибо MiraLaklamon за это полезное сообщение:
samuilius (01.08.2012)
  #11  
Старый 01.08.2012, 13:50
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Цитата:
Сообщение от samuilius
не понял что это
Обратная польская запись.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #12  
Старый 01.08.2012, 14:21
samuilius samuilius вне форума
Прохожий
 
Регистрация: 01.08.2012
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от MiraLaklamon
Код:
if edit2.Text<>'' then
begin
  a := StrToFloat(edit1.Text);
  b := StrToFloat(edit2.Text);
  c := a*b ;
end;

if edit4.Text<>'' then
begin
  a := StrToFloat(edit3.Text);
  b := StrToFloat(edit4.Text);
  c := c + a*b ;
end;

if edit6.Text<>'' then
begin
  a := StrToFloat(edit5.Text);
  b := StrToFloat(edit6.Text);
  c := c + a*b ;
end;

lbl1.Caption := FloatToStr(c);

что то не работает написал вот как
Код:
{$R *.dfm}
с:= 0 ;
if edt2.text<>'' then
 begin
   a := StrToFloat(edt1.Text);
   b := StrToFloat(edt2.Text);
   c := a*b ;
 end;

 lbl1.Caption := FloatToStr(c);

Код:
[Error] Unit1.pas(33): Declaration expected but 'IF' found
[Error] Unit1.pas(35): Undeclared identifier: 'edt1'
[Error] Unit1.pas(36): Missing operator or semicolon
[Error] Unit1.pas(36): Undeclared identifier: 'edt2'
[Error] Unit1.pas(37): Missing operator or semicolon
[Error] Unit1.pas(38): '.' expected but ';' found
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
Ответить с цитированием
  #13  
Старый 01.08.2012, 14:27
MiraLaklamon MiraLaklamon вне форума
Новичок
 
Регистрация: 07.06.2012
Сообщения: 59
Версия Delphi: 6, 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от samuilius
что то не работает написал вот как
Код:
{$R *.dfm}
с:= 0 ;
if edt2.text<>'' then
 begin
   a := StrToFloat(edt1.Text);
   b := StrToFloat(edt2.Text);
   c := a*b ;
 end;

 lbl1.Caption := FloatToStr(c);

Код:
[Error] Unit1.pas(33): Declaration expected but 'IF' found
[Error] Unit1.pas(35): Undeclared identifier: 'edt1'
[Error] Unit1.pas(36): Missing operator or semicolon
[Error] Unit1.pas(36): Undeclared identifier: 'edt2'
[Error] Unit1.pas(37): Missing operator or semicolon
[Error] Unit1.pas(38): '.' expected but ';' found
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
Этот код нужно помещать внутрь обработчика события (например в тот же TForm1.edt2Change), а не просто "в голом виде".
Ответить с цитированием
  #14  
Старый 01.08.2012, 14:29
samuilius samuilius вне форума
Прохожий
 
Регистрация: 01.08.2012
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от MiraLaklamon
Этот код нужно помещать внутрь обработчика события (например в тот же TForm1.edt2Change), а не просто "в голом виде".
сори совсем уж затуркался
Ответить с цитированием
  #15  
Старый 01.08.2012, 16:27
samuilius samuilius вне форума
Прохожий
 
Регистрация: 01.08.2012
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от MiraLaklamon
Этот код нужно помещать внутрь обработчика события (например в тот же TForm1.edt2Change), а не просто "в голом виде".


но ведь если я поставлю код в обработчик edit2Change разве будут происходить изменения при добавлении значения в edit4 ?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:24.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter