Знакомство с компонентами RadioGroup и CheckBox обработка строк типа String в среде Delphi
Задание 1. (Калькулятор). Создайте приложение, обеспечивающее ввод двух целых чисел и выполнение над ними арифметических операций сложения, умножения и вещественного деления. Для выбора операций используйте переключатели, вывод сообщения об ошибке при вводе делителя, равного нулю, выполните в отдельном окне сообщений. Решение: 1. Сохраните проект в отдельной папке «Калькулятор». Проект назовите Calculator, а файл модуля – mainCalc.pas. 2. Задайте для свойства Form1. Caption значение «Калькулятор». Разместите на форме компоненты (см. рис. 3.1) Edit1,2,3 и Label1,2,3. Задайте свойства Caption для компонентов Label – «операнд1», «операнд2», «Результат». Удалите текст Edit1,2,3 в соответствующих компонентах (используйте свойство Text). Разместите на форме компонент Button1. Кнопку назовите «Вычислить». 3. Разместите на форме компонент RadioGroup 1 из палитры Standard. Задайте для свойства Caption значение «Операция». Затем выберите свойство Items (это свойство задает количество переключателей в группе и надписи около них). В окне String List Editor введите список элементов – символов арифметических операций в столбик: +, -, *, /. Щелкните мышкой по кнопке ОК, завершите формирование списка арифметических операций. 4. В окне Инспектора объектов задайте для свойства RadioGroup . ItemIndex значение 0, чтобы сделать первую кнопку (сложение) выбранной по умолчанию. Задайте размер символов этого компонента, установив значение 14 пунктов. Примечание: определить во время выполнения, какая кнопка выбрана в данный момент, можно по индексу ItemIndex (0 означает первую кнопку, -1 – ни одна кнопка не выбрана). Форма будет иметь следующий вид:
Рис. 3.1 Пример формы приложения «Калькулятор» 1. Создайте код обработки события щелчка на кнопке с надписью «Вычислить». Для решения задачи вычисления арифметических операций введите в текст процедуры TForm1. Button1Click следующее описание: Var a, b: integer; c: real; Так как в процедуре обработки нажатия кнопки должно быть 4 варианта реализации, по одному для каждой арифметической операции, то следует записать выбор вычисления с помощью оператора Case . В основном теле процедуры обработки события введите текст остальных операторов следующим образом: Begin A:=StrToInt (Edit1. Text); B:=StrToInt (Edit2. Text); Edit3. Text :=’ ‘; {очистить от результата предыдущих вычислений} 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 RadioGroup. ItemIndex <> 3 then Edit3. Text:= FloatToStrF (c, ffGeneral, 10, 4) Else if b <> 0 then Edit3. Text:= FloatToStrF (c, ffGeneral, 10, 4); End; 6. Сохраните и запустите приложение на выполнение. 7*. Самостоятельно исправьте код программы модуля, используя другой вариант оператора Case (составной оператор) и сохраните проект Calculator 2, а модуль – mainCalc 2. Задание 2. Отредактируйте текст модуля приложения Calculator таким образом, чтобы перед выполнением вычислений выполнялась проверка: а) заданы ли значения операндов, если значения операндов не заданы, то следует вывести сообщения об этом в отдельном окне; б) запретить ввод любых символов, кроме цифр от 0 до 9 и знаков «–», «+». Решение (а): Поместите перед оператором присваивания A:=StrToInt (Edit1. Text); строку: If (Edit1. Text <> ‘’) and (Edit2. Text <> ‘’) then begin которая проверяет значения свойств Edit1.textи Edit2.text. Если эти значения не пусты, то выполняется вычисление арифметической операции, в противном случае управление передается на следующий фрагмент программы, который нужно вставить перед последним оператором end; Else ShowMessage (‘Не заданы значения’); Решение (б): Для реализации второй части задания необходимо создать обработчики событий onkeypress для компонентов Edit1, Edit2. Примечание: параметр Key в обработчике этого события соответствует символу нажатой клавиши. При этом различаются символы в верхнем и нижнем регистрах и символы кириллицы латиницы. Клавиши, не имеющие соответствующих им кодов ASCII (Shift, Alt, Ctrl и функциональные клавиши), не вызывают этого события. Поэтому нажатие таких комбинаций клавиш, как, например, Shift+A, генерирует только одно событие onkeypress , при котором параметр Key равен «А». Для того чтобы распознавать подобные комбинации клавиш, следует использовать обработчики событий onkeydown, onkeyup. 1. Выделите на форме объект Edit1 и выберите в окне Инспектора объектов на странице Events (События) событие onkeypress . Дважды щелкните левой кнопкой мыши на пустом поле списка этого события. После этого курсор переместиться в окно Редактора кода и в разделе interface появится запись процедуры обработчика события: Procedure Edit1KeyPress (Sender: TObject; var Key: Char); 2. Вставьте в тело процедуры следующий оператор: If not (Key in [‘0’.’9’, ‘+’, ‘– ‘]) then Key:= #0; Действие оператора сводится к сравнению значения переменной Keyс множеством значений от 0 до 9 и символов «+» и «–». Если символ нажатой клавиши не входит во множество, то Key присваивается значение нулевого символа (#0). Таким образом, в окне Edit1 будет отображаться текст, состоящий из цифр и знаков «+, -». 3. Аналогичным образом создайте процедуру обработки события компонента Edit2. 4. Сохраните приложение и запустите его на выполнение. Проверьте результат работы программы. Текст модуля приложения имеет следующий вид: unit mainCalc; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Label2: TLabel; Button1: TButton; Edit3: TEdit; Label3: TLabel; RadioGroup1: TRadioGroup; procedure Button1Click (Sender: TObject); procedure Edit1KeyPress (Sender: TObject; var Key: Char); procedure Edit2KeyPress (Sender: TObject; var Key: Char); private {Private declarations} public {Public declarations} end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1. Button1Click (Sender: TObject); var a, b: integer; c: real; begin if (Edit1. Text<>'') and (Edit2. Text<>'') then begin a:=StrToInt (Edit1. Text); b:=StrToInt (Edit2. Text); Edit3. Text:=''; 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,4) else if b<>0 then Edit3. Text:=FloatToStrF (c, ffGeneral, 10,4); end elseShowMessage ('Не заданы значения'); end; procedure TForm1. Edit1KeyPress (Sender: TObject; var Key: Char); begin if not (Key in ['0'..'9', '+', '-']) then Key:=#0; end; procedure TForm1. Edit2KeyPress (Sender: TObject; var Key: Char); begin if not (Key in ['0'..'9', '+', '-']) then Key:=#0; end; end.
Рефераты по информатикеЗадание 1. (Калькулятор). Создайте приложение, обеспечивающее ввод двух целых чисел и выполнение над ними арифметических операций сложения, умножения
Оценок: 288 (Средняя 5 из 5)
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.