С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 4
Регистрация: 09.09.2013
Сообщений: 112
1

Вычисление по знакам из edit

01.10.2014, 17:49. Показов 833. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Даны 10 меток от 0 до 9, между метками edit'ы в которые нужно вписать знаки мат.операций, но может быть и без знака, после нажатия кнопки происходят вычисления.
Пример
1*2*3*4*5*6*7*8+9+0=40329
123*4+56-7890=-7342
Направьте в нужное русло, долго пытаюсь сделать, но пока безрезультатно.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Блог
01.10.2014, 17:49
Ответы с готовыми решениями:

Вычисление в Edit'e
Подскажите, пожалуйста, как мне сделать действие для кнопки чтобы произошло следующее: Есть Edit в...

Вычисление выражения, введенного в Edit
Здравствуйте форумчане) У меня большая проблема( хочу сделать калькулятор для простых действий +-/*...

Вычисление значений для нескольких Edit
я пока новичёк в программировани, не пинайте сильно, неделя стажа =) вообщем не понятная причина...

Поиск числа в файле и вычисление с него даных из поля Edit
есть форма и есть файл Помогите написать код для кнопки после нажатия она должна делать следуещее:...

3
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
01.10.2014, 17:55 2
Цитата Сообщение от kaz4640984 Посмотреть сообщение
долго пытаюсь сделать
Ну покажи свои попытки?
0
1 / 1 / 4
Регистрация: 09.09.2013
Сообщений: 112
01.10.2014, 18:04  [ТС] 3
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
procedure TForm1.Button1Click(Sender: TObject);
begin
 
if edit1.Text='*' then a:=strtofloat(label2.Caption)*strtofloat(label1.Caption);
if edit1.Text='/' then a:=strtofloat(label2.Caption)/strtofloat(label1.Caption);
if edit2.Text='/' then a:=a/(strtofloat(label3.Caption));
if edit2.Text='*' then a:=strtofloat(label3.Caption)*a;
if edit3.Text='/' then a:=a/strtofloat(label4.Caption);
if edit3.Text='*' then a:=a*strtofloat(label4.Caption);
if edit4.Text='/' then a:=a/strtoint(label5.Caption);
if edit4.Text='*' then a:=strtoint(label5.Caption)*a;
if edit5.Text='/' then a:=a/strtoint(label6.Caption);
if edit5.Text='*' then a:=strtoint(label6.Caption)*a;
if edit6.Text='/' then a:=a/strtoint(label7.Caption);
if edit6.Text='*' then a:=strtoint(label7.Caption)*a;
if edit7.Text='/' then a:=a/strtoint(label8.Caption);
if edit7.Text='*' then a:=strtoint(label8.Caption)*a;
if edit8.Text='/' then a:=a/strtoint(label9.Caption);
if edit8.Text='*' then a:=strtoint(label9.Caption)*a;
if edit9.Text='/' then a:=a/strtoint(label10.Caption);
if edit9.Text='*' then a:=strtoint(label10.Caption)*a;
edit10.Text:=floattostr(a);
Memo1.Lines.add(label2.Caption+Edit1.Text+Label1.Caption+edit2.Text+Label3.Caption+edit3.Text+Label4.Caption+edit4.Text+Label5.Caption+edit5.Text+Label6.Caption+edit6.Text+Label7.Caption+edit7.Text+Label8.Caption+edit8.Text+Label9.Caption+edit9.Text+Label10.Caption+label11.Caption+edit10.Text);
end;
0
Модератор
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
01.10.2014, 20:17 4
Такой вариант:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
procedure TForm1.Button1Click(Sender: TObject);
const
  n = 10; // Кол-во Label
var
  i: Integer;
  Res: Real;
  Num: String;
  Calc: Char;
begin
  i := 1;
  Res := 0;
  Calc := #0;
  Num := (FindComponent('Label' + IntToStr(i)) as TLabel).Caption;
 
  while True do
  begin
    if (i < n) and ((FindComponent('Edit' + IntToStr(i)) as TEdit).Text = '') then
      Num := Num + (FindComponent('Label' + IntToStr(i+1)) as TLabel).Caption
    else
    begin
      case Calc of
        '+': Res := Res + StrToInt(Num);
        '-': Res := Res - StrToInt(Num);
        '*': Res := Res * StrToInt(Num);
        '/': Res := Res / StrToInt(Num);
        else Res := StrToInt(Num);
      end;
 
      if i = n then Break;
 
      Num := (FindComponent('Label' + IntToStr(i+1)) as TLabel).Caption;
      Calc := (FindComponent('Edit' + IntToStr(i)) as TEdit).Text[1];
    end;
 
    inc(i);
  end;
 
  ShowMessage(FloatToStr(Res));
end;
0
01.10.2014, 20:17
cpp_developer
Эксперт
20123 / 5690 / 417
Регистрация: 09.04.2010
Сообщений: 12,546
Блог
01.10.2014, 20:17
Помогаю со студенческими работами здесь

Поиск числа в файле и вычисление с него даных из поля Edit
есть форма и есть файл Помогите написать код для кнопки после нажатия она должна делать следуещее:...

Как упорядочить по знакам зодиака?
Вводим данные нескольких человек( фамилия, имя, знак зодиака, дата рождения). Далее надо...

Разделение строки по знакам препинания
у меня есть строка, например:&quot;&quot;вася - плохой,Петя:хороший&quot; Т.е. мне надо разделить любую строку на...

Округлить к п знакам после запятой
Как обрезать к 2 или 3 накам после запятой?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru