Case RadioGroup1.ItemIndex of
Лабораторная работа №10
Задание: Создайте приложение, обеспечивающее ввод двух целых чисел и выполнения над ними арифметических операций сложения, вычитания, умножения и вещественного деления.
Вид формы приложения с компонентами
Алгоритм выполнения работы
1. После запуска ИСР Delphi создайте новый проект при помощи команды Файл ► Создать ► Приложение. В Delphi 6 при запуске ИСП форма создается автоматически. В результате создания проекта приложения в окне Delphi будет раскрыто окно формы, на которой можно размещать визуальные компоненты проекта. Сохраните новый проект, для чего выберите команду Файл (File) ► Сохранить проект Как (Save Project As). В окне создайте новую папку для файлов создаваемого проекта, например, «Калькулятор». Затем в окне Сохранить Unit1 Как откройте созданную папку, - в поле Имя файла задайте имя модуля Main и нажмите кнопку Сохранить. После сохранения файла модуля main.pas откроется окно Сохранить проект Как. В этом окне в поле Имя файла задайте имя файла проекта, например, Calculator и нажмите кнопку Сохранить.
2. Задайте для свойства Form1.Caption значение «Калькулятор».
3. Разместите на форме Form1 компоненты Edit1, Edit2 и Label1, Label2.
4. Задайте для свойства Caption компонентов Label1 и Label2 значения «Операнд». При нажатой клавише Shift выделите компоненты Edit1, Edit2, Label1, Label2 и, вызвав контекстное меню, командой Позиция (Position) ► Выровнять (Align) ► По горизонтали (Horizontal) ► По центру (Centers) выровняйте их по горизонтали.
|
|
5. Для выбора одной из четырех арифметических операций над операндами используйте переключатели, размещенные на панели RadioGroup.
ПРИМЕЧАНИЕ
Компонент RadioGroup позволяет отображать и редактировать поля с ограниченным множеством возможных значений.
Разместите на форме Form1 компонент RadioGroup1 из палитры Standard.
Задайте для свойства Caption компонента RadioGroup1 значение «Операция». Так как количество переключателей в группе и надписи около них определяются свойством Items, выберите в Инспекторе объектов компонент RadioGroup1, а на странице свойств выберите свойство Items (список элементов). В окне Редактор Списка Строк введите список элементов — символов арифметических операций: +, - ,*, /, как показано на рис. 31.
Щелкнув мышью на кнопке ОК, завершите формирование списка арифметических операций.
6. В окне Инспектора объектов задайте для свойства RadioGroup. Items Index значение 0, чтобы сделать первую кнопку (сложение) выбранной по умолчанию.
ПРИМЕЧАНИЕ
Определить во время выполнения, какая кнопка выбрана в данный момент, можно по индексу ItemIndex (0 означает первую кнопку, -1 — ни одна кнопка не выбрана).
|
|
Рис. 31. Редактирование списка элементов в панели RadioGroup
7. Задайте размер символов компонента RadioGroup, установив для свойства RadioGroup.Font.Size значение 11 пунктов.
8. Разместите на форме Form1 кнопку Button1 и задайте для нее надпись «Вычислить».
9. Разместите на форме Form1 компоненты Edit3, Label3 и задайте для свойства Label3.Caption значение «Результат».
10. Удалите текст Edit1, Edit2, Edit3 в соответствующих компонентах. Для этого выберите объект в окне Инспекто-ра объектов, на странице Properties выберите свойство Text и удалите текст.
11. Выровняйте компоненты Edit3 и Label3, отцентрировав их по горизонтали.
12. Зафиксируйте положение компонентов на форме, выбрав в меню Delphi команду Правка ► Зафиксировать. Форма будет выглядеть, как показано на рис. 32.
Рис. 32. Вид формы приложения с компонентами
13. Для обработки щелчка на кнопке Button1 с изображением символа «=» в окне Инспектора объектов выберите объект Button1, затем на странице События дважды щелкните мышью на пустом поле списка в событии OnClick. После этого в разделе interface модуля Main.pas появится процедура обработчика события procedure TForm1.Button1Click(Sender: TObject);, а в разделе implementation появится текст заготовки этой процедуры:
|
|
procedure TForm1.Button1CIick(Sender: TObject);
Begin
end;
Для решения задачи вычисления арифметических операций над двумя целыми операндами введите в текст процедуры TForm1.Button1Click следующее описание:
Var
a, b: integer; { 2 операнда - целые числа}
с: real; {результат арифметических операций}
Так как в процедуре обработки нажатия кнопки Button1 «Вычислить» должно быть 4 варианта реализации, по одному для каждой арифметической операции, то следует записать выбор вычисления с помощью оператора case. Для получения подсказки Delphi по синтаксису оператора case, введите слово case, укажите на него мышью и нажмите F1. В списке найденных разделов выберите раздел Case statements и щелкните мышью на кнопке Показать. Для просмотра информации используйте полосу прокрутки в окне Delphi Help. Для копирования примера кода программы в окне Delphi Help выделите текст в окне справки и, нажав правую кнопку мыши, вызовите контекстное меню, затем в контекстном меню выберите команду Копировать, как показано на рис. 33
Рис. 33. Копирование примера кода программы в окне Delphi Help
В окне Редактора кода укажите место вставки скопированного фрагмента в основном теле процедуры обработки события и, вызвав контекстное меню, выберите команду Paste (Вставить). В основном теле процедуры обработки события отредактируйте текст оператора case и введите текст остальных операторов следующим образом:
|
|
Begin
a:= StrToInt( Edit1. text); {преобразование текстовой строки в целое число}
b:= StrToInt( Edit2. text);
Edit3. text:=''; {очистить от результата предыдущих вычислений}
{выбор операции в зависимости от значения свойства RadioGroup1.ItemIndex}
Case RadioGroup1.ItemIndex of
0 : c:=a+b; {сложение}
1 : c:=a-b; {вычитание}
2 : c:=a*b; {умножение}
3 : {деление} if b=0 then ShowMessage('На ноль делить нельзя!')
else c:=a/b; end;
if RadioGroup1.ItemIndex<> 3 then {вывод результата операций}
Edit3.text:= FloatToStrF(c,ffGeneral,10,7){преобразование
результата вещественного деления в текстовую строку}
else if b<>0 then
Edit3.text:=FloatToStrF(c,ffGeneral,10,4)
end;
Как видно из текста процедуры, в операторе case выполняется выбор варианта вычислений, а вывод результата вычислений выполняется оператором, следующим после оператора case, причем для случая b=0 результат не вычисляется и в окне Edit3 не выводится, а выводится сообщение в окне сообщений.
14. Откомпилируйте и запустите приложение на выполнение.
Рис. 34. Вид окна приложения с сообщением об ошибке ввода делителя
Дополнительное задание 1.
Закройте окно приложения и отредактируйте текст модуля таким образом, чтобы перед выполнением вычислений выполнялась проверка, заданы ли значения операндов. Если значения операндов не заданы, то следует вывести сообщение об этом в отдельном окне.
Окно сообщения о некорректности значения операнда
Поместите перед оператором присваивания a:= StrToInt( Edit1. text); строку
if (Edit1.Text<>") and (Edit2.Text<>") then begin
которая проверяет значения свойств Edit1.Text и Edit2.Text.
Если эти значения не пустые, то выполняется вычисление арифметической операции, в противном случае управление передается на следующий фрагмент программы, который нужно вставить перед последним оператором end;
End;
Дата добавления: 2020-11-15; просмотров: 465; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!