Надо подготовить элемент управления, в котором будет показываться результат сложения чисел, введенных в поля Edit1, Edit2. для такой цели лучше всего использовать компонент TLable (Надпись).
В заголовке этого объекта (свойство Caption) можно указать строку «0». Размер объекта Label1 при этом изменится. Это связанно с тем, что некоторые компоненты Delphi 7 имеют свойство AutoSize (автомасштабирование), относящееся к категории Visual (Внешний вид). Это свойство определяет, что размер объекта подстраивается под размер своего содержимого, в данном случае строки. Если это не нужно, значение свойства AutoSize надо изменить с True на False, после чего задать нужный размер вручную.
При линейном программировании одни операторы идут строго за другими. На практике редко встречаются задачи, алгоритм решения которых является линейным. Часто оказывается, что алгоритм решения даже элементарной задачи не является линейным. Например, пусть надо вычислить по формуле ток в электрической цепи. Если предположить, что пользователь всегда будет вводить верные данные, то алгоритм решения этой задачи действительно является линейным. Однако полагаться на то, что пользователь будет вести себя так, как надо программе, не следует. Формула расчета предполагает, что величина сопротивления не равна нулю. А что будет, если пользователь введет 0? Ответ простой: возникнет ошибка "Деление на ноль", и программа аварийно завершит работу. Можно, конечно, возложить ответственность за это на пользователя, но лучше внести изменения в алгоритм решения, чтобы расчет выполнялся только в том случае, если введены верные данные.
В объектно-ориентированном программировании можно выполнять любые арифметические действия. Для этого необходимо использовать не числа, как в математике, а переменные – символы, которые будут обозначать цифры в общем виде. Существуют специальные знаки, позволяющие записывать арифметические действия:
|
1.:= - присваивание (А:=В).
2. операции языка: + - сложение (А:=В+С)
* - умножение
− - вычитание
/ - деление
3. знаки операций отношения: <, >, =, <=, >=, <>
4. {..} или // - комментарии, то есть необязательный текст в окне программного кода, который служит для пояснения и не влияет на выполнение задачи.
5.; - символ для разделения инструкций языка (операторов)
Для решения арифметических задач необходимо описывать все используемые переменные:
Var a, b, c, dude: integer; //целые числа
x, y, z, max: real; // вещественные числа
Т.е. пример a+b=c мы будем решать следующим образом:
1. Заведем 3 переменные a, b, c.
2. Запись c:=a+b будет означать, что результат суммы двух чисел, лежащих в ячейках a и b будет записан в переменную с. В языке программирования Delphi запись с=а+b будет означать, что сумма чисел а и b равна с.
Теперь, если нам необходимо решить пример 2+4=6, при запуске программы мы в переменную a положим 2, в b – 4 и программа выдаст
ответ 6.
Для решения примеров мы будем использовать функции IntToStr (<переменная>) (перевод числа из целого в строчный тип) и StrToInt (<переменная>) (перевод из строкового в целый тип). Это необходимо в связи с тем, что при вводе числа в строку Edit оно становится строкового типа, а со строками нельзя выполнить арифметических операций. Для вычисления необходимо преобразовывать тип из строкового в целый, а для вывода результата нужно обратно переводить из целого в строчный тип.
|
Однако если ответ задачи лежит в переменной вещественного типа, то для вывода его в строчном поле классов TEdit или TMemo необходимо использовать функцию FloatToStr(<переменная>).
Решим простейший пример: найти сумму трех чисел.
1. Описываем после служебного слова VAR несколько переменных целого типа для удобства решения: Var a, b, c, s: integer;
2. На форму заводим 3 метки: Label1, Label2, Label3. У каждой из них в свойстве Caption написать соответственно а=, в=, с=.
3. Наносим однострочные элементы управления Edit1, Edit2, Edit3. В них будем вводить числа. Для этого в свойстве Text нужно удалить надписи.
4. Заводим кнопку, которую называем Cумма
5. Наносим элемент управления Memo1 и удаляем все надписи в многострочном редакторе. Для этого в окне Свойства объекта выбираем свойство Lines и удаляем все надписи в нем.
Примерно ваша форма должна выглядеть так:
6. Активируем двойным щелчком мыши кнопку. Появляется процедура TForm1.Button1Click(Sender: TObject);
7. В теле процедуры присваиваем заведенным переменным значения строк следующим образом a:=StrToInt(Edit1.text); (аналогично для b и c)
8. Вычисляем сумму s:=a+b+c;
9. Выводим результат в Memo1. Для этого записываем Memo1.Text:=IntToStr(s);
Алгоритм решения задачи имеет 3 основные части:
1. ввод данных
Например:
a:=StrToInt(Memo1.text); // занести в переменную а содержимое многострочного редактора Memo1, переведенное из строкового в числовую форму для выполнения математических действий.
b:=StrToInt(Edit1.text); // занести в переменную b содержимое однострочного редактора Edit1, переведенное из строкового в числовую форму для выполнения математических действий.
2. проведение определенных действий, требуемых в условии задачи.
3. вывод результата или сообщения о проведенном анализе данных.
Вывод результата: c:=a+b; // ответ с
Memo1.text:=IntToStr(c); // вывод результата решения примера в многострочный редактор Memo1 путем перевода ответа из числовой в строковую форму.
Вывод сообщения: Edit1.text:=’Задача решена успешно!’; // вывод сообщения о проведенном анализе данных в многострочный редактор Edit1. Перевод сообщения из числовой в строковую форму НЕ ОСУЩЕСТВЛЯЕТСЯ!