![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 17.10.2012
Сообщений: 40
|
![]()
Встал вопрос о том, как сделать так, чтобы пользователь сам задавал значение переменных.
Покажу на примере, есть 4 неких переменных integer; Допустим int1,int2,int3,int4. Как задать значение для каждой переменной думаю знают все - int1:=1; Грубо говоря, а как сделать вот так? Int1:=int2*n+int3*n+int4*n. Где n - число заданное пользователем, причём пользователь должен задавать не только n, но само количество этих переменных. Т.е. может быть вот так int1:=int2*n+init4*n; или int3:=unit2*n+unit1*n; Как это возможно реализовать? Чтобы именно пользователь выбирал как будет строится значение? |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]()
для построения диалога(-ов) с пользователем существуют формы (TForm)
для ввода пользователя на форме размещаются контролы (Tedit, TcomboBox, TListBox, ....) простейший ввод Код:
программа — запись алгоритма на языке понятном транслятору
|
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 17.10.2012
Сообщений: 40
|
![]() Цитата:
Вот допустим хочет он чтобы было так int1:=int1+int2*n или так int1:=int2*n+int3*n. Как реализовать именно построение самого такого выражения? |
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,703
|
![]()
Очень просто - все int собрать в массив. Тогда пользователь будет вводить индексы массива, и с элементами массива по этим адресам можно делать что хошь.
Мне тут видится недопонимание самой сути процесса. Когда компиляция и линковка произведена и программа запущена на выполнение, для неё уже не существует никаких int1,int2 - ей известны только адреса, по которым размещены переменные. И бесполезно писать int2 в каком-либо Edit, рассчитывая, что программа обратится к этой переменной - для неё всё равно, что была скомпилирована строка Код:
Код:
Я правильно понял, чего недопонял ТС ? ![]() ----------------------------------------------------------- Есть более простой путь: написать свой интерпретатор, который будет парсить введённую строку, формировать последовательность операций и выполнять их ![]() Последний раз редактировалось digitalis; 15.03.2020 в 18:45. |
![]() |
![]() |
![]() |
#5 | |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,810
|
![]() Цитата:
1. Все переменные заменить конкретными значениями. 2. Раскрыть все скобки (если их наличие предполагается). 3. Выполнить операции в порядке приоритета, то есть сначала умножение и деление, затем пройтись по сложению и вычитания. E-Mail: arigato.freelance@gmail.com
|
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,703
|
![]()
То есть это дополнение к моему - сделать собственный интерпретатор?
![]() |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]() Код:
Код:
не имею ни малейшего понятия, но вдруг... пригодится.
программа — запись алгоритма на языке понятном транслятору
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Динамическое создание объектов и задание событий | TreadProblem | Общие вопросы Delphi | 9 | 15.03.2011 17:57 |
Передача значений переменных функциями | HostileZeth | Общие вопросы C/C++ | 4 | 02.12.2010 16:29 |
Считывание значений переменных в потоках | Руслантус | Общие вопросы .NET | 1 | 09.09.2010 15:39 |
Динамическое задание событий | Mutagena | Помощь студентам | 6 | 08.01.2010 23:22 |
Процедура для считывания значений переменных | xPAL | Общие вопросы Delphi | 4 | 07.12.2008 19:23 |