niedziela, 20 lipca 2025
My class info_File - C++ Builder
sobota, 12 lipca 2025
std::sort() - C++ Builder
sobota, 21 czerwca 2025
priority_queue - C++ Builder
#include <vcl.h>
#include <System.SysUtils.hpp>
#include <iostream>
#include <queue>
#include <tuple>
#pragma hdrstop
#include "Unit1.h"
using namespace std;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
struct info_var_Data
{
float value;
UnicodeString name;
};
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
float data_Values[8]={0.00,0.11,0.22,0.33,0.44,0.55,0.66,0.77};
UnicodeString v_Names[8]={"VarEmty","varNull","varSmallint","varInteger","varSingle",
"varDouble","varVurrency","varDate"};
struct info_var_Data *v_Data=new struct info_var_Data[8];
struct info_var_Data *temp_Values=new struct info_var_Data[8];
for(int i=0;i<8;i++)
{
v_Data[i].value=data_Values[i];
v_Data[i].name=v_Names[i];
}
using x_Date=pair<float,UnicodeString>;
priority_queue<x_Date> temp;
int temp_Index[8]={3,0,1,4,2,7,5,6,};
initializer_list<x_Date> v8
{
{v_Data[temp_Index[0]].value,v_Data[temp_Index[0]].name},
{v_Data[temp_Index[1]].value,v_Data[temp_Index[1]].name},
{v_Data[temp_Index[2]].value,v_Data[temp_Index[2]].name},
{v_Data[temp_Index[3]].value,v_Data[temp_Index[3]].name},
{v_Data[temp_Index[4]].value,v_Data[temp_Index[4]].name},
{v_Data[temp_Index[5]].value,v_Data[temp_Index[5]].name},
{v_Data[temp_Index[6]].value,v_Data[temp_Index[6]].name},
{v_Data[temp_Index[7]].value,v_Data[temp_Index[7]].name},
};
for(int i=0;i<8;i++)
{
temp_Values[i].value=v_Data[temp_Index[i]].value;
temp_Values[i].name=v_Data[temp_Index[i]].name;
StringGrid1->Cells[i][0]=FloatToStrF(temp_Values[i].value,ffGeneral,2,2);
StringGrid1->Cells[i][1]=temp_Values[i].name;
}
for(const auto &it : v8)
{
temp.push(it);
}
int j=0;
while(!temp.empty())
{
StringGrid2->Cells[j][0]=FloatToStrF(temp.top().first,ffGeneral,2,2);
StringGrid2->Cells[j][1]=temp.top().second;
temp.pop();
++j;
}
delete [] v_Data;
delete [] temp_Values;
}
czwartek, 19 czerwca 2025
Loading text files - C++ Builder
niedziela, 2 marca 2025
class info_Printers - C++ Builder
sobota, 2 listopada 2024
Retrieving data from a file into C++ Builder components.
wtorek, 22 października 2024
Ascending and descending sorting - Example - class C++ Builder
New Unit:
File Class_Sorting.h
class multi_Sort
{
private:
int* tab_Date;
int* min_Tab;
int* max_Tab;
int length;
public:
multi_Sort(int size);
~multi_Sort();
void min_Sort(int *tab, int s);
void max_Sort(int* tab, int s);
void Load(int *tab);
int *min_Result();
int *max_Result();
};
File Class_Sorting.cpp
#include "class_Sorting.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
multi_Sort::multi_Sort(int size)
{
length=size;
tab_Date=new int[length];
min_Tab=new int[length];
max_Tab=new int[length];
}
multi_Sort::~multi_Sort()
{
delete max_Tab;
delete min_Tab;
delete tab_Date;
}
void multi_Sort::min_Sort(int *tab, int s)
{
int i,j,k;
for(i=1;i<s;i++)
{
j=i;
k=tab[j];
while((j>0) && (tab[j-1]>k))
{
tab[j]=tab[j-1];
j--;
}
tab[j]=k;
}
}
void multi_Sort::max_Sort(int* tab, int s)
{
int i,j,k;
for(i=1;i<s;i++)
{
j=i;
k=tab[j];
while((j>0) && (tab[j-1]<k))
{
tab[j]=tab[j-1];
j--;
}
tab[j]=k;
}
}
void multi_Sort::Load(int *tab)
{
for(int i=0;i<length;i++)
{
tab_Date[i]=min_Tab[i]=max_Tab[i]=tab[i];
}
}
int* multi_Sort::min_Result()
{
min_Sort(min_Tab,length);
return min_Tab;
}
int* multi_Sort::max_Result()
{
max_Sort(max_Tab,length);
return max_Tab;
}
Main Project:
#include <vcl.h>
#include <stdlib.h>
#include <time.h>
#pragma hdrstop
#include "p_Example.h"
#include "class_Sorting.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
srand(time(NULL));
Button1->Caption="&RUN";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
#define ssize 10
#define mmax 100
int j;
int* main_Date=new int[ssize];
int* min_Date=new int[ssize];
int* max_Date=new int[ssize];
for(int i=0;i<ssize;i++)
{
j=1+rand()%mmax;
main_Date[i]=j;
}
multi_Sort my_Class(ssize);
my_Class.Load(main_Date);
min_Date=my_Class.min_Result();
max_Date=my_Class.max_Result();
for(int i=0;i<ssize;i++)
{
StringGrid1->Cells[i][0]=IntToStr(main_Date[i]);
StringGrid1->Cells[i][1]=IntToStr(min_Date[i]);
StringGrid1->Cells[i][2]=IntToStr(max_Date[i]);
}
delete max_Date;
delete min_Date;
delete main_Date;
}