можно из текста удалить. Но почему компилятор указал нам именно н;

строку с завершающей фигурной скобкой? Потому, что здесь кончаете? логический блок, в котором переменная RateValue была определена. Д( конца блока он не мог выдать предупреждение, а за фигурной скобкой така? переменная в программе уже не может существовать.

Удалите строки описания, останется следующий текст:

float Results-Result = floor(StrToInt(Dollars->Text) * StrToInt (Rate->Text) + 0.5);

Roubles->Text = FloatToStrF(Result,ffFixed,10,2);

Теперь вновь откомпилируйте программу — никаких предупреждений бьгп не должно.

А нельзя ли еще сократить число операторов? Ведь переменная Resul используется только для промежуточного хранения результата. Можн< попробовать заменить Result в последнем операторе на вызов функции floor(]

Roubles->Text = FloatToStrF(floor(StrToInt

(Dollars->Text) * StrToInt(Rate->Text) + 0.5), ffFixed,10,2) ;

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

Таким образом можно (но не нужно!) укоротить код и другого обработчик:

события — когда пользователь использует кнопку преобразования рубле! в доллары. Тогда вся программа займет всего две (!) строчки на Си++, i при этом окажется в ряде случаев довольно полезной, будет симпатична выглядеть и сможет выполнять весьма сложный процесс преобразовани. данных.

Всегда ли надо экономить?

Действительно, выигрываем ли мы (и если выигрываем, то что?), оптими зируя код программы подобным способом и «запихивая» всю логику работ! в один-два оператора Си++? Многолетняя история и практика програм мирования показывают, что подобный подход к разработке приложени] позволяет в ряде случаев выиграть несколько процентов производитель ности, но резко (в десятки раз!) повышает время на создание готовог продукта и значительно ухудшает его качество. Почему? Сравните новы код (одну строчку) со старым. Очень трудно понять, что же здесь делае единственный и очень длинный оператор присваивания. Легко запутатьс

96