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 (составной оператор) и сохраните проект Calculator2, а модуль – mainCalc2.

8. Отредактируйте текст модуля приложения 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}

 

Задача 4

Создайте приложение, которое предлагает ввести текст, а затем заменить символы «а» на «б» в тексте и подсчитать количество замен.

Решение:

1. Создайте папку «Замена символов» и сохраните в ней проект под названием «zamena», файл модуля сохраните как zmain.pas.

2. Форму приложения назовите «Подсчет и замена символов». На форме расположите три компонента Edit, три компонента Label, один компонент Button и два компонента CheckBox.

3. Задайте значения свойств: Label1.Caption – «Исходный текст на русском языке», Label2.Caption – «Измененный текст», Label3.Caption – «Число замен», Button1.Caption – «Выполнить», CheckBox1.Caption – «Подсчитать число замен», CheckBox2.Caption – «Заменить «а» на «б»». Удалите текст Edit1,2,3 из соответствующих компонентов.

 

4. Для замены и подсчета символов запишите процедуру обработки события OnClick для кнопки «Выполнить». Введите следующее описание переменных:

Var

S: string;

N: byte;

Примечание: для поиска символа в строке используйте функцию Pos. Для программирования варианта замены символов используйте значение свойства Checked компонента CheckBox.

5. Тело процедуры может быть записано следующим образом:

Begin

N:= 0;

Edit3.Text:= ‘’;

Edit2.Text:= ‘’;

S:= Edit1.Text;

If CheckBox2.Checked then {если включен флажок}

While Pos(‘a’, S) > 0 do {если в строке найдена буква «а»}

Begin

N:= N + 1;

S [ Pos (‘a’, S)]:= ‘б’; {заменить букву «а» на букву «б»}

End;

If CheckBox1.Checked then Edit3.Text:= IntToStr(N);

{вывод числа замен}

Edit2.Text:= S; {вывод измененного текста}

End;

 

6. Сохраните проект и запустите на выполнение.

 

7. Добавьте еще один пункт «Заменить пробелы на тире» и найдите количество таких замен.

 

 

Задача 5

Создать простейший текстовый процессор, содержащий переключатели цвета шрифта, флажки для определения стиля.

 

Содержание отчета:

1) Задание на выполнение лабораторной работы;

2) Блок-схема алгоритма программы “Калькулятор»;

3) Листинг программы.

Контрольные вопросы

1. Опишите назначение компонента RadioGroup?

2. Как задать список элементов-переключателей в панели RadioGroup?

3. По какому свойству RadioGroup определяется выбранный переключатель?

4. Как задать этому свойству значение?

5. Опишите назначение компонента CheckBox?

6. Какое свойство этого компонента позволяет определить выбор?

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-06-03 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: