Помощь - Поиск - Пользователи - Календарь
Полная версия: Аифметика
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
*alt
Задача (дословно)
В строке вводиться арифметическое выражение, состоящее из целых чисел и знаков "+" и "-" . Вычислить значение этого выражения.
Требования:: во время ввода или модификации выражения нажатия на клавиши должны быть ограничены (если последней введена цифра, то за ней может быть нажата цифра, знак или пробел; если последним введеным символом явдяется знак, то за ним может быть введены либо пробел, либо цифра; для пробела определить ограничения самостоятельно).

как это реализовывается?
andriano
Вводишь символы по одному с клавиатуры, анализируешь и, если подходит, выводишь на экран (при необходимости - одновременно в буфер).
*alt
Цитата(andriano @ 25.09.2008 18:50) *

Вводишь символы по одному с клавиатуры, анализируешь и, если подходит, выводишь на экран (при необходимости - одновременно в буфер).


А расскажите как реализовать это в Delphi
А то я там пока полный ламер((
*alt
ну или скажите, где можно прочитать
*alt
Цитата(andriano @ 25.09.2008 18:50) *

Вводишь символы по одному с клавиатуры, анализируешь и, если подходит, выводишь на экран (при необходимости - одновременно в буфер).


фишка в том, что нужно не только анализировать, но и посчитать потом да ещё и с возможностью редактирования этой строки
так что всё не так просто((
Kukumber
А куда вводится-то? В форму или абстрактно?
klem4
Поиск -> Калькулятор
Гость
Цитата(klem4 @ 19.10.2008 8:58) *

Поиск -> Калькулятор

Если бы калькулятор...
Нужно вводить строку обрабатывать при вводе
Но и после ввода обработать, чтобы посчитать выражение
Так же возможно редактирование всего выражения
klem4
Ну и что ? Главное написать функцию вычисления выражения, а вызывать ее можешь хоть после каждого клика мышки.
volvo
Цитата
Нужно вводить строку обрабатывать при вводе
Обрабатывай:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Edit1.Text <> '') then
case Edit1.Text[Length(Edit1.Text)] of
'+', '-':
begin
if not (Key in ['0'..'9', ' ',#8]) then Key := #0;
end;
'0' .. '9':
begin
if not (Key in ['0'..'9', '+','-',' ',#8]) then Key := #0;
end;
end;
end;

(для пробела добавишь свои правила)... Как закончишь вводить выражение - начнешь вычислять... Где искать тебе уже написали.
*alt
а можно как-нибудь обрисовать структуру проекта?
алгоритм
шаги
просто пока не понимаю, что, куда и как(
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.