Разработка приложения "Калькулятор"

Анализ использования системы визуального объектно-ориентированного проектирования Delphi. Характеристика создания приложения "Калькулятор", обладающего всеми функциями инженерного калькулятора. Особенность выполнения основных арифметических действий.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 13.05.2020
Размер файла 920,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Задание

В курсовой работе разработано приложение «Калькулятор», обладающей всеми функциями инженерного калькулятора и имеющую окно для вывода посчитанного выражения.

Программа была разработана в среде программирования Borland Delphi 7. Она выполняет основные арифметические действия, такие, как сложение и вычитание, а также функции инженерного калькулятора, например нахождение логарифмов и тригонометрических функций. В калькуляторе предусмотрена возможность работы с памятью и перевод целых чисел между двоичной, шестнадцатеричной, восьмеричной и десятичной систем счисления..

Содержание

Введение

1. Анализ технического задания

2. Разработка алгоритмов

3. Руководство программиста

4. Руководство пользователя

Заключение

Список использованных источников

Приложение

Введение

Delphi - это потомок среды программирования Turbo Pascal. Система визуального объектно-ориентированного проектирования Delphi позволяет:

1. Создавать законченные приложения для Windows самой различной направленности.

2. Быстро создавать профессионально выглядящий оконный интерфейс для любых приложений; интерфейс удовлетворяет всем требованиям Windows и автоматически настраивается на ту систему, которая установлена, поскольку использует функции, процедуры и библиотеки Windows.

3. Создавать свои динамически присоединяемые библиотеки компонентов, форм, функций, которые потом можно использовать из других языков программирования.

4. Создавать мощные системы работы с базами данных любых типов.

5. Формировать и печатать сложные отчеты, включающие таблицы, графики и т.п.

6. Создавать справочные системы, как для своих приложений, так и для любых других.

7. Создавать профессиональные программы установки для приложений Windows, учитывающие всю специфику и все требования операционной системы.

Delphi - быстро развивающаяся система. Первая версия Delphi была выпущена в феврале 1995 года, и до сих пор Delphi является очень актуальной и популярной средой программирования.

В данной курсовой работе требуется разработать инженерный калькулятор. Средства среды программирования Delphi позволяют это сделать легко и быстро.

1. Анализ технического задания

В курсовой работе поставлена задача разработать инженерный калькулятор.

В ходе выполнения курсовой работы были поставлены следующие

задачи. Разрабатываемый калькулятор должен обладать всеми функциями

инженерного калькулятора:

- считать факториал;

- извлекать корень;

- находить квадрат и высшие степени выражений;

- считать ln и log;

- вычислять тригонометрические выражения (sin, cos,tg);

- переводить числа из одной системы счисления в другую (десятичная,

двоичная, восьмеричная, шестнадцатеричная);

- работать с памятью.

В калькуляторе будут присутствовать следующие кнопки для работы с памятью:

MC - Momory Clear, очистка значения памяти;

MR - memory result, вывести значение памяти;

MS- memory send,поместить в память текущее значение;

М- -это вычитание текущего значения из значения хранящегося в памяти;

М+ - это прибавление текущего значения к значению находящемуся в памяти.

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

2. Разработка алгоритмов

Разместим на форме следующие компоненты:

- компоненты TBitBtn, которые будут отвечать за ввод операндов и действий над ними;

- компонент TMemo, отображает результат производимых операций с числами;

- компонент TPanel, отображает наличие числа в памяти;

- компонент TRadioGroup используется для выбора системы счисления.

Каждой кнопке присвоим свой обработчик, отвечающий за определенные действия.

Глобальная переменная d - хранит вид произведенной операции над числами. В обработчике кнопки «=» проверяется её значение и выводится в Memo, результат арифметической операции над числами.

procedure TForm1.BitBtn16Click(Sender: TObject);

begin

if memo1.Text<>'' then

begin

z:=strtofloat(memo1.Text);

if d=1 then

y:=x+z;

if d=2 then

y:=x-z;

if d=3 then

y:=x*z;

if d=4 then

y:=x/z;

if d=5 then

begin

t:=strtoint(memo1.Text);

y:=1;

for i:=1 to t do

y:=y*x;

end;

memo1.Text:=floattostr(y);

end;

end;

Кнопка «n!», вычисляющая факториал, имеет следующий обработчик событий:

procedure TForm1.BitBtn28Click(Sender: TObject);

begin

if memo1.Text<>'' then

begin

t:=strtoint(memo1.Text);

y:=1;

for i:=1 to t do

y:=y*i;

memo1.Text:=floattostr(y);

end;

end;

По нажатию на кнопку «log» вычисляется логарифм по основанию 10 по следующей формуле:

procedure TForm1.BitBtn36Click(Sender: TObject);

begin

Memo1.Text:=FloatToStr(ln(StrToFloat(Memo1.Text)) / ln(10));

end;

Арифметические, тригонометрические операции можно производить только в десятичной системе счисления, поэтому, когда выбирается другая система счисления, становятся недоступны соответствующие кнопки (свойство кнопок Enabled устанавливается в значение False).

Для ввода чисел в шестнадцатеричной системе счисления становятся доступны кнопки ввода букв.

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

function DEC2BIN(DEC: LONGINT): string; // перевод из десятичной системы счисления в двоичную (см. рис.1).

function BIN2DEC(BIN: string): LONGINT; // перевод из двоичной системы счисления в десятичную (см.рис.2).

function DEC2HEX(DEC: LONGINT): string; //перевод из десятичной системы счисления в шестнадцатеричную (см. рис.3).

function HEX2DEC(HEX: string): LONGINT; //перевод из шестнадцатеричной системы счисления в десятичную (см.рис.4).

function DEC2OCT(DEC: LONGINT): string; //перевод из десятичной системы счисления в восьмеричную (см. рис.5).

function OCT2DEC(OCT: string): LONGINT; //перевод из восьмеричной системы счисления в десятичную (см. рис.6).

function BIN2HEX(BIN: string): string; // перевод двоичной системы счисления в шестнадцатеричную (см. рис.7).

Произведем последние настройки приложения для эргономичности интерфейса.

В главном меню Delphi 7 зайдем в Project/Options, в открывшемся окне настроек приложения выберем закладку Application, нажмем кнопку «LoadIcon» и загрузим файл, содержащий иконку нашего приложения.

В свойствах формы укажем AutoSize равным true, Position= poScreenCenter, BorderIcons/biMaximize=false.

3. Руководство программиста

Программа «Калькулятор» разработана в среде программирования Borland Delpi 7. Файл с программой называется PCalc.exe и весит 456 КБ.

Данная программа предназначена для выполнения тех же действий, что и обычный калькулятор. Она выполняет основные арифметические действия, такие, как сложение и вычитание, а также функции инженерного калькулятора, например нахождение логарифмов и тригонометрических функций. визуальный приложение калькулятор арифметический

В калькуляторе предусмотрена возможность работы с памятью и перевод целых чисел между двоичной, шестнадцатеричной, восьмеричной и десятичной систем счисления.

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

function DEC2BIN(DEC: LONGINT): string; // перевод из десятичной системы счисления в двоичную

function BIN2DEC(BIN: string): LONGINT; // перевод из двоичной системы счисления в десятичную

function DEC2HEX(DEC: LONGINT): string; //перевод из десятичной системы счисления в шестнадцатеричную

function HEX2DEC(HEX: string): LONGINT; //перевод из шестнадцатеричной системы счисления в десятичную

function DEC2OCT(DEC: LONGINT): string; //перевод из десятичной системы счисления в восьмеричную

function OCT2DEC(OCT: string): LONGINT; //перевод из восьмеричной системы счисления в десятичную

function BIN2HEX(BIN: string): string; // перевод двоичной системы счисления в шестнадцатеричную

function HEX2BIN(HEX: string): string; // перевод из шестнадцатеричной системы счисления в двоичную

function DEC2BIN(DEC: LONGINT): string;

В данных функциях используются следующие функции:

shl - сдвигает значение целого числа влево на указанное число бит;

shr - сдвигает значение целого числа вправо на указанное число бит;

length - длина строки;

upCase - приведение к верхнему регистру;

оrd - возвращает целое значение для любого порядкового типа, используется, чтобы преобразовать символы или перечисления в их числовые эквиваленты.

При вводе некорректной информации программа сообщает об ошибке (см.приложение.2 рис 1).

Запустим файл PCalc.exe, откроется окно (см.приложение.2 рис 2).

Произведем вычисления.

При попытке осуществить перевод в систему счисления дробного числа выдается ошибка (см.приложение.2 рис. 3).

4. Руководство пользователя

Запустите на выполнение файл PCalc.exe. После запуска программы на форме появится калькулятор, готовый к использованию (см.приложение.2 рис. 4).

Чтобы выполнить простое вычисление необходимо выполнить ряд действий:

- Введите первое число.

- Нажмите кнопку + (сложение), - (вычитание), * (умножение) или / (деление).

- Введите следующее число.

- Введите остальные операторы и числа.

- Нажмите кнопку =.

В окне окажется результат вычислений.

При работе с памятью используются следующие кнопки:

MC - Momory Clear, очистка значения памяти;

MR - memory result, вывести значение памяти;

MS- memory send,поместить в память текущее значение;

М- -это вычитание текущего значения из значения хранящегося в

памяти;

М+ - это прибавление текущего значения к значению находящемуся в

памяти.

Системные требования:

Процессор: Pentium III 800 МГц и выше.

ОЗУ: 128 Мбайт и выше.

Видеокарта: 64 МГц и выше.

HDD: 2 Мбайт свободного места.

Операционная система: Windows 98/2000/XP/Vista /7.

Заключение

В курсовой работе была поставлена задача создать приложение «Калькулятор», обладающую всеми функциями инженерного калькулятора и имеющую окно для вывода посчитанного выражения.

Программа была разработана в среде программирования Borland Delphi 7. Она выполняет основные арифметические действия, такие, как сложение и вычитание, а также функции инженерного калькулятора, например нахождение логарифмов и тригонометрических функций. В калькуляторе предусмотрена возможность работы с памятью и перевод целых чисел между двоичной, шестнадцатеричной, восьмеричной и десятичной систем счисления..

В результате работы была получена работоспособная программа, которая соответствует требованиям, предъявленным на этапе проектирования.

Цель курсовой работы достигнута: создано приложение «Калькулятор».

Список использованных источников

1.Истомин, Е.П. Программирование на алгоритмических языках высокого уровня: учеб. / Е.П. Истомин, С.Ю. Неклюдов. - СПб.: Издательство Михайлова В.А., 2003. - 719 с.

2. Фридман А.А. Основы объектно-ориентированной разработки программных систем. М: ФиС, 2000. - 464 с.

3. Фаронов, В.В. Delphi. Программирование на языке высокого уровня: учеб. для вузов. - СПб.: Питер, 2005. - 640 с.

4. Архангельский, А.Я. Программирование в Delphi 6. - М.: Бином, 2004. -1124 с.

5. Бобровский, С.И. Delphi 7.Учебный курс.- СПб.:Питер, 2002. - 736 с.

6. Культин, Н.Б. Delphi в задачах и примерах. - СПб.: БХВ-Петербург, 2002. - 288 с.

Приложение

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

Файл UCalc.pas:

unit UCalc;

interface

uses

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

Dialogs, ExtCtrls, StdCtrls, Buttons;

type

TForm1 = class(TForm)

Memo1: TMemo;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

BitBtn5: TBitBtn;

BitBtn6: TBitBtn;

BitBtn7: TBitBtn;

BitBtn8: TBitBtn;

BitBtn9: TBitBtn;

BitBtn10: TBitBtn;

BitBtn11: TBitBtn;

BitBtn12: TBitBtn;

BitBtn13: TBitBtn;

BitBtn14: TBitBtn;

BitBtn15: TBitBtn;

BitBtn16: TBitBtn;

BitBtn17: TBitBtn;

BitBtn18: TBitBtn;

BitBtn19: TBitBtn;

BitBtn20: TBitBtn;

BitBtn21: TBitBtn;

BitBtn22: TBitBtn;

BitBtn23: TBitBtn;

BitBtn24: TBitBtn;

BitBtn25: TBitBtn;

BitBtn26: TBitBtn;

BitBtn27: TBitBtn;

BitBtn28: TBitBtn;

BitBtn29: TBitBtn;

BitBtn30: TBitBtn;

BitBtn31: TBitBtn;

BitBtn32: TBitBtn;

BitBtn33: TBitBtn;

BitBtn34: TBitBtn;

Panel1: TPanel;

RadioGroup1: TRadioGroup;

GroupBox1: TGroupBox;

BitBtnA: TBitBtn;

BitBtnB: TBitBtn;

BitBtnC: TBitBtn;

BitBtnD: TBitBtn;

BitBtnE: TBitBtn;

BitBtnF: TBitBtn;

BitBtn35: TBitBtn;

BitBtn36: TBitBtn;

procedure BitBtn11Click(Sender: TObject);

procedure BitBtn7Click(Sender: TObject);

procedure BitBtn8Click(Sender: TObject);

procedure BitBtn9Click(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

procedure BitBtn5Click(Sender: TObject);

procedure BitBtn6Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn10Click(Sender: TObject);

procedure BitBtn12Click(Sender: TObject);

procedure BitBtn17Click(Sender: TObject);

procedure BitBtn15Click(Sender: TObject);

procedure BitBtn14Click(Sender: TObject);

procedure BitBtn13Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure BitBtn16Click(Sender: TObject);

procedure BitBtn33Click(Sender: TObject);

procedure BitBtn34Click(Sender: TObject);

procedure BitBtn19Click(Sender: TObject);

procedure BitBtn22Click(Sender: TObject);

procedure BitBtn20Click(Sender: TObject);

procedure BitBtn21Click(Sender: TObject);

procedure BitBtn18Click(Sender: TObject);

procedure BitBtn27Click(Sender: TObject);

procedure BitBtn26Click(Sender: TObject);

procedure BitBtn25Click(Sender: TObject);

procedure BitBtn24Click(Sender: TObject);

procedure BitBtn23Click(Sender: TObject);

procedure BitBtn32Click(Sender: TObject);

procedure BitBtn31Click(Sender: TObject);

procedure BitBtn30Click(Sender: TObject);

procedure BitBtn29Click(Sender: TObject);

procedure BitBtn28Click(Sender: TObject);

procedure RadioGroup1Click(Sender: TObject);

procedure BitBtnAClick(Sender: TObject);

procedure BitBtnBClick(Sender: TObject);

procedure BitBtnCClick(Sender: TObject);

procedure BitBtnDClick(Sender: TObject);

procedure BitBtnEClick(Sender: TObject);

procedure BitBtnFClick(Sender: TObject);

procedure BitBtn35Click(Sender: TObject);

procedure BitBtn36Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

x,y,z,MS,Mp,Mm:real;

p,k,l,d,i,j,t,ss:integer;

implementation

{$R *.dfm}

function DEC2BIN(DEC: LONGINT): string;

var

BIN: string;

I, J: LONGINT;

begin

if DEC = 0 then

BIN := '0'

else

begin

BIN := '';

I := 0;

while (1 shl (I + 1)) <= DEC do

I := I + 1;

for J := 0 to I do

begin

if (DEC shr (I - J)) = 1 then

BIN := BIN + '1'

else

BIN := BIN + '0';

DEC := DEC and ((1 shl (I - J)) - 1);

end;

end;

DEC2BIN := BIN;

end;

function BIN2DEC(BIN: string): LONGINT;

var

J: LONGINT;

Error: BOOLEAN;

DEC: LONGINT;

begin

DEC := 0;

Error := False;

for J := 1 to Length(BIN) do

begin

if (BIN[J] <> '0') and (BIN[J] <> '1') then

Error := True;

if BIN[J] = '1' then

DEC := DEC + (1 shl (Length(BIN) - J));

end;

if Error then

BIN2DEC := 0

else

BIN2DEC := DEC;

end;

function DEC2HEX(DEC: LONGINT): string;

const

HEXDigts: string[16] = '0123456789ABCDEF';

var

HEX: string;

I, J: LONGINT;

begin

if DEC = 0 then

HEX := '0'

else

begin

HEX := '';

I := 0;

while (1 shl ((I + 1) * 4)) <= DEC do

I := I + 1;

for J := 0 to I do

begin

HEX := HEX + HEXDigts[(DEC shr ((I - J) * 4)) + 1];

DEC := DEC and ((1 shl ((I - J) * 4)) - 1);

end;

end;

DEC2HEX := HEX;

end;

function HEX2DEC(HEX: string): LONGINT;

function Digt(Ch: CHAR): BYTE;

const

HEXDigts: string[16] = '0123456789ABCDEF';

var

I: BYTE;

N: BYTE;

begin

N := 0;

for I := 1 to Length(HEXDigts) do

if Ch = HEXDigts[I] then

N := I - 1;

Digt := N;

end;

const

HEXSet: set of CHAR = ['0'..'9', 'A'..'F'];

var

J: LONGINT;

Error: BOOLEAN;

DEC: LONGINT;

begin

DEC := 0;

Error := False;

for J := 1 to Length(HEX) do

begin

if not (UpCase(HEX[J]) in HEXSet) then

Error := True;

DEC := DEC + Digt(UpCase(HEX[J])) shl ((Length(HEX) - J) * 4);

end;

if Error then

HEX2DEC := 0

else

HEX2DEC := DEC;

end;

function DEC2OCT(DEC: LONGINT): string;

const

OCTDigts: string[8] = '01234567';

var

OCT: string;

I, J: LONGINT;

begin

if DEC = 0 then

OCT := '0'

else

begin

OCT := '';

I := 0;

while (1 shl ((I + 1) * 3)) <= DEC do

I := I + 1;

for J := 0 to I do

begin

OCT := OCT + OCTDigts[(DEC shr ((I - J) * 3)) + 1];

DEC := DEC and ((1 shl ((I - J) * 3)) - 1);

end;

end;

DEC2OCT := OCT;

end;

function OCT2DEC(OCT: string): LONGINT;

const

OCTSet: set of CHAR = ['0'..'7'];

var

J: LONGINT;

Error: BOOLEAN;

DEC: LONGINT;

begin

DEC := 0;

Error := False;

for J := 1 to Length(OCT) do

begin

if not (UpCase(OCT[J]) in OCTSet) then

Error := True;

DEC := DEC + (Ord(OCT[J]) - 48) shl ((Length(OCT) - J) * 3);

end;

if Error then

OCT2DEC := 0

else

OCT2DEC := DEC;

end;

function BIN2HEX(BIN: string): string;

function SetHex(St: string; var Error: BOOLEAN): CHAR;

var

Ch: CHAR;

begin

if St = '0000' then

Ch := '0'

else if St = '0001' then

Ch := '1'

else if St = '0010' then

Ch := '2'

else if St = '0011' then

Ch := '3'

else if St = '0100' then

Ch := '4'

else if St = '0101' then

Ch := '5'

else if St = '0110' then

Ch := '6'

else if St = '0111' then

Ch := '7'

else if St = '1000' then

Ch := '8'

else if St = '1001' then

Ch := '9'

else if St = '1010' then

Ch := 'A'

else if St = '1011' then

Ch := 'B'

else if St = '1100' then

Ch := 'C'

else if St = '1101' then

Ch := 'D'

else if St = '1110' then

Ch := 'E'

else if St = '1111' then

Ch := 'F'

else

Error := True;

SetHex := Ch;

end;

var

HEX: string;

I: INTEGER;

Temp: string[4];

Error: BOOLEAN;

begin

Error := False;

if BIN = '0' then

HEX := '0'

else

begin

Temp := '';

HEX := '';

if Length(BIN) mod 4 <> 0 then

repeat

BIN := '0' + BIN;

until Length(BIN) mod 4 = 0;

for I := 1 to Length(BIN) do

begin

Temp := Temp + BIN[I];

if Length(Temp) = 4 then

begin

HEX := HEX + SetHex(Temp, Error);

Temp := '';

end;

end;

end;

if Error then

BIN2HEX := '0'

else

BIN2HEX := HEX;

end;

function HEX2BIN(HEX: string): string;

var

BIN: string;

I: INTEGER;

Error: BOOLEAN;

begin

Error := False;

BIN := '';

for I := 1 to Length(HEX) do

case UpCase(HEX[I]) of

'0': BIN := BIN + '0000';

'1': BIN := BIN + '0001';

'2': BIN := BIN + '0010';

'3': BIN := BIN + '0011';

'4': BIN := BIN + '0100';

'5': BIN := BIN + '0101';

'6': BIN := BIN + '0110';

'7': BIN := BIN + '0111';

'8': BIN := BIN + '1000';

'9': BIN := BIN + '1001';

'A': BIN := BIN + '1010';

'B': BIN := BIN + '1011';

'C': BIN := BIN + '1100';

'D': BIN := BIN + '1101';

'E': BIN := BIN + '1110';

'F': BIN := BIN + '1111';

else

Error := True;

end;

if Error then

HEX2BIN := '0'

else

HEX2BIN := BIN;

end;

function Potens(X, E: LONGINT): LONGINT;

var

P, I: LONGINT;

begin

P := 1;

if E = 0 then

P := 1

else

for I := 1 to E do

P := P * X;

Potens := P;

end;

//////////////////////////////////////////

procedure TForm1.BitBtn11Click(Sender: TObject);

begin

if k=0 then

memo1.Text:=memo1.Text+'0' else

memo1.Text:='0';

k:=0;

end;

procedure TForm1.BitBtn7Click(Sender: TObject);

begin

if k=0 then

memo1.Text:=memo1.Text+'1' else

memo1.Text:='1';

k:=0;

end;

procedure TForm1.BitBtn8Click(Sender: TObject);

begin

if k=0 then

memo1.Text:=memo1.Text+'2' else

memo1.Text:='2';

k:=0;

end;

procedure TForm1.BitBtn9Click(Sender: TObject);

begin

if k=0 then

memo1.Text:=memo1.Text+'3' else

memo1.Text:='3';

k:=0;

end;

procedure TForm1.BitBtn4Click(Sender: TObject);

begin

if k=0 then

memo1.Text:=memo1.Text+'4' else

memo1.Text:='4';

k:=0;

end;

procedure TForm1.BitBtn5Click(Sender: TObject);

begin

if k=0 then

memo1.Text:=memo1.Text+'5' else

memo1.Text:='5';

k:=0;

end;

procedure TForm1.BitBtn6Click(Sender: TObject);

begin

if k=0 then

memo1.Text:=memo1.Text+'6' else

memo1.Text:='6';

k:=0;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

if k=0 then

memo1.Text:=memo1.Text+'7' else

memo1.Text:='7';

k:=0;

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

if k=0 then

memo1.Text:=memo1.Text+'8' else

memo1.Text:='8';

k:=0;

end;

procedure TForm1.BitBtn3Click(Sender: TObject);

begin

if k=0 then

memo1.Text:=memo1.Text+'9' else

memo1.Text:='9';

k:=0;

end;

procedure TForm1.BitBtn10Click(Sender: TObject);

begin

if memo1.Text<>'' then

begin

x:=strtofloat(memo1.Text)*(-1);

memo1.Text:=floattostr(x);

end;

end;

procedure TForm1.BitBtn12Click(Sender: TObject);

begin

if p=0 then

begin

memo1.Text:=memo1.Text+',';

p:=1;

end;

end;

procedure TForm1.BitBtn17Click(Sender: TObject);

begin

if memo1.Text<>'' then

begin

d:=1;

k:=1;

x:=strtofloat(memo1.Text);

p:=0;

end;

end;

procedure TForm1.BitBtn15Click(Sender: TObject);

begin

if memo1.Text<>'' then

begin

d:=2;

p:=0;

k:=2;

x:=strtofloat(memo1.Text);

end;

end;

procedure TForm1.BitBtn14Click(Sender: TObject);

begin

if memo1.Text<>'' then

begin

d:=3;

p:=0;

k:=3;

x:=strtofloat(memo1.Text);

end;

end;

procedure TForm1.BitBtn13Click(Sender: TObject);

begin

if memo1.Text<>'' then

begin

d:=4;

p:=0;

k:=4;

x:=strtofloat(memo1.Text);

end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

ms:=0;

x:=0;

z:=0;

y:=0;

k:=0;

p:=0;

d:=0;

Mp:=0;

Mm:=0;

ss:=10; //система счисления

end;

procedure TForm1.BitBtn16Click(Sender: TObject);

var p:Integer;

begin

if memo1.Text<>'' then

begin

z:=strtofloat(memo1.Text);

if d=1 then

begin

y:=x+z;

{if ss=10 then y:=x+z;

if ss=2 then

begin

x:=int(x);

z:=int(z);

p:=BIN2DEC(FloatToStr(x))+BIN2DEC(FloatToStr(z));

y:=StrToInt(DEC2BIN(p));

end;

if ss=8 then

begin

x:=int(x);

z:=int(z);

p:=OCT2DEC(FloatToStr(x))+OCT2DEC(FloatToStr(z));

y:=StrToInt(DEC2OCT(p));

end;

if ss=16 then

begin

x:=int(x);

z:=int(z);

p:=StrToInt(HEX2DEC(FloatToStr(x)))+StrToInt(HEX2DEC(FloatToStr(z)));

y:=StrToInt(DEC2HEX(p));

end; }

end;

if d=2 then

y:=x-z;

if d=3 then

y:=x*z;

if d=4 then

y:=x/z;

if d=5 then //x^y

begin

t:=strtoint(memo1.Text);

y:=1;

for i:=1 to t do

y:=y*x;

end;

memo1.Text:=floattostr(y);

end;

end;

procedure TForm1.BitBtn33Click(Sender: TObject);

begin

memo1.Text:='';

x:=0;

z:=0;

y:=0;

k:=0;

p:=0;

d:=0;

Mp:=0;

Mm:=0;

end;

procedure TForm1.BitBtn34Click(Sender: TObject);

begin

memo1.Text:='';

end;

procedure TForm1.BitBtn19Click(Sender: TObject);

begin

if memo1.Text<>'' then

begin

ms:=strtofloat(memo1.Text);

panel1.Caption:='M';

end;

end;

procedure TForm1.BitBtn22Click(Sender: TObject);

begin

memo1.Text:=floattostr(MS);

end;

procedure TForm1.BitBtn20Click(Sender: TObject);

begin

if memo1.Text<>'' then

begin

panel1.Caption:='M';

MS:=MS+strtofloat(memo1.Text);

end;

end;

procedure TForm1.BitBtn21Click(Sender: TObject);

begin

if memo1.Text<>'' then

begin

panel1.Caption:='M';

MS:=MS-strtofloat(memo1.Text);

end;

end;

procedure TForm1.BitBtn18Click(Sender: TObject);

begin

MS:=0;

panel1.Caption:='';

end;

procedure TForm1.BitBtn27Click(Sender: TObject);

begin

if memo1.Text<>'' then

begin

x:=strtofloat(memo1.Text);

y:=1/x;

memo1.Text:=floattostr(y);

end;

end;

procedure TForm1.BitBtn26Click(Sender: TObject);

begin

memo1.Text:=floattostr(pi);

end;

procedure TForm1.BitBtn25Click(Sender: TObject);

begin

if memo1.Text<>'' then

begin

d:=5;

x:=strtofloat(memo1.Text);

k:=1;

end;

end;

procedure TForm1.BitBtn24Click(Sender: TObject);

begin

if memo1.Text<>'' then

begin

x:=strtofloat(memo1.Text);

y:=sqr(x)*x;

memo1.Text:=floattostr(y);

end;

end;

procedure TForm1.BitBtn23Click(Sender: TObject);

begin

if memo1.Text<>'' then

begin

x:=strtofloat(memo1.Text);

y:=sqr(x);

memo1.Text:=floattostr(y);

end;

end;

procedure TForm1.BitBtn32Click(Sender: TObject);

begin

if memo1.Text<>'' then

begin

p:=0;

x:=strtofloat(memo1.Text);

y:=int(x);

memo1.Text:=floattostr(y);

end;

end;

procedure TForm1.BitBtn31Click(Sender: TObject);

begin

if memo1.Text<>'' then

begin

x:=strtofloat(memo1.Text);

y:=sin(x)/cos(x);

memo1.Text:=floattostr(y);

end;

end;

procedure TForm1.BitBtn30Click(Sender: TObject);

begin

if memo1.Text<>'' then

begin

x:=strtofloat(memo1.Text);

y:=cos(x);

memo1.Text:=floattostr(y);

end;

end;

procedure TForm1.BitBtn29Click(Sender: TObject);

begin

if memo1.Text<>'' then

begin

x:=strtofloat(memo1.Text);

y:=sin(x);

memo1.Text:=floattostr(y);

end;

end;

procedure TForm1.BitBtn28Click(Sender: TObject);

begin

if memo1.Text<>'' then

begin

t:=strtoint(memo1.Text);

y:=1;

for i:=1 to t do

y:=y*i;

memo1.Text:=floattostr(y);

end;

end;

procedure TForm1.RadioGroup1Click(Sender: TObject);

CONST HEX : ARRAY['A'..'F'] OF INTEGER = (10,11,12,13,14,15);

VAR

str : String;

Int,

i : integer;

q: double;

begin

if p=1 then

begin

ShowMessage('Перевод в другую систему счисления работает только с целыми числами');

exit;

end;

// memo1.Text:=IntToStr(trunc(StrToFloat(memo1.Text)));

BitBtnA.Enabled:=false;

BitBtnB.Enabled:=false;

BitBtnC.Enabled:=false;

BitBtnD.Enabled:=false;

BitBtnE.Enabled:=false;

BitBtnF.Enabled:=false;

if RadioGroup1.ItemIndex=0 then // в 16 систему счисления

begin

if memo1.Text<>'' then

begin

if ss=10 then //перевод из 10 в 16 систему счисления

memo1.Text:=DEC2HEX(strToInt(memo1.Text));

if ss=8 then //перевод из 8 в 16 систему счисления

memo1.Text:=DEC2HEX(OCT2DEC(memo1.Text));

if ss=2 then //перевод из 2 в 16 систему счисления

memo1.Text:=BIN2HEX(memo1.Text);

end;

ss:=16;

BitBtnA.Enabled:=true;

BitBtnB.Enabled:=true;

BitBtnC.Enabled:=true;

BitBtnD.Enabled:=true;

BitBtnE.Enabled:=true;

BitBtnF.Enabled:=true;

BitBtn10.Enabled:=false;

BitBtn23.Enabled:=false;

BitBtn24.Enabled:=false;

BitBtn25.Enabled:=false;

BitBtn26.Enabled:=false;

BitBtn27.Enabled:=false;

BitBtn28.Enabled:=false;

BitBtn29.Enabled:=false;

BitBtn30.Enabled:=false;

BitBtn31.Enabled:=false;

BitBtn32.Enabled:=false;

BitBtn12.Enabled:=false;

BitBtn13.Enabled:=false;

BitBtn14.Enabled:=false;

BitBtn15.Enabled:=false;

BitBtn16.Enabled:=false;

BitBtn17.Enabled:=false;

BitBtn20.Enabled:=false;

BitBtn21.Enabled:=false;

BitBtn35.Enabled:=false;

BitBtn36.Enabled:=false;

end;

if RadioGroup1.ItemIndex=1 then // в 10 систему счисления

begin

if memo1.Text<>'' then

begin

if ss=16 then //перевод из 16 в 10 систему счисления

memo1.Text:=IntToStr(HEX2DEC(memo1.Text));

if ss=8 then

memo1.Text:=IntToStr(OCT2DEC(memo1.Text));

if ss=2 then

memo1.Text:=IntToStr(BIN2DEC(memo1.Text));

end;

ss:=10;

BitBtn10.Enabled:=true;

BitBtn23.Enabled:=true;

BitBtn24.Enabled:=true;

BitBtn25.Enabled:=true;

BitBtn26.Enabled:=true;

BitBtn27.Enabled:=true;

BitBtn28.Enabled:=true;

BitBtn29.Enabled:=true;

BitBtn30.Enabled:=true;

BitBtn31.Enabled:=true;

BitBtn32.Enabled:=true;

BitBtn12.Enabled:=true;

BitBtn13.Enabled:=true;

BitBtn14.Enabled:=true;

BitBtn15.Enabled:=true;

BitBtn16.Enabled:=true;

BitBtn17.Enabled:=true;

BitBtn20.Enabled:=true;

BitBtn21.Enabled:=true;

BitBtn35.Enabled:=true;

BitBtn36.Enabled:=true;

end;

if RadioGroup1.ItemIndex=2 then // в 8 систему счисления

begin

if memo1.Text<>'' then

begin

if ss=10 then

memo1.Text:= DEC2OCT(StrToInt(memo1.Text));

if ss=16 then

memo1.Text:=DEC2OCT(HEX2DEC(memo1.Text));

if ss=2 then

memo1.Text:=DEC2OCT(BIN2DEC(memo1.Text));

end;

ss:=8;

BitBtn10.Enabled:=false;

BitBtn23.Enabled:=false;

BitBtn24.Enabled:=false;

BitBtn25.Enabled:=false;

BitBtn26.Enabled:=false;

BitBtn27.Enabled:=false;

BitBtn28.Enabled:=false;

BitBtn29.Enabled:=false;

BitBtn30.Enabled:=false;

BitBtn31.Enabled:=false;

BitBtn32.Enabled:=false;

BitBtn12.Enabled:=false;

BitBtn13.Enabled:=false;

BitBtn14.Enabled:=false;

BitBtn15.Enabled:=false;

BitBtn16.Enabled:=false;

BitBtn17.Enabled:=false;

BitBtn20.Enabled:=false;

BitBtn21.Enabled:=false;

BitBtn35.Enabled:=false;

BitBtn36.Enabled:=false;

end;

if RadioGroup1.ItemIndex=3 then // в 2 систему счисления

begin

if memo1.Text<>'' then

begin

if ss=10 then // перевод из 10 в 2 систему счисления

memo1.Text:=DEC2BIN(strToInt(memo1.Text));

if ss=8 then

memo1.Text:=DEC2BIN(OCT2DEC(memo1.Text));

if ss=16 then

memo1.Text:=HEX2BIN(memo1.Text);

ss:=2;

BitBtn10.Enabled:=false;

BitBtn23.Enabled:=false;

BitBtn24.Enabled:=false;

BitBtn25.Enabled:=false;

BitBtn26.Enabled:=false;

BitBtn27.Enabled:=false;

BitBtn28.Enabled:=false;

BitBtn29.Enabled:=false;

BitBtn30.Enabled:=false;

BitBtn31.Enabled:=false;

BitBtn32.Enabled:=false;

BitBtn12.Enabled:=false;

BitBtn13.Enabled:=false;

BitBtn14.Enabled:=false;

BitBtn15.Enabled:=false;

BitBtn16.Enabled:=false;

BitBtn17.Enabled:=false;

BitBtn35.Enabled:=false;

BitBtn36.Enabled:=false;

end;

end;

end;

procedure TForm1.BitBtnAClick(Sender: TObject);

begin

if k=0 then memo1.Text:=memo1.Text+'A'

else memo1.Text:='A';

k:=0;

end;

procedure TForm1.BitBtnBClick(Sender: TObject);

begin

if k=0 then memo1.Text:=memo1.Text+'B'

else memo1.Text:='B';

k:=0;

end;

procedure TForm1.BitBtnCClick(Sender: TObject);

begin

if k=0 then memo1.Text:=memo1.Text+'C'

else memo1.Text:='C';

k:=0;

end;

procedure TForm1.BitBtnDClick(Sender: TObject);

begin

if k=0 then memo1.Text:=memo1.Text+'D'

else memo1.Text:='D';

k:=0;

end;

procedure TForm1.BitBtnEClick(Sender: TObject);

begin

if k=0 then memo1.Text:=memo1.Text+'E'

else memo1.Text:='E';

k:=0;

end;

procedure TForm1.BitBtnFClick(Sender: TObject);

begin

if k=0 then memo1.Text:=memo1.Text+'F'

else memo1.Text:='F';

k:=0;

end;

procedure TForm1.BitBtn35Click(Sender: TObject);

begin

Memo1.Text:=FloatToStr(ln(StrToFloat(Memo1.Text))) ;

end;

procedure TForm1.BitBtn36Click(Sender: TObject);

begin

Memo1.Text:=FloatToStr(ln(StrToFloat(Memo1.Text)) / ln(10));

end;

end.

Снимки окон.

Рисунок 1. Сообщение об ошибке.

Рисунок 2. Запуск приложения «Калькулятор».

Рисунок 3. Сообщение об ошибке.

Рисунок 4. Запуск приложения «Калькулятор».

Размещено на Allbest.ru

...

Подобные документы

  • Разработка приложения "Калькулятор с переходом в строковый калькулятор" с применением объектно-ориентированного программирования. Концепция и понятия объектно-ориентированного программирования. Язык программирования Java. Листинг программы "Калькулятор".

    курсовая работа [966,9 K], добавлен 11.02.2016

  • Разработка программного кода и алгоритма действий приложения "калькулятор". Использование функций в программе Matlab. Разработка кнопок, опций, интерфейса, оформление. Части кода Matlab и тестовый набор. Инструкция пользователя по работе программы.

    курсовая работа [527,1 K], добавлен 27.09.2014

  • Разработка структуры объекта "Калькулятор" - электронного вычислительного устройства для выполнения операций над числами или алгебраическими формулами. Текст программы, результат ее работы. Свойство реального объекта. Блок-схема, алгоритм приложения.

    контрольная работа [68,8 K], добавлен 11.04.2015

  • Особенности объектно-ориентированного программирования. Основные возможности языка программирования Java, классификация платформ. Создание программы, обеспечивающей вычисление арифметических выражений. Руководство пользователя и характеристика функций.

    курсовая работа [1,2 M], добавлен 07.07.2012

  • Создание программы "Калькулятор". Возможность выбора типа калькулятора: обычный или инженерный. Главный модуль проекта CALC. Программа Calc for win (calc4win.exe), разработанная в среде Delphi версии 6. Руководство пользователя. Результаты моделирования.

    курсовая работа [56,1 K], добавлен 10.01.2010

  • Разработка приложения на базе скриптового языка программирования JavaScript, с использованием каскадных таблиц стилей CSS в среде программирования Bluefish Editor. Обоснование выбора инструментов. Применение клавиш управления памятью калькулятора.

    курсовая работа [3,8 M], добавлен 22.06.2015

  • Пример построения программы с использованием арифметических операторов. Основные инструменты создания калькулятора. Процедура ввода чисел. Измененная процедура обработки нажатия кнопки "+". Процедура открытия формы "Справка", итоговый результат.

    презентация [1,5 M], добавлен 02.03.2012

  • Разработка калькулятора на выполнение арифметических функций в 16-ой системе. Использование прерывания от последовательного порта и таймера. Применение системы "прототип" на основе микроконтроллера 51 семейства. Ввод чисел с последовательного порта.

    курсовая работа [18,4 K], добавлен 23.08.2009

  • Написание программы, состоящей из двух модулей и реализующей простейший калькулятор. Разработка алгоритма решения задачи, реализация его в среде программирования Delphi. Список использованных переменных. Блок-схема программы, руководство пользователя.

    курсовая работа [106,6 K], добавлен 16.06.2014

  • Набор требований к программному продукту "Калькулятор". Тестовые сценарии для модульного тестирования. Использование системы визуального проектирования. Разработка программного кода. Вычисление цикломатического числа и построение графы каждого модуля.

    контрольная работа [170,4 K], добавлен 04.11.2014

  • Разработка приложения для работы с базой данных с использованием объектно-ориентированного и визуального программирования. Обзор языка элементов языка программирования Delphi. Проектирование базы данных автозаправки. Клиентская система приложения.

    курсовая работа [2,3 M], добавлен 31.01.2016

  • Формирование калькулятора большой "конечной" арифметики для четырех действий. Реализация построения таблиц сложения, вычитания, умножения и переноса по данным действиям. Защита калькулятора от некорректного ввода данных. Реализация функции сравнения.

    курсовая работа [181,0 K], добавлен 11.08.2014

  • Ознакомление с историей создания и особенностями объектно-ориентированного языка программирования Delphi. Разработка приложения, фиксирующего количество повторений какого-либо слова в тексте, введённом в поле MEMO. Описание интерфейса программы.

    курсовая работа [880,1 K], добавлен 21.04.2015

  • Разработка приложения "Калькулятор" для подсчитывания количества символов или букв в арабском тексте. Проектирование программной системы, определение функциональных требований к приложению. Алгоритм разработки модульной структуры мобильного приложения.

    презентация [853,9 K], добавлен 08.04.2019

  • Позиционирование и предназначение бюджетного калькулятора и калькулятора Windows. Определение математической модели приложения. Диаграмма классов. Проектирование бизнес логики. Описание программного продукта, его тестирование. Инструкция пользователя.

    дипломная работа [1,0 M], добавлен 06.06.2017

  • Разработка клиентского приложения для информационной системы "Работа торгового склада" с помощью языка объектно-ориентированного программирования Delphi 6 и технологии InterBase Express. Описание реляционной модели данных и этапы ее проектирования.

    курсовая работа [1,0 M], добавлен 19.03.2009

  • Анализ предметной области "Конкурс поэтов" на основе объектно-ориентированного подхода. Разработка оконного приложения и описание информационной модели предметной области. Описание разработанных процедур С++ и результатов тестирования приложения.

    курсовая работа [355,9 K], добавлен 18.06.2013

  • Разработка приложения, которое будет выполнять функции показа точного времени и точной даты. Определение дополнительных функций разработанного приложения. Рассмотрение основных этапов создания программного продукта. Результаты тестирования приложения.

    курсовая работа [2,2 M], добавлен 14.04.2019

  • Правила создания и особенности работы с приложением Windows Application. Рассмотрение структуры панели Properties и ее функционального назначения. Возможности пункта меню "View". Практическая разработка приложения - калькулятора для сложения двух чисел.

    лабораторная работа [99,1 K], добавлен 01.12.2011

  • Анализ исходных данных. Определение структуры модуля для работы файлом. Разработка объектно-ориентированного приложения, использующего массив объектов, в среде Delphi. Модульная структура программного комплекса. Процедура сортировки методом вставки.

    курсовая работа [2,2 M], добавлен 20.09.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.