Форум программистов, компьютерный форум CyberForum.ru

Как текст перевести в переменные? - C++

Восстановить пароль Регистрация
 
Dr. Who
 Аватар для Dr. Who
29 / 29 / 2
Регистрация: 28.08.2012
Сообщений: 152
01.09.2012, 21:08     Как текст перевести в переменные? #1
Можноли строку вставить в код программы во время работы программы как набор переменных?
Например:
Есть Edit1. В нем написано: "x * x".
Можно ли
int x;
int y = Edit1->Text;
что бы x * x были переменными, а не строкой?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
01.09.2012, 21:17     Как текст перевести в переменные? #2
Нет. Ручками парси выражение и его выполняй.
Dr. Who
 Аватар для Dr. Who
29 / 29 / 2
Регистрация: 28.08.2012
Сообщений: 152
01.09.2012, 21:20  [ТС]     Как текст перевести в переменные? #3
А как это
ВАСИЛЕВС
555 / 478 / 60
Регистрация: 14.02.2012
Сообщений: 1,561
01.09.2012, 21:37     Как текст перевести в переменные? #4
Dr. Who, это типа калькулятор. С Edit1 брать выражение и вычислять. То есть парсить и выполнять, как и написал Vourhey.
Dr. Who
 Аватар для Dr. Who
29 / 29 / 2
Регистрация: 28.08.2012
Сообщений: 152
07.09.2012, 22:22  [ТС]     Как текст перевести в переменные? #5
Как текст "x*x" перевести в переменные, чтобы получилось int y = x*x;?
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
07.09.2012, 22:29     Как текст перевести в переменные? #6
Нажать [End], нажать [Shift] + [:], нажать [Home], затем нажать последовательно: [i], [n], [t], [ ], [y], [ ], [=], [ ].

Эм... Вы не могли бы переформулировать вопрос? Желательно с примером кода побольше и комментарием, как бы вы хотели, чтобы он работал.
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
07.09.2012, 22:32     Как текст перевести в переменные? #7
Может быть так?
C++
1
2
3
4
5
6
7
    int x, y;
    char str[] = "5*5";
 
    x = int(str[0]) - '0';
    y = x * x;
 
    cout << "y = " << y << endl;  // напечатает 25
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
07.09.2012, 22:32     Как текст перевести в переменные? #8
Никак, C++ не дает доступа к компилятору (в отличие от C#, например).
Нужно писать свой парсер.
Dr. Who
 Аватар для Dr. Who
29 / 29 / 2
Регистрация: 28.08.2012
Сообщений: 152
07.09.2012, 22:37  [ТС]     Как текст перевести в переменные? #9
C++
1
2
3
4
5
6
7
8
9
AnsiString A = Edit1->Text;
int x = -200;
int y = 0;
while(x<400)
{
x++;
y = x*x*-1/10; //x*x -Функция параболы //*-1 - переворачиваем(а то рисует кверх ногами) // /10 - Единичный отрезок 10 пикселей.
Image1->Canvas->LineTo(200+ x, 200+y); //200+ - чтобы рисовала посередине Image размером 400x400
}
надо, чтобы вместо x*x рисовалась функция введеная в Edit-е.
Герц
523 / 340 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
07.09.2012, 22:40     Как текст перевести в переменные? #10
От того, что ты несколько раз повторил, что тебе нужно, проблема сама не решится :-)
Я тебе в нескольких темах написал, нужен некий парсер, например класс, который допускает использования типа следующего:
C++
1
2
3
4
while ( arg < 400 ) {
    arg++;
    y = Parser::evaluate( "x*x", arg );
}
То есть вызов
C++
1
double Parser::evalute( std::string expression, double arg );
должен парсить выражение, записанное в строке expression, строить для него дерево или некое другое представление, а затем возвращать значение этого выражения при значении переменной равном arg.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
09.09.2012, 18:29     Как текст перевести в переменные? #11
Dr. Who, вот, писал как-то парсер арифметических выражений. В начале указана грамматика. Вам остаётся его модифицировать (добавить возможность работы с переменными), это повлечёт незначительные изменения в грамматике и чуть более значительные изменения в коде, но я в вас верю.
http://liveworkspace.org/code/3cd6ee...4370a96f72d227
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2012, 18:51     Как текст перевести в переменные?
Еще ссылки по теме:

Перевести текст программы на С++ с С# C++
C++ Текст в кодировке cp1251 перевести в utf8 и обратно?
Даны три файла в 3х разных кодировках, перевести текст в Windows-1251 и записать в один файл C++

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

Или воспользуйтесь поиском по форуму:
Avazart
 Аватар для Avazart
6897 / 5137 / 252
Регистрация: 10.12.2010
Сообщений: 22,570
Записей в блоге: 17
09.09.2012, 18:51     Как текст перевести в переменные? #12
Может это Математический ввод формул в Edit ?
Yandex
Объявления
09.09.2012, 18:51     Как текст перевести в переменные?
Ответ Создать тему
Опции темы

Текущее время: 01:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru