Калькулятор в кодиционных СС
Содержание
Содержание……………………………………………………
Введение ………………………………………………………
О калькуляторе
и системе счисления………………………..
Постановка задачи…………………………………
Практическая часть, исходные данные…...………………...11
Список используемой
литературы………………………….25
Язык формирует наш способ мышления
и определяет, о чем мы можем мыслить.
Б.Л. Ворф
Введение
Delphi — язык программирования, который используется в одноимённой среде разработки. Сначала язык назывался ObjectPascal.Начиная со среды разработки Delphi 7, в официальных документах Borland стала использовать название Delphi для обозначения языка ObjectPascal.
Delphi — результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная с версии 5.5, добавил в Паскаль объектно-ориентированные свойства, а в ObjectPascal — динамическую идентификацию типа данных с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией — данная технология получила обозначение RTTI. Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию.
Объектно-
Класс — это тип, описывающий устройство объектов. Понятие «класс» подразумевает некоторое поведение и способ представления. Понятие «объект» подразумевает нечто, что обладает определённым поведением и способом представления. Говорят, что объект — это экземпляр класса. Класс можно сравнить с чертежом, согласно которому создаются объекты. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области.Класс является описываемой на языке терминологии (пространства имён) исходного кода моделью ещё не существующей сущности, т. н. объекта.
Объект — сущность в адресном пространстве вычислительной системы, появляющаяся при создании экземпляра класса (например, после запуска результатов компиляции (и линковки) исходного кода на выполнение).
Структура программы- Каждая написанная программа на языке Delphi состоит из заголовка программы (procedureNewApplication;), поля используемых модулей Uses (к примеру, UsesWindows, Messages, SysUtils и т. д.), который может не входить в саму структуру, а также блока описание и исполнения (начинаются составным оператом begin и заканчиваются end;).
programProject1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1}; // модули, которые подключены к проекту и используются программой
{$R *.res}
begin
Application.Initialize;// Инициализация приложения
Application.CreateForm(
Application.Run;
end.
Калькулятор-Латинское слово calculator «счётчик, счетовод» происходит от глагола calculo «считаю, подсчитываю», который в свою очередь происходит от слова calculus «камешек» (камешки использовались для счёта); calculus же является уменьшительным от calx «известь».
- Электронное вычислительное устройство для выполнения операций над числами или алгебраическими формулами;
- Компьютерная программа, эмулирующая функции калькулятора.
- Специализированная программа, автоматически проводящая некоторый вид расчётов (калькулятор вкладов, калькулятор контактных площадок и тому подобное)
- Профессия (человек, производящий калькуляцию).
Двоичная система счисления- это позиционная система счисления с основанием 2. В этой системе счисления числа записываются с помощью двух символов (1 и 0).
Запись двоичных чисел-Двоичная система счисления является частным случаем сдвоенных двоичных показательных позиционных систем счисления с обоими основаниями (a и b) равными 2. Целые числа записываются в виде:
где:
- n — число цифр (знаков) в числе x2,2,
- k — порядковый номер цифры,
- a = 2 — основание внутриразрядной системы счисления, * ak — цифры числа x2,2 из множества a={0,1},
- b = 2 — основание показательной функции, основание межразрядной системы счисления.
Целые числа являются частными суммами степенного ряда:
в котором коэффициенты an берутся из кольца R=a{0,1}, X=2, n=k, а верхний предел в частных суммах ограничен с до — n-1.
Из
комбинаторики известно, что число
записываемых кодов не зависит от
основания показательной
где a=2 — 2-х элементное множество a={0,1} из которого берутся цифры ak, n — число элементов (цифр) в числе x2,b.Дробные числа записываются в виде:
- m — число цифр дробной части числа,
- a = 2 — основание внутри разрядной системы счисления,
- b = 2 — основание показательной функции, основание меж разрядной системы счисления.
Следует отметить,
что число может быть записано
в двоичном виде, а система счисления
при этом может быть не двоичной,
с другим основанием. Пример: двоично-десятичное
кодирование, в котором десятичные
цифры записываются в двоичном виде,
а система счисления —
Восьмеричная система счисления- позиционная целочисленная система счисления с основанием 8. Для представления чисел в ней используются цифры 0 до 7. Восьмеричная система часто используется в областях, связанных с цифровыми устройствами. Характеризуется лёгким переводом восьмеричных чисел в двоичные и обратно, путём замены восьмеричных чисел на триплеты двоичных. Ранее широко использовалась в программировании и вообще компьютерной документации, однако в настоящее время почти полностью вытеснена шестнадцатеричной. В восьмеричной системе указываются права доступа для команды chmod в Unix-подобных операционных системах.
Десятичная система счисления- Десятичная система счисления- позиционная система счисления по целочисленному основанию 10. Одна из наиболее распространённых систем счисления в мире. Для записи чисел наиболее часто используются символы 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, называемые арабскими цифрами. Предполагается, что основание 10 связано с количеством пальцев рук у человека.
Основные сведения
Один десятичный разряд (дес.р) в десятичной системе счисления иногда называют декадой. В цифровой электронике одному десятичному разряду десятичной системы счисления соответствует один десятичный триггер. Десятичная система счисления является сдвоенной показательной позиционной десятичной системой счисления в которой основания основной системы счисления и вспомогательной системы счисления совпадают и равны 10. Дробные числа записываются в виде строки цифр с разделителем (десятичная запятая) и индексом:
n — число разрядов целой части числа,m — число разрядов дробной части числа, от 0 до бесконечности, при m=0 число целое,k — число от -m до n-1, номер разряда,a=10 — число, основание внутри разрядной системы счисления,ak — числа в разрядах из замкнутого множества (кольца) a={0,1,2,3,4,5,6,7,8,9}, цифры представляемого числа, x10,10,b=10 — число, основание меж разрядной системы счисления, 10k — числа меж разрядной десятичной показательной функции, весовые коэффициенты bk разрядов. Внутри разрядный индекс — a часто опускается, нередко опускается и меж разрядный индекс — b. Из комбинаторики известно, что число записываемых кодов не зависит от основания показательной функции — b, которое определяет диапазон представляемых числами x10,b величин, и равно числу размещений с повторениями:
a=10 — 10-ти элементное множество a={0,1,2,3,4,5,6,7,8,9} из которого берутся цифры ak, n — число элементов (цифр) в числе x10,b. Десятичная система счисления является комбинацией (произведением) двух зависимостей (функций). Внутри каждого разряда зависимость (функция) линейная f(ak)=ak, ak из множества a={0, 1, 2, 3, …, 9}, между разрядами же зависимость нелинейная показательная — f(b, k)=bk=10k, bk из множества bk={1, 10, 100, …}.Цифры внутри разрядов ak могут быть записаны в разных кодах. Например, при их записи в двоичном коде получается двоично-десятичное кодирование, описанное ниже. При их записи в троичном коде, получается троично-десятичное кодирование. При их записи в десятичном коде, получается десятично-десятичное кодирование. Система счисления при этом не изменяется и остаётся прежней.
Двоично-десятичное кодирование
В двоичных компьютерах применяют двоично-десятичное кодирование десятичных цифр (Binary-CodedDecimal), при этом для одной двоично-десятичной цифры отводится четыре двоичных разряда (двоичная тетрада). Двоично-десятичные числа требуют большего количества бит для своего хранения. Так, четыре двоичных разряда имеют 16 состояний, и при двоично-десятичном кодировании 6 из 16 состояний двоичной тетрады не используются.
Шестнадцатеричная система счисления- Шестнадцатеричная система счисления (шестнадцатеричные числа) — позиционная система счисления по целочисленному основанию 16. Обычно в качестве шестнадцатеричных цифр используются десятичные цифры от 0 до 9 илатинские буквы от A до F для обозначения цифр от 1010 до 1510, то есть (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F).
Применение
Широко
используется в низкоуровневом программировании
и вообще в компьютерной документации,
поскольку в современных
Постановка задачи
Задача курсовой работы состоит в разработке программы- калькулятора, которая позволяет считать выражения состоящие из чисел, любой системы исчисления, постоянные числа pi=3,14159265359, функции корней, факториал, квадрат, куб, положительное/ отрицательное значение. Необходимо разработать удобный пользовательский интерфейс для работы с программой, а так же пункт “Help” для ознакомления с программой.
Программу
разработать на языке Delphi 7 .
Практическая часть
Исходные данные
Данная программа позволяет вычислять выражения, содержащие численные значения и некоторые функции. Следовательно, в алгоритме нужно осуществлять проверку на неверно введенные символы и ошибочно нажатые клавиши.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, Buttons, Math;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
View1: TMenuItem;
programmerAlt31: TMenuItem;
Help1: TMenuItem;
AboutCalculator1: TMenuItem;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
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;
BitBtn24: TBitBtn;
BitBtn25: TBitBtn;
Edit1: TEdit;
BitBtn26: TBitBtn;
BitBtn27: TBitBtn;
BitBtn28: TBitBtn;
BitBtn29: TBitBtn;
Memo1: TMemo;
BitBtn31: TBitBtn;
OpenDialog1: TOpenDialog;
BitBtn32: TBitBtn;
SaveDialog1: TSaveDialog;
BitBtn23: TBitBtn;
BitBtn30: TBitBtn;
procedure AboutCalculator1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure BitBtn9Click(Sender: TObject);
procedure BitBtn10Click(Sender: TObject);
procedure BitBtn18Click(Sender: TObject);
procedure BitBtn19Click(Sender: TObject);
procedure BitBtn20Click(Sender: TObject);
procedure BitBtn21Click(Sender: TObject);
procedure BitBtn17Click(Sender: TObject);
procedure BitBtn25Click(Sender: TObject);
procedure BitBtn24Click(Sender: TObject);
procedure BitBtn22Click(Sender: TObject);
procedure BitBtn26Click(Sender: TObject);
procedure BitBtn27Click(Sender: TObject);
procedure BitBtn28Click(Sender: TObject);
procedure BitBtn29Click(Sender: TObject);
procedure BitBtn31Click(Sender: TObject);
procedure BitBtn32Click(Sender: TObject);
procedure BitBtn23Click(Sender: TObject);
procedure BitBtn30Click(Sender: TObject);
procedure BitBtn11Click(Sender: TObject);
procedure BitBtn12Click(Sender: TObject);
procedure BitBtn13Click(Sender: TObject);
procedure BitBtn14Click(Sender: TObject);
procedure BitBtn15Click(Sender: TObject);
procedure BitBtn16Click(Sender: TObject);
procedure RadioButton4Click(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
first,second:real;
answer:real;
factor:string;
Memory:string;
numeralSystem:string='dec';
Функциибудут :
// from hex to int
function HexToInt(HexNum: string): LongInt;
begin
Result:=StrToInt('$' + HexNum) ;
end;
//from Bin to int
function BinToInt(bin: string): longint;
var i: integer;
res: longint;
begin
res:=0;
For i:=1 to Length(bin) do begin
res:=res shl 1;
if bin[i]='1' then res:=res or 1;
end;
BinToInt:=res;
end;
//from Oct to Int
function OctToInt(OctNum:string):
var
Len:integer;
counter:integer;
base:integer;
res:integer;
begin
Counter:=1;
res:=0;
base:=1;
for Len:=length(OctNum) downto counter do
Begin
If not (OctNum[Len] in ['0'..'7']) then
Begin
ShowMessage('This is not an Octal number!');
Halt;
end
Else
Res:=res+StrToInt(OctNum[len])
base:=base*8;
end;
result:=res;
end;
// from Int to Bin
function IntToBin(dec: longint; dig:integer): string;
var i: integer;
res: string;
begin
if dec=0 then begin IntToBin:='0'; Exit; end;
SetLength(res,32);
for i:=32 downto 1 do begin
res[i]:=Chr((dec and 1)+48);
dec:=dec shr 1;
end;
Delete(res,1,Pos('1',res)-1);
IntToBin:=res;
end;
// from Int to Oct
function IntToOct( value: LongInt; digits: integer ): string;
var dec,bin,i:integer;
a:array[1..100]of integer;
s:string;
begin
s:='';
dec := value;
i:=0;
repeat
i:=i+1;
a[i]:=dec mod 8;
dec:=dec div 8;
until(dec = 0);
for i:=i downto 1 do
begin
s:=s+IntToStr(a[i]);
end;
result:=s;
end;
// about calculator programming
procedure TForm1.AboutCalculator1Click(
begin
ShowmessagePos('Eta proqramma pozvolyaet scitat virajeniya sostoyashie iz chisel,lyuboy sistemi ischisleniya,postoyannie chisla p=3,14159265359,funkcii korney, faktorial, kvadrat, kub, polojitelnoe/otricatelnoe znacenie. ',350,350);
end;
//code of number 1
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
If Edit1.Text='0'
Then Begin
Edit1.Text:='1'
end
Else Begin
Edit1.Text:=Edit1.Text + '1';
end;
end;
// code of adding
procedure TForm1.BitBtn18Click(Sender: TObject);
begin
Factor:='+';
if (numeralSystem='dec') then
First:=StrToFloat(Edit1.Text)
else if (numeralSystem='hex') then
First:=HexToInt(edit1.Text)
else if (numeralSystem='bin') then
First:=BinToInt(Edit1.Text)
else if (numeralSystem='oct') then
First:=OctToInt(Edit1.Text);
Edit1.Clear;
Memo1.Text:=Memo1.Text+
end;
// code of minus
procedure TForm1.BitBtn19Click(Sender: TObject);
begin
Factor:='-';
if (numeralSystem='dec') then
First:=StrToFloat(Edit1.Text)
else if (numeralSystem='hex') then
First:=HexToInt(edit1.Text)
else if (numeralSystem='bin') then
First:=BinToInt(Edit1.Text)
else if (numeralSystem='oct') then
First:=OctToInt(Edit1.Text);
Edit1.Clear;
Memo1.Text:=Memo1.Text+
end;
// code of multiply
procedure TForm1.BitBtn20Click(Sender: TObject);
begin
Factor:='*';
if (numeralSystem='dec') then
First:=StrToFloat(Edit1.Text)
else if (numeralSystem='hex') then
First:=HexToInt(edit1.Text)
else if (numeralSystem='bin') then
First:=BinToInt(Edit1.Text)
else if (numeralSystem='oct') then
First:=OctToInt(Edit1.Text);
Edit1.Clear;
Memo1.Text:=Memo1.Text+
end;
// code of deviding
procedure TForm1.BitBtn21Click(Sender: TObject);
begin
Factor:='/';
if (numeralSystem='dec') then
First:=StrToFloat(Edit1.Text)
else if (numeralSystem='hex') then
First:=HexToInt(edit1.Text)
else if (numeralSystem='bin') then
First:=BinToInt(Edit1.Text)
else if (numeralSystem='oct') then
First:=OctToInt(Edit1.Text);
Edit1.Clear;
Memo1.Text:=Memo1.Text+
end;
// control of denominator
Function Div0Check (DivNum : Real) : Boolean;
Begin
If DivNum=0
Then Begin
Div0Check:=False;
end
Else Begin
Div0Check:=True;
end;
end;
// calculation of answer
procedure TForm1.BitBtn17Click(Sender: TObject);
Var Check : Boolean;
begin
if (numeralSystem='dec') then
Second:=StrToFloat(Edit1.Text)
else if (numeralSystem='hex') then
Second:=HexToInt(edit1.Text)
else if (numeralSystem='bin') then
Second:=BinToInt(Edit1.Text)
else if (numeralSystem='oct') then
Second:=OctToInt(Edit1.Text);
If Factor='+'
Then Begin
Answer:=First + Second;
end;
If Factor='-'
Then Begin
Answer:=First - Second;
end;
If Factor='*'
Then Begin
Answer:=First * Second;
end;
If Factor='/'
Then Begin
Check:=Div0Check(Second);
If Check=True
Then Begin
Answer:=First / Second;
end
Else Begin
ShowMessage('You cannot divide by 0');
end;
end;
if (numeralSystem='dec') then
Edit1.Text:=FloatToStr(Answer)

- Калькулятор на Delphi
- Калькулятор штатной численности сотрудников органов социальной защиты населения
- Калькуляция и ее виды
- Калькуляция как способ группировки затрат их измерения и определения себестоимости. Виды и объекты калькуляции
- Калькуляциялау принциптері, оның объектісі мен тәсілдері
- Калькуляция - өздік құнын анықтау тәсілі
- Калькуляция себестоимости
- Калькулирование себестоимости продукции и его методы
- Калькулирование себестоимости продукции на предприятии (1)
- Калькулирование себестоимости продукции предприятия общественного питания
- Калькулирование себестоимости продукции растениеводства
- Калькулирование себестоимости с полным отнесением затрат
- Калькулирование фактической себестоимости продукции по статьям затрат
- Калькулювання витрат