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

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

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2011, 04:31   #1
Stalkker247
Пользователь
 
Регистрация: 15.07.2011
Сообщений: 12
Хорошо

04:31
Здравствуйте. У меня есть StringGrid с двумя колонками, нужно в левой записывать уровнение (Напр. 3*2,5), а в правой получать ответ. Буду Благодарен за помощь). Спасибо).

04:48
Выдает "1*1 не число" ,как его умножить??

Красные жирные циферки видны ?
Это время, когда вы отправляли свои сообщения друг за другом, подряд.
У нас есть кнопка "Правка".
Читаем правила раздела.
По правилам это приравнивается к флуду.

Последний раз редактировалось mihali4; 29.11.2011 в 14:36.
Stalkker247 вне форума Ответить с цитированием
Старый 29.11.2011, 05:08   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

> "1*1 не число"

ну, это не бейсик, где интерпретатор на лету мог сам разруливать такие выражения.
По-хорошему ван нужен парсер, сложность которого зависит от сложности выражений. Например, должен ли он понимать скобки?
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 29.11.2011, 05:21   #3
Stalkker247
Пользователь
 
Регистрация: 15.07.2011
Сообщений: 12
По умолчанию

05:21
Продолжаем монолог)
есть такой способ, но для больших уравнений не подойдет такая возня.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
x:real;
str:string;
a,b:string;
begin
for i:=0 to 10 do
begin
if zalv.Cells[0,i] <>  '0' then
begin
str:=zalv.Cells[0,i];
a:=copy(str,0,pos('*',str)-1);
b:=copy(str,pos('*',str)+1,length(str));
x:=strtofloat(a)*strtofloat(b);
zalv.Cells[1,i]:=floattostr(x);
end;
end;
end;
05:29
Цитата:
Сообщение от veniside Посмотреть сообщение
> "1*1 не число"
ну, это не бейсик, где интерпретатор на лету мог сам разруливать такие выражения.
По-хорошему ван нужен парсер, сложность которого зависит от сложности выражений. Например, должен ли он понимать скобки?
спасибо за ссылку

Красные жирные циферки видны ?
Это время, когда вы отправляли свои сообщения друг за другом, подряд.
У нас есть кнопка "Правка".
Читаем правила раздела.
По правилам это приравнивается к флуду.

Последний раз редактировалось mihali4; 29.11.2011 в 14:39.
Stalkker247 вне форума Ответить с цитированием
Старый 29.11.2011, 08:56   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я тут на форуме неодократно выкладывал исходники простенького старенького парсера собственной разработки (EXPRUS).

если интересно - смотрите ТУТ
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Real, Integer jawa250t Общие вопросы Delphi 4 28.01.2011 14:19
Проблема с real ! BuTeK1 Паскаль, Turbo Pascal, PascalABC.NET 2 13.01.2009 19:08
real to string terminadoor Помощь студентам 6 28.07.2008 09:27
StringGrid to Real Nemesisking Помощь студентам 5 06.11.2007 13:00
как перевести из integer в real(и обратно), и из real в string(и обратно) Ga-sergey Общие вопросы Delphi 2 08.06.2007 21:13