Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #include <math.h>
- #include <iostream.h>
- #pragma hdrstop
- #include "Unit1.h"
- #include "Unit2.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- #pragma resource "*.dfm"
- TForm1 *Form1;
- //---------------------------------------------------------------------------
- __fastcall TForm1::TForm1(TComponent* Owner)
- : TForm(Owner)
- {
- this->Width = 320;
- poVysledku = false;
- vybranOperand = false;
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::Button1Click(TObject *Sender)
- {
- TButton *x = (TButton*)Sender;
- AnsiString string = Edit1->Text;
- if(poVysledku) //prepisujeme
- {
- string = (AnsiString)"0";
- poVysledku = false;
- }
- switch(x->Tag)
- {
- case 0:
- {
- if(string != "0")
- string += (AnsiString)"0";
- break;
- }
- case 1:
- {
- if(string == "0")
- string = (AnsiString)"1";
- else
- string += (AnsiString)"1";
- break;
- }
- case 2:
- {
- if(string == "0")
- string = (AnsiString)"2";
- else
- string += (AnsiString)"2";
- break;
- }
- case 3:
- {
- if(string == "0")
- string = (AnsiString)"3";
- else
- string += (AnsiString)"3";
- break;
- }
- case 4:
- {
- if(string == "0")
- string = (AnsiString)"4";
- else
- string += (AnsiString)"4";
- break;
- }
- case 5:
- {
- if(string == "0")
- string = (AnsiString)"5";
- else
- string += (AnsiString)"5";
- break;
- }
- case 6:
- {
- if(string == "0")
- string = (AnsiString)"6";
- else
- string += (AnsiString)"6";
- break;
- }
- case 7:
- {
- if(string == "0")
- string = (AnsiString)"7";
- else
- string += (AnsiString)"7";
- break;
- }
- case 8:
- {
- if(string == "0")
- string = (AnsiString)"8";
- else
- string += (AnsiString)"8";
- break;
- }
- case 9:
- {
- if(string == "0")
- string = (AnsiString)"9";
- else
- string += (AnsiString)"9";
- break;
- }
- case 10: //"C"
- {
- string = (AnsiString)"0";
- vybranOperand = false;
- poVysledku = true;
- break;
- }
- case 11: //","
- {
- string += (AnsiString)",";
- break;
- }
- }
- Edit1->Text = string;
- if(!vybranOperand)
- op = 'e';
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::Button13Click(TObject *Sender) //+
- {
- TButton *x = (TButton*)Sender;
- op1 = StrToFloat(Edit1->Text);
- switch(x->Tag)
- {
- case 12: //+
- op = '+';
- break;
- case 13: //-
- op = '-';
- break;
- case 14: //*
- op = '*';
- break;
- case 15: // /
- op = '/';
- break;
- case 25: //x^y
- op = '^';
- break;
- }
- //nyni chci znova prepisovat
- vybranOperand = true;
- poVysledku = true;
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::Button14Click(TObject *Sender) //=
- {
- if(!vybranOperand)
- op1 = StrToFloat(Edit1->Text);
- op2 = StrToFloat(Edit1->Text);
- switch(op)
- {
- case 'e': //e jako empty = chci pouze zopakovat poslední výsledek
- vys = op1;
- break;
- case '+':
- vys = op1 + op2;
- break;
- case '-':
- vys = op1 - op2;
- break;
- case '*':
- vys = op1 * op2;
- break;
- case '/':
- {
- if(op2 != 0) //deleni 0
- vys = op1 / op2;
- else
- {
- vys = 0;
- ShowMessage((AnsiString)"Deleni nulou!");
- }
- break;
- }
- case '^':
- {
- int n = floor(op2);
- if(op1 == 0 && n <= 0) //osetreni stavu 0^(zaporne cislo) = 1/0
- {
- vys = 0;
- ShowMessage((AnsiString)"Nezadouci hodnoty!");
- }
- else
- vys = pow(op1, n);
- break;
- }
- }
- Edit1->Text = FloatToStr(vys);
- poVysledku = true;
- vybranOperand = false;
- op = 'e';
- }
- //---------------------------------------------------------------------------
- double TForm1::absV(double x)
- {
- return((x < 0)?x*(-1):x);
- }
- void __fastcall TForm1::Button16Click(TObject *Sender) // ^2
- {
- TButton *x = (TButton*)Sender;
- op1 = StrToFloat(Edit1->Text);
- op = 'e';
- switch(x->Tag)
- {
- case 16: //^2
- vys = op1 * op1;
- break;
- case 17: //sqrt()
- {
- if(op1 >= 0) //osetreni zapornych cisel
- vys = Sqrt(op1);
- else
- {
- vys = 0;
- ShowMessage((AnsiString)"Pod odmocninou zaporne cislo!");
- }
- break;
- }
- case 18: //1/x
- {
- if(op1 != 0) //osetreni deleni 0
- vys = 1 / op1;
- else
- {
- vys = 0;
- ShowMessage((AnsiString)"Deleni nulou!");
- }
- break;
- }
- case 19: //sin
- vys = Sin(op1);
- break;
- case 20: //cos
- vys = Cos(op1);
- break;
- case 21: //tg
- vys = tan(op1);
- break;
- case 22: //x!
- {
- if(op1 >= 0 && op1 < 13) //12,9 se stejne zaokrouhli na 12 a 12! se jeste vejde do datoveho rozsahu intu
- {
- int n = floor(op1);
- vys = 1;
- for(int i = n; i >= 1; i--)
- vys *= i;
- }
- else
- {
- vys = 0;
- ShowMessage((AnsiString)"Faktorial mimo meze!"); //meze 0 - 12
- }
- break;
- }
- case 23: //^3
- vys = op1 * op1 * op1;
- break;
- case 24: //10^x
- vys = pow(10.0, floor(op1));
- break;
- }
- Edit1->Text = FloatToStr(vys);
- poVysledku = true;
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::Button29Click(TObject *Sender)
- {
- this->Width = 320;
- Button30->Visible = true;
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::Button30Click(TObject *Sender)
- {
- this->Width = 450;
- Button30->Visible = false;
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::Button31Click(TObject *Sender)
- {
- Application->Terminate();
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::Button24Click(TObject *Sender) //pi
- {
- poVysledku = true;
- Edit1->Text = "3,1415926535897";
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::Button32Click(TObject *Sender)
- {
- TForm2 *form2 = new TForm2(this);
- form2->Show();
- }
- //---------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement