logo search
Методичка лаб по ООП с ИИТ

3. Лабораторный практикум Лабораторная работа 1. Разработка приложения Калькулятор

Задание 1.

Откройте новый проект и создайте следующую форму.

Запрограммируем реакцию на щелчок на кнопке +. Для этого определим локальные переменные типа Integer (целые) и опишем выполнение операции сложения.

procedure TForm1.Button1Click(Sender: TObject);

var

a,b,c:Integer; //объявление переменных

begin

a:=StrToInt(Edit1.Text); //перевод символа в целое число

b:=StrToInt(Edit2.Text);

c:=a+b; //сложение чисел

Label4.Caption:=IntToStr(c); //вывод результата, преобразование числа

// в символ

end;

Операция сложения будет выполняться только с целыми числами.

Задание 2.

Для выполнения сложения с вещественными числами изменим их тип и преобразование выполним из символа в вещественное число. Внесем соответствующие изменения.

procedure TForm1.Button1Click(Sender: TObject);

var

a,b,c:Real;

begin

a:=StrToFloat(Edit1.Text); //перевод символа в вещественное число

b:=StrToFloat(Edit2.Text);

c:=a+b;

Label4.Caption:=FloatToStr(c);

end;

Запустите программу, проверьте результат выполнения. Разделителем при вводе вещественных чисел является запятая.

Задание 3.

Для того чтобы предусмотреть ввод неправильного символа используем функцию преобразования типов Val. При вызове функции необходимо указывать три параметра (откуда, куда, как).

В разделе описания переменных добавим две вспомогательные переменные code1 и code2. Заменим несколько операторов и получим следующую процедуру.

procedure TForm1.Button1Click(Sender: TObject);

var

a,b,c:Real;

code1,code2:Integer;

begin

Val(Edit1.Text,a,code1);

Val(Edit2.Text,b,code2);

if (code1=0)and(code2=0) then

begin

c:=a+b;

Label4.Caption:=FloatToStr(c);

end

else

Label4.Caption:='Введите числа правильно';

end;

При использовании функции Val числа записываются через десятичную точку. Запустите программу и сравните ее выполнение с предыдущим вариантом.

Задание 4.

В Delphi имеются специальные меры защиты кода для предотвращения аварийной блокировки программ. Одно из таких средств применение специальной конструкции языка:

try

защищаемый код

except

действие при возникновении аварийной ситуации

end;

В нашем примере. Не прибегая к услугам функции Val, мы могли бы написать.

try

a:=StrToFloat(Edit1.Text);

b:=StrToFloat(Edit2.Text);

c:=a+b;

Label4.Caption:=FloatToStr(c);

except

Label4.Caption:='Введите числа правильно';

end;

Для того, чтобы эта конструкция сработала, в главном меню нужно выбрать Tools, Debugger Options, Language Exceptions (Инструменты, отладочные средства, Исключение языка) убрать флажок в окне Stop on Delphi Exceptions (Остановка по исключительным ситуациям).

Задание 5.

При выполнении деления чисел необходимо предусмотреть деление на ноль. Событийная процедуру будет иметь вид:

procedure TForm1.Button4Click(Sender: TObject);

begin

try

a:=StrToFloat(Edit1.Text);

b:=StrToFloat(Edit2.Text);

if b<>0 then

begin

c:=a/b;

Label4.Caption:=FloatToStr(c);

end

else Label4.Caption:='Деление на ноль';

except

Label4.Caption:='Введите числа правильно';

end;

Задание 6.

Добавьте кнопки для выполнения встроенных функций.

Некоторые стандартные функции языка.

Inc(x,n) - увеличивает целое число х на целое число n

Dec(x,n) – уменьшает целое число х на целое число n

Round(x) – округляет вещественное число х до ближайшего целого числа

Trunc(x) – усекает число вещественного типа к ближайшему целому числу

Int(x) – возвращает целую часть числа

Frac(x) –возвращает дробную часть числа

Abs(x) – модуль числа х

ArcTan(x) - arctg(x)

Cos(x) – cos(x)

Sin(x) – sin(x)

Sqr(x) – x2

Sqrt(x) -

Exp(x) - ex

Ln(x) – ln(x)

Pi – 3,141592653…

Задание 7.

Для дополнительных математических вычислений существует специальный модуль Math.

Подключение модуля Math.

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls,Math;

Для возведения числа в степень используется функция Power. Создадим соответствующую кнопку и опишем событийную процедуру.

procedure TForm1.Button5Click(Sender: TObject);

begin

try

a:=StrToFloat(Edit1.Text);

b:=StrToFloat(Edit2.Text);

c:=Power(a,b);

Label4.Caption:=FloatToStr(c);

except

Label4.Caption:='Введите числа правильно';

end;

end;

Задание 8.

Добавьте несколько дополнительных кнопок (3-5) для реализации функций модуля Math .

Задание 9.

Добавьте кнопку F(x) для подсчета значения функции. Функцию необходимо выбрать согласно своему варианту. Предусмотреть ввод неправильного символа, деления на ноль и других ограничений.

1.

6.

2.

7.

3.

8.

4.

9.

5.

10.

Задание 10.

Для кнопки Command8 - "F2 ()" также необходимо запрограммировать вычисление функции, которая представлена следующим выражением:

1, при x = 0 F2 (x) = 1

при x = 1 F2 (x) = 10

при x = 2 F2 (x) = 50

сообщение об ошибке, при других значениях x.