вопрос такой: мне надо в один edit ввести числовое выражение (например: 2+2) а во втором получить решение (4). Как я и ожидал edit2.Text:=inttostr(strtoint(edit1.Text)); не помогло.
Есть ли какая нибудь возможность посчитать это сразу. Если нет, то придется писать многовато, а мне в падлу
чтото вроде for q:= 1 to length(edit1.text) if edit1.text[q]='+' then edit1.text ...
помогите пж.
Другие языки программирования и технологии
<<<delphi,>>>
Именно так и надо. Это называется ПАРСИНГ строки. Но лучше делать примерно так:
i1 := strtoint(trim(copy(str,1,Pos(str,'+') - 1)));
i2 := strtoint(trim(copy(str,Pos(str,'+') +1, length(str) - Pos(str,'+'))));
edit2.text := inttostr(i1 + i2);
В моем коде возможны ошибки, т. к. пишу сразу тут, по памяти. Но концепция верна на 100%
i1 := strtoint(trim(copy(str,1,Pos(str,'+') - 1)));
i2 := strtoint(trim(copy(str,Pos(str,'+') +1, length(str) - Pos(str,'+'))));
edit2.text := inttostr(i1 + i2);
В моем коде возможны ошибки, т. к. пишу сразу тут, по памяти. Но концепция верна на 100%
Придется писать многовато, увы.
Легче всего - рекурсивно: если число, возвращаешь значение; если не число - находишь оператор с самым низким приоритетом и рекурсивно вызываешь функцию для двух половинок строки вокруг оператора.
Легче всего - рекурсивно: если число, возвращаешь значение; если не число - находишь оператор с самым низким приоритетом и рекурсивно вызываешь функцию для двух половинок строки вокруг оператора.
> Есть ли какая нибудь возможность посчитать это сразу
Конечно есть.
Конечно есть.
а попробуй напиши! !
разбор командной строки задача интересная.
она потом тебе в толковых приложениях пригодится
и в ВУЗе я думаю препод почти любой ее курсачем зачтет.
разбор командной строки задача интересная.
она потом тебе в толковых приложениях пригодится
и в ВУЗе я думаю препод почти любой ее курсачем зачтет.
во первых надо написать парсер функцию, которая на вход принимает строку, на выход массив в котором каждый элемент строка, но она может быть либо числом (целым или дробным) либо знаком
во вторых написать функцию которая принимает в себя массив строк и пробегая этот массив определяет число этот элемент или знак, если число, то определяет - целое или дробное, если знак, то определяет какую операцию вычисления нужно будет произвести. Далее можешь создать спец массив, в котором будут упорядочены по законам арифметики нужного результата Вот и все
во вторых написать функцию которая принимает в себя массив строк и пробегая этот массив определяет число этот элемент или знак, если число, то определяет - целое или дробное, если знак, то определяет какую операцию вычисления нужно будет произвести. Далее можешь создать спец массив, в котором будут упорядочены по законам арифметики нужного результата Вот и все
Похожие вопросы
- Что такое <<паттерны проектирования>>Программирование. Программирование
- <<<<<<<<<<<<html>>>>>>>>>>>>...
- >>>__Если создавать полноценный, красивый сайт при помощи HTML, CSS, PHP, Фотошопа, и Дреамвьювера, этого хватит? __<<<
- Программисты помогите>>>
- Хочу стать программистом! Пожалуйста, ответьте на несколько вопросов (см. внутри-->>>>>>>
- Какие недостатки у Windows Media Player? Помимо того, что не хочет открывать FLV и артачится при воспроизведении >>>>
- Всем привет помогите снести windows 8 >>>>
- Кто разбирается в цветовых моделях (системах передачи цвета) >>>
- Знатоки в Linux, помогите новичку в Linux но чайнику по Windows разобраться в разделах!>>>
- Mozila: HTML+CSS <col> не работает. В чем проблема?