Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 13.10.2014
Сообщений: 69
1

Математическое уравнение в строке (доделать)

28.05.2015, 10:22. Просмотров 1010. Ответов 2
Метки нет (Все метки)


Вот программка, там две Edit. В первом Edit пишем выражение, допустим 2+2, и во втором Edit пишется ответ.
Кто сможет создать в общем четрые Edit, в каждом пишем выражение (например 2+2) или цифру (например 1), число (например 12), и что бы в пятом Edit ну или в Label, появился ответ.
0
Изображения
 
Вложения
Тип файла: 7z Фиргат.7z (157.2 Кб, 2 просмотров)
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2015, 10:22
Ответы с готовыми решениями:

Как решать сложное математическое уравнение?
Как решить вот такое вот уравнение подскажите пожалуйста. В математике я 0. ...

Вычислить математическое выражение в строке
Допустим у нас есть строка string = "2+2*2" Должна вычислить это выражение с приоритетами...

Выполнить математическое выражение в строке
Есть ли в C# метод, которому можно скормить строку, содержащую математическое выражение, а он...

Математическое уравнение. Получается неверный результат, не могу понять в чем причина, ошибок не выдает
namespace Work2 { class Program { static void Main(string args) { ...

2
678 / 501 / 231
Регистрация: 02.10.2012
Сообщений: 1,717
28.05.2015, 10:57 2
Лучший ответ Сообщение было отмечено newbieee как решение

Решение

распарсить строку найти знак, что до знака и после знака, понять что это за знак и отработать a:=левая часть до знака b:=правая часть после знака , знак в X:=знак (Char);
Delphi
1
2
3
4
5
6
case x of 
'+':c:=a+b;
'-':c:=a-b;
'/':c:=a/b;
'*':c:=a*b;
end;
Добавлено через 11 минут
вот как пример с одним эдитом, дальше думаю по аналогии поймешь
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
var
  arr: Array [0..3] of Char;
  znakpos,i:integer;
  znak:Char;
  CurText:string;
  a,b,c:Double;
begin
  arr[0]:='+';
  arr[1]:='-';
  arr[2]:='/';
  arr[3]:='*';
  CurText:=edit1.text;
for i:=0 to 4 do
  if Pos( arr[i], CurText)<>0 then begin
     znak:=arr[i];
     znakpos:= Pos( znak, CurText);
     a:=StrToFloat(copy(CurText,1,znakpos-1));
     b:=StrToFloat(copy(CurText,znakpos+1,Length(CurText)));
     case znak of
      '+':c:=a+b;
      '-':c:=a-b;
      '/':c:=a/b;
      '*':c:=a*b;
     end;
     ShowMessage(FloatToStr(c));
  end;
end;
1
1 / 1 / 0
Регистрация: 13.10.2014
Сообщений: 69
28.05.2015, 11:03  [ТС] 3
Immo, спасибо, попозже буду дома, посмотрю!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2015, 11:03

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Найти слово в строке, осталось чуть чуть доделать
Выделить в предложении слово минимальной длины, если их несколько то вывести на екран. Нашел тут...

как посчитать уравнение которое приходит в строке из калькулятора?
public void onButtonClickCount(View v){ в эту строку &quot;num1&quot; попадает к примеру такие...

Ошибка в 17 строке extra characters on line. Вот уравнение Х = (A + 2В) / 4 – C + 27
include asmio16.inc .data a dw 24 b dw 12 c dw 7 x dw ? .code .begin...

Заменить в строке "." на ";", "." на ".", убрать лишние пробелы. Не могу доделать один кусочек
Не соображу, как уместить два действия так, чтобы работали оба, а именно, исходные &quot;.&quot; заменить на...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.