Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Аифметика

Автор: *alt 25.09.2008 15:10

Задача (дословно)
В строке вводиться арифметическое выражение, состоящее из целых чисел и знаков "+" и "-" . Вычислить значение этого выражения.
Требования:: во время ввода или модификации выражения нажатия на клавиши должны быть ограничены (если последней введена цифра, то за ней может быть нажата цифра, знак или пробел; если последним введеным символом явдяется знак, то за ним может быть введены либо пробел, либо цифра; для пробела определить ограничения самостоятельно).

как это реализовывается?

Автор: andriano 25.09.2008 21:50

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

Автор: *alt 2.10.2008 15:14

Цитата(andriano @ 25.09.2008 18:50) *

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


А расскажите как реализовать это в Delphi
А то я там пока полный ламер((

Автор: *alt 14.10.2008 22:21

ну или скажите, где можно прочитать

Автор: *alt 16.10.2008 15:37

Цитата(andriano @ 25.09.2008 18:50) *

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


фишка в том, что нужно не только анализировать, но и посчитать потом да ещё и с возможностью редактирования этой строки
так что всё не так просто((

Автор: Kukumber 19.10.2008 12:50

А куда вводится-то? В форму или абстрактно?

Автор: klem4 19.10.2008 12:58

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

Автор: Гость 19.10.2008 13:25

Цитата(klem4 @ 19.10.2008 8:58) *

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

Если бы калькулятор...
Нужно вводить строку обрабатывать при вводе
Но и после ввода обработать, чтобы посчитать выражение
Так же возможно редактирование всего выражения

Автор: klem4 19.10.2008 16:51

Ну и что ? Главное написать функцию вычисления выражения, а вызывать ее можешь хоть после каждого клика мышки.

Автор: volvo 19.10.2008 16:55

Цитата
Нужно вводить строку обрабатывать при вводе
Обрабатывай:
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 21.10.2008 1:38

а можно как-нибудь обрисовать структуру проекта?
алгоритм
шаги
просто пока не понимаю, что, куда и как(