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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Dr. Who
 Аватар для Dr. Who
29 / 29 / 2
Регистрация: 28.08.2012
Сообщений: 152
#1

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

01.09.2012, 21:08. Просмотров 694. Ответов 11
Метки нет (Все метки)

Можноли строку вставить в код программы во время работы программы как набор переменных?
Например:
Есть Edit1. В нем написано: "x * x".
Можно ли
int x;
int y = Edit1->Text;
что бы x * x были переменными, а не строкой?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.09.2012, 21:08     Как текст перевести в переменные?
Посмотрите здесь:

Морзянка. Вводимый с клавиатуры текст перевести в последовательность точек и тире с помощью азбуки Морзе. C++
C++ Надо перевести текст с паскаля в С++
C++ Считать из файла текст и записать его в переменные
Перевести текст на c++ C++
C++ Переменные в которых можно хранить текст
Перевести текст программы на С++ с С# C++
C++ Текст в кодировке cp1251 перевести в utf8 и обратно?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6471 / 2246 / 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
1240 / 989 / 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++
4949 / 3025 / 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++ Перевести вводимый текст в элементы массива
C++ Перевести текст в кодировку ASCII
Считать весь буфер клавиатуры и перевести его в текст C++
C++ Как перевести цифры в текст?

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

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

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