Знайомство з компонентами RadioGroup і CheckBox обробка рядків типу String в середовищі Delphi

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Лабораторна робота

На тему: «Ознайомлення з компонентами 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 - ні одна кнопка не обрана).
Форма буде мати наступний вигляд:

SHAPE \ * MERGEFORMAT
Калькулятор
Операнд 1
Операнд 2
Операція
+
_
*
/
Обчислити
Результат

Рис. 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: = ab;
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
else ShowMessage ('Не задано значення');
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.
Завдання 3. Створіть додаток, що пропонує користувачеві ввести рядок, що визначає кількість символів в ній та виводить результат, погоджуючи закінчення слова «символів» з числом символів.
Рішення:
1. Створіть папку «Кількість символів» і збережіть в ній проект «simvol».
2. Розмістіть на формі компоненти: Edit1, Label1, 2, Button1, як показано на рис. 3.2. Задайте значення властивостей Label1. Caption - «Введіть текст», Label2. Caption - «В тексті", Button1. Caption - «Обчислити». Видаліть текст Edit1 з відповідного компонента.

SHAPE \ * MERGEFORMAT
Кількість символів в рядку
Введіть текст
Обчислити
У тексті

Рис. 3.2 Приклад форми проекту «Кількість символів»
3. Для обчислення кількості символів у введеної рядку та виведення результату створіть процедуру обробника події клацання мишею на кнопці «Обчислити».
4. Введіть у текст процедури наступний опис змінних:
Var
N: integer;
S: string;
5. Введіть текст тіла процедури обробки події:
Begin
N: = Length (Edit 1. Text); {визначити число символів}
Label 2. Caption: = 'У тексті';
If N> 20 then N: = N mod 10; {виділити останню цифру}
Case N of
1: S: = 'символ';
2 .. 4: S: = 'символу';
0, 5 .. 20: S: = 'символів';
End;
Label2. Caption: = Label2. Caption + IntToStr (Length (Edit1. Text)) + S;
End;

Примітка: функція Length - це функція обробки String змінних, визначає кількість символів вводиться рядка (див. розділ 1).
6. Збережіть проект і запустіть програму на виконання. Перегляньте результат програми, задаючи текст з різною кількістю символів і перевіряючи правильність виведення результатів роботи.
Завдання 4. Створіть додаток, яке пропонує ввести текст, а потім замінити символи «а» на «б» у тексті і підрахувати кількість замін.
Рішення:
1. Створіть папку «Заміна символів» і збережіть в ній проект під назвою «zamena», файл модуля збережіть як zmain.pas.
2. Форму програми назвіть «Підрахунок і заміна символів». На формі розташуйте три компоненти Edit, три компоненти Label, один компонент Button і два компоненти CheckBox, як показано на рис. 3.3.
3. Задайте значення властивостей: Label1. Caption - «Оригінальний текст російською мовою», Label2. Caption - «Змінений текст», Label3. Caption - «Кількість замін», Button1. Caption - "Run", CheckBox1. Caption - «Підрахувати число замін», CheckBox2. Caption - «Замінити« а »на« б »». Видаліть текст Edit1, 2,3 з відповідних компонентів.
SHAPE \ * MERGEFORMAT
Підрахунок і заміна символів
Оригінальний текст російською мовою
Підрахувати кількість замін
Замінити «а» на «б»
Виконати
Число замін
Змінений текст

Рис. 3.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);
{Висновок кількості замін}
Edit 2. Text: = S; {висновок зміненого тексту}
End;
6. Збережіть проект і запустіть на виконання.
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Лабораторна робота
28.6кб. | скачати


Схожі роботи:
Обробка файлів в середовищі Delphi
Розробка в середовищі Turbo Pascal програми сортування елементів рядків матриці
Дані типу string Використання тексту у програмі - основні оператори
Основи програмування в середовищі Delphi 7 0
Робота з потоками в середовищі Delphi
Основи програмування в середовищі Delphi 70
Створення Web-додатків в середовищі Delphi
Створення додатка речового поділу в середовищі Delphi
Математична модель вимірювальної системи в середовищі Delphi
© Усі права захищені
написати до нас