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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!