это быстро и бесплатно
Оформите заказ сейчас и получите скидку 100 руб.!
Ознакомительный фрагмент работы:
Задание 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. Разместите на форме компонент RadioGroup1 из палитры Standard. Задайте для свойства Caption значение «Операция». Затем выберите свойство Items (это свойство задает количество переключателей в группе и надписи около них). В окне StringListEditor введите список элементов – символов арифметических операций в столбик: +, -, *, /. Щелкните мышкой по кнопке ОК, завершите формирование списка арифметических операций.
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 (составной оператор) и сохраните проект Calculator2, а модуль – mainCalc2.
Задание 2. Отредактируйте текст модуля приложения Calculator таким образом, чтобы перед выполнением вычислений выполнялась проверка: а) заданы ли значения операндов, если значения операндов не заданы, то следует вывести сообщения об этом в отдельном окне; б) запретить ввод любых символов, кроме цифр от 0 до 9 и знаков «–», «+».
Решение (а):
Поместите перед оператором присваивания A:=StrToInt (Edit1. Text); строку:
If (Edit1. Text <> ‘’) and (Edit2. Text <> ‘’) thenbegin
которая проверяет значения свойств Edit1.textи Edit2.text. Если эти значения не пусты, то выполняется вычисление арифметической операции, в противном случае управление передается на следующий фрагмент программы, который нужно вставить перед последним оператором end;
ElseShowMessage(‘Не заданы значения’);
Решение (б): Для реализации второй части задания необходимо создать обработчики событий 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.
Задание 3. Создайте приложение, предлагающее пользователю ввести строку, определяющее количество символов в ней и выводящее результат, согласуя окончание слова «символов» с числом символов.
Решение:
1. Создайте папку «Количество символов» и сохраните в ней проект «simvol».
2. Разместите на форме компоненты: Edit1, Label1,2, Button1, как показано на рис. 3.2. Задайте значения свойств Label1. Caption – «Введите текст», Label2. Caption – «В тексте», Button1. Caption – «Вычислить». Удалите текст Edit1 из соответствующего компонента.
Рис. 3.2 Пример формы проекта «Количество символов»
3. Для вычисления количества символов во введенной строке и вывода результата создайте процедуру обработчика события щелчка мышью на кнопке «Вычислить».
4. Введите в текст процедуры следующее описание переменных:
Var
N: integer;
S: string;
5. Введите текст тела процедуры обработки события:
Begin
N:= Length (Edit1. Text); {определить число символов}
Label2. Caption:= ‘В тексте’;
IfN>20 thenN:=Nmod 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 – «Выполнить», CheckBox1. Caption – «Подсчитать число замен», CheckBox2. Caption – «Заменить «а» на «б»». Удалите текст Edit1,2,3 из соответствующих компонентов.
Рис. 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 {есливключенфлажок}
WhilePos (‘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. Сохраните проект и запустите на выполнение.
Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников
Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.
Цены ниже, чем в агентствах и у конкурентов
Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит
Бесплатные доработки и консультации
Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки
Гарантируем возврат
Если работа вас не устроит – мы вернем 100% суммы заказа
Техподдержка 7 дней в неделю
Наши менеджеры всегда на связи и оперативно решат любую проблему
Строгий отбор экспертов
К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»
Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован
Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн
Требуется разобрать ст. 135 Налогового кодекса по составу напогового...
Решение задач, Налоговое право
Срок сдачи к 5 дек.
Школьный кабинет химии и его роль в химико-образовательном процессе
Курсовая, Методика преподавания химии
Срок сдачи к 26 дек.
Реферат по теме «общественное мнение как объект манипулятивного воздействий. интерпретация общественного мнения по п. бурдьё»
Реферат, Социология
Срок сдачи к 9 дек.
Выполнить курсовую работу. Образовательные стандарты и программы. Е-01220
Курсовая, Английский язык
Срок сдачи к 10 дек.
Изложение темы: экзистенциализм. основные идеи с. кьеркегора.
Реферат, Философия
Срок сдачи к 12 дек.
Заполните форму и узнайте цену на индивидуальную работу!