niedziela, 24 marca 2024

Calculator - C++ Builder


class Calculator:

File - calc_unit.h 

#ifndef calc_unitH
#define calc_unitH
//---------------------------------------------------------------------------


class Calculator
{
private:
float x1,x2,result;
public:
Calculator();
void Read(float a, float b);
float Plus();
float Minus();
float Multiplication();
float Division();
float SQRT();
float Inverse();
float EXP();
};
#endif

File - calc_unit.cpp

#pragma hdrstop

#include "calc_unit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)

Calculator::Calculator()
{
;
}
void Calculator::Read(float a, float b)
{
x1=a;
x2=b;
}
float Calculator::Plus()
{
result=x1+x2;
return result;
}

float Calculator::Minus()
{
result=x1-x2;
return result;
}
float Calculator::Multiplication()
{
result=x1*x2;
return result;
}
float Calculator::Division()
{
   result=x1/x2;
   return result;
}
float Calculator::SQRT()
{
result=sqrt(x1);
return result;
}
float Calculator::Inverse()
{
result=(1.00/x1);
return result;
}
float Calculator::EXP()
{
  int i,temp=int(x2);
  result=x1;
  for(i=0;i<temp-1;i++)
   result*=x1;
  return result;
}

Project C++ Builder:

#include <vcl.h>
#include <math.h>
#pragma hdrstop

#include "p_Proj_Calc.h"
#include "calc_unit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
Calculator cl;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 cl.Read(StrToFloat(Edit1->Text),StrToFloat(Edit2->Text));
 Edit3->Text=FloatToStr(cl.Plus());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  cl.Read(StrToFloat(Edit1->Text),StrToFloat(Edit2->Text));
  Edit3->Text=FloatToStr(cl.Minus());

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
 cl.Read(StrToFloat(Edit1->Text),StrToFloat(Edit2->Text));
 Edit3->Text=FloatToStr(cl.Multiplication());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
 cl.Read(StrToFloat(Edit1->Text),StrToFloat(Edit2->Text));
 Edit3->Text=FloatToStr(cl.Division());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
 cl.Read(StrToFloat(Edit1->Text),StrToFloat(Edit2->Text));
 Edit3->Text=FloatToStr(cl.Inverse());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
 cl.Read(StrToFloat(Edit1->Text),StrToFloat(Edit2->Text));
 Edit3->Text=FloatToStr(cl.SQRT());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{
 cl.Read(StrToFloat(Edit1->Text),StrToFloat(Edit2->Text));
 Edit3->Text=FloatToStr(cl.EXP());
}






 

niedziela, 5 listopada 2023

std::tuple C++ Builder


void __fastcall TForm1::info_File(UnicodeString name, int size, UnicodeString date_Modification)
{
Edit1->Text=name;
Edit2->Text=IntToStr(size);
Edit3->Text=date_Modification;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
using INFO=tuple<UnicodeString,int,UnicodeString>;
TSearchRec info_Sys;
AnsiString date,name_File;
int bytes;
 name_File=Application->ExeName;
 if(FindFirst(name_File,faAnyFile,info_Sys)!=0)
 {
ShowMessage("I can't open file");
Close();
 }
 bytes=info_Sys.Size;
 date=DateTimeToStr(FileDateToDateTime(info_Sys.Time));
 INFO application_exe={name_File,bytes,date};
 const auto &[name,size,date_Modification]=application_exe;
 info_File(name,size,date_Modification);
}


 

wtorek, 31 października 2023

Directory /proc/ - g++

 
#include <iostream>
#include <fstream>

using namespace std;

void printf_File(string name_File)
{
    
    ifstream main_File(name_File.c_str());
    if(main_File.is_open())
    {
        char temp_String[10000];
        while(main_File.getline(temp_String,10000))
        {
            cout<<temp_String<<endl;
        }
    }
    else
    cout<<"I can't read - "<<name_File<<endl;
    
}

int main(int argc, char **argv)
{
    string proc_Info[3]={"/proc/version","/proc/cpuinfo","/proc/meminfo"};
    for(int i=0;i<3;i++)
    {
        printf_File(proc_Info[i]);
    }
    
    return 0;
}

czwartek, 14 września 2023

My class - save_Text - C++ Builder

 class save_Text

{

private:

char** buff;

int l_size;

    char* name;

ofstream my_File;

UnicodeString* date;

const int length=256;

public:

save_Text(char* file_Name,UnicodeString* text,int lines);

void Save();

~save_Text();


};

save_Text::save_Text(char* file_Name,UnicodeString* text,int lines)

{

 l_size=lines;

 name=file_Name;

 date=text;

 buff=new char*[l_size];

 for(int i=0;i<l_size;i++)

  buff[i]=new char[length];

}

void save_Text::Save()

{

 my_File.open(name);

 for(int i=0;i<l_size;i++)

 {

wcstombs(buff[i],date[i].w_str(),length);

my_File<<buff[i]<<"\n";

 }

 my_File.close();

}

save_Text::~save_Text()

{

for(int i=0;i<l_size;i++)

delete [] buff[i];

    delete []buff;

}

void __fastcall TForm1::Button3Click(TObject *Sender)
{
 UnicodeString safety_Tips[5];
 safety_Tips[0]="Report to Safety Cordinator";
 safety_Tips[1]="Stricty obey Safety Rules";
 safety_Tips[2]="Smoke only in designated areas";
 safety_Tips[3]="Keep Emergency Number near you";
 safety_Tips[4]="Do not take risks";

 save_Text Safety("safety.txt",safety_Tips,5);
 Safety.Save();

}

poniedziałek, 11 września 2023

Type Variant examples - C++ Builder

 


void __fastcall TForm1::FormCreate(TObject *Sender)
{
 Variant x;
 TVarData(x).VDate=Now();
 x=TVarData(x).VDate;
 Label1->Caption=VarToStr(x);
 int i,j;
 Variant integer_Tab(OPENARRAY(int,(1,10,1,10)),varInteger);
 Variant double_Tab(OPENARRAY(int,(1,10,1,10)),varDouble);
 Variant currency_Tab(OPENARRAY(int,(1,10,1,10)),varCurrency);
 Variant date_Tab(OPENARRAY(int,(1,10,1,10)),varDate);
 double k=0.01;
 for(i=0;i<10;i++)
 {
for(j=0;j<10;j++)
{
integer_Tab.PutElement((i+1)*(j+1),i+1,j+1);
double_Tab.PutElement(k*(i+1*1.00)*(j+1*1.00),i+1,j+1);
currency_Tab.PutElement(k*(i+1*1.00)+(j+1*1.00),i+1,j+1);
         date_Tab.PutElement(x,i+1,j+1);

}
 }
 for(i=0;i<10;i++)
 {
for(j=0;j<10;j++)
{
StringGrid1->Cells[i][j]=integer_Tab.GetElement(i+1,j+1);
StringGrid2->Cells[i][j]=double_Tab.GetElement(i+1,j+1);
StringGrid3->Cells[i][j]=currency_Tab.GetElement(i+1,j+1);
         StringGrid4->Cells[i][j]=date_Tab.GetElement(i+1,j+1);

}
 }

}


niedziela, 23 lipca 2023

Time file information - class C++ Builder

 



class time_File
{
private:
TSearchRec modification;
TSystemTime d1,t1,d2,t2;
AnsiString FileN;
public:
time_File(AnsiString name);
AnsiString last_Modfication();
AnsiString create_File();
AnsiString last_Access();

};

time_File::time_File(AnsiString name)
{
FileN=name;
FindFirst(FileN,faAnyFile,modification);
FindClose(modification);
}
AnsiString time_File::last_Modfication()
{

return  (AnsiString) DateTimeToStr(FileDateToDateTime(modification.Time));
}

AnsiString time_File::create_File()
{
FileTimeToSystemTime(&(modification.FindData.ftCreationTime),&d1);
SystemTimeToTzSpecificLocalTime(NULL,&d1,&t1);
return (AnsiString) DateTimeToStr(SystemTimeToDateTime(t1));
}
AnsiString time_File::last_Access()
{
FileTimeToSystemTime(&(modification.FindData.ftLastAccessTime),&d2);
SystemTimeToTzSpecificLocalTime(NULL,&d2,&t2);
return (AnsiString) DateTimeToStr(SystemTimeToDateTime(t2));

}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  AnsiString name_Project=Application->ExeName;
  time_File info_File(name_Project);
  Label4->Caption=name_Project;
  Label1->Caption="Last modification: "+info_File.last_Modfication();
  Label2->Caption="Create time: "+info_File.create_File();
  Label3->Caption="Last access time: "+info_File.last_Access();
}








                

niedziela, 9 lipca 2023

Sorting - C++ example

 


#include <iostream>

#include <stdlib.h>

#include <time.h>

#define kk 12

using namespace std;


void i_Sort(int* tab, int ssize1)

{

int i,j,k;

for(i=1;i<ssize1;i++)

{

j=i;

k=tab[j];

while((j>0) && (tab[j-1]>k))

{

tab[j]=tab[j-1];

j--;

}

tab[j]=k;

}

}


void z_Sort(int* tab, int ssize1)

{

int i,j,k;

for(i=1;i<ssize1;i++)

{

j=i;

k=tab[j];

while((j>0) && (tab[j-1]<k))

{

tab[j]=tab[j-1];

j--;

}

tab[j]=k;

}

}

int *tab1,*tab2,*tab3;

int main(int argc, char **argv)

{

 int i,j;

 srand(time(NULL));

 tab1=new int[kk];

 tab2=new int[kk];

 tab3=new int[kk];

 for(i=0;i<kk;i++)

 {

j=rand()%100;

tab1[i]=j;

tab2[i]=tab1[i];

tab3[i]=tab2[i];

 }

 i_Sort(tab2,kk);

 z_Sort(tab3,kk);

 cout<<"Original array: \n";

 for(i=0;i<kk;i++)

 {

cout<<tab1[i]<<"   ";

 }

 cout<<endl;

 cout<<"Descending sort: \n";

 for(i=0;i<kk;i++)

 {

cout<<tab3[i]<<"   ";

 }

 cout<<endl;

 cout<<"Ascending sort: \n";

 for(i=0;i<kk;i++)

 {

cout<<tab2[i]<<"   ";

 }

 cout<<endl;

 delete tab3;

 delete tab2;

 delete tab1;

 

return 0;

}