czwartek, 15 sierpnia 2019

Data in StrinGrid and files



New files created:



#define  g_Size 10

private: // User declarations
int base_Tab[g_Size][g_Size];
int base_Tab2[g_Size][g_Size];
int zero_Tab[g_Size][g_Size];
int zero_Tab2[g_Size][g_Size];
int sum_Tab[g_Size][g_Size];
int sum_Tab2[g_Size][g_Size];
int Base[6][g_Size][g_Size];
UnicodeString string_Tab[g_Size][g_Size];
UnicodeString string_Tab2[g_Size][g_Size];
bool __fastcall is_First(int value);
UnicodeString __fastcall zero_One(int value);
AnsiString name_Files[6];
FILE *my_File[6];
void __fastcall init_Arrays();

bool __fastcall TForm1::is_First(int value)
{
int i,sum;
sum=0;
for(i=1;i<value+1;i++)
if(value%i==0)
  ++sum;
if(sum==2)
return true;
else
return false;
}
UnicodeString __fastcall TForm1::zero_One(int value)
{
UnicodeString result;
if(is_First(value))
result="1";
else
result="0";
return result;
}
void __fastcall TForm1::init_Arrays()
{
int i,j,k,l;
for(i=0;i<6;i++)
name_Files[i]="date"+IntToStr(i)+".txt";
k=1;
for(i=0;i<g_Size;i++)
{
for(j=0;j<g_Size;j++)
{
base_Tab[i][j]=k;
l=(i+1)*(j+1);
base_Tab2[i][j]=l;
base_Grid->Cells[j][i]=IntToStr(base_Tab[i][j]);
base_Grid2->Cells[j][i]=IntToStr(base_Tab2[i][j]);
if(is_First(k))
{
zero_Tab[i][j]=1;
string_Tab[i][j]="1";
}
else
{
zero_Tab[i][j]=0;
string_Tab[i][j]="0";
}
if(is_First(l))
{
zero_Tab2[i][j]=1;
string_Tab2[i][j]="1";
}
else
{
zero_Tab2[i][j]=0;
string_Tab2[i][j]="0";
}
Grid2->Cells[j][i]=string_Tab[i][j];
Grid4->Cells[j][i]=string_Tab2[i][j];
++k;
}
}
for(i=0;i<g_Size;i++)
{
for(j=0;j<g_Size;j++)
{
k=l=0;
if(i-1>-1)
{
  k+=zero_Tab[i-1][j];
  l+=zero_Tab2[i-1][j];
}
if(i-1>-1 && j-1>-1)
{
   k+=zero_Tab[i-1][j-1];
   l+=zero_Tab2[i-1][j-1];
}
if(j-1>-1)
{
k+=zero_Tab[i][j-1];
l+=zero_Tab2[i][j-1];
}
if(i+1<g_Size && j-1>-1)
{
k+=zero_Tab[i+1][j-1];
l+=zero_Tab2[i+1][j-1];
}
if(i+1<g_Size)
{
k+=zero_Tab[i+1][j];
l+=zero_Tab2[i+1][j];
}
if(i+1<g_Size && j+1<g_Size)
{
k+=zero_Tab[i+1][j+1];
l+=zero_Tab2[i+1][j+1];
}
if(j+1<g_Size)
{
k+=zero_Tab[i][j+1];
l+=zero_Tab2[i][j+1];
}
if(i-1>-1 && j+1<g_Size)
{
k+=zero_Tab[i-1][j+1];
l+=zero_Tab2[i-1][j+1];
}
k+=zero_Tab[i][j];
l+=zero_Tab2[i][j];
sum_Tab[i][j]=k;
sum_Tab2[i][j]=l;
Grid1->Cells[j][i]=IntToStr(sum_Tab[i][j]);
Grid3->Cells[j][i]=IntToStr(sum_Tab2[i][j]);
}
}
for(i=0;i<g_Size;i++)
{
for(j=0;j<g_Size;j++)
{
Base[0][i][j]=base_Tab[i][j];
Base[1][i][j]=base_Tab2[i][j];
Base[2][i][j]=zero_Tab[i][j];
Base[3][i][j]=zero_Tab2[i][j];
Base[4][i][j]=sum_Tab[i][j];
Base[5][i][j]=sum_Tab2[i][j];
}
}
for(i=0;i<6;i++)
{
my_File[i]=fopen(name_Files[i].c_str(),"w");
for(j=0;j<g_Size;j++)
{
for(k=0;k<g_Size;k++)
{
fprintf(my_File[i],"%d",Base[i][j][k]);
                fprintf(my_File[i],"\n");
}
}
}
for(i=0;i<6;i++)
{
        fclose(my_File[i]);
    }
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 init_Arrays();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 Close();
}

niedziela, 4 sierpnia 2019

Using environ. Linux C++

#include <iostream>
#include <string.h>
#include <fstream>
#include <stdio.h>
using namespace std;

class ENV
{
private:

char **temp_Text;
char *file_Name;

public:
char **environ;
ENV(char *f_Name)
{
strcpy(file_Name,f_Name);
}
void Write()
{

fstream my_File(file_Name,ios::out);
for(temp_Text=environ;*temp_Text!=NULL;++temp_Text)
{
     my_File<<*temp_Text<<endl;
     my_File.flush();
}
my_File.close();
}

};

int main(int argc, char **argv)
{
  ENV testEnv("date_Env2");
  testEnv.Write();
 
return 0;
}

And next: vim date_Env2

piątek, 26 lipca 2019

Structure data and file (C++)

#include <iostream>
#include <fstream>
#include <stdio.h>
using namespace std;

#define max_size 10


bool is_First(int value)
{
int i,sum=0;
for(i=1;i<value+1;i++)
if(value%i==0)
 ++sum;
if(sum==2)
return true;
else
return false;
}
int sum_Table(int *tab, int array_size)
{
int i,sum=0;
for(i=0;i<array_size;i++)
sum+=tab[i];
return sum; 
 
}
double aver_Sum(int *tab, int array_size)
{
double aver;
aver=(1.0*sum_Table(tab,array_size))/(1.*array_size);
return aver;
}
struct dates
{
int f1;
int s1;
double a1;
};

int main(int argc, char **argv)
{
int i,j,k;
fstream file1("date1.txt",ios::out);

struct dates *m_dates=new struct dates[max_size];


i=0;
j=2;
do
{
if(is_First(j))
{
m_dates[i].f1=j;
++i;
}
++j;
}while(i<max_size);
for(i=0;i<max_size;i++)
{
j=0;
for(k=1;k<m_dates[i].f1+1;k++)
{
j+=k;
 
}
   m_dates[i].s1=j;
}
i=0;
do
{
  k=0;
 int *temp=new int[m_dates[i].f1];
 for(j=1;j<m_dates[i].f1+1;j++)
 {
  k=j;
  temp[j-1]=k;
 }
 m_dates[i].a1=aver_Sum(temp,m_dates[i].f1);
 delete temp;
 ++i;
}while(i<max_size);


for(i=0;i<max_size;i++)
{
printf("%d)     %d   -    %d    -   %.2f\n",i+1,m_dates[i].f1,m_dates[i].s1,m_dates[i].a1);
}
for(i=0;i<max_size;i++)
{
file1<<m_dates[i].f1<<"    "<<m_dates[i].s1<<"   "<<m_dates[i].a1<<"\n";
file1.flush();
}
file1.close();

delete m_dates; 
return 0;
}

poniedziałek, 15 lipca 2019

Data from the file (C++ Builder)



My file:
point1.txt


10 10 35 40
35 40 100 40
100 40 150 50
150 50 220 50
220 50 220 180
220 180 270 270
270 270 330 330
330 330 350 400
350 400 400 420
400 420 500 500


The program reads the data and writes it out. 


private: // User declarations
        int date_Point1[2][10];
        int date_Point2[2][10];

void __fastcall TForm1::FormCreate(TObject *Sender)
{
 int i;
 AnsiString text[4]={"X1","Y1","X2","Y2"};
 for(i=0;i<4;i++)
  StringGrid1->Cells[i][0]=text[i];
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
 int temp[4][10];
 int temp2[4*10];
 int temp3[4][10];
 int i,j,k;
 FILE *date;
 date=fopen("point1.txt","r");
 if(date==NULL)
 {
  ShowMessage("I can't open file");
  Close();
 }
 else
 {
  k=0;
  for(i=0;i<4;i++)
  {
   for(j=0;j<10;j++)
   {
    fscanf(date,"%d",&temp[i][j]);
    temp2[k]=temp[i][j];
    ++k;
   }
  }
  fclose(date);
 }
 k=0;
 i=0;
 do
 {

  for(j=0;j<4;j++)
  {
   temp3[i][j]=temp2[k];
   ++k;
   if(j==3)
    ++i;
  }
 }while(i<10);
 for(i=0;i<4;i++)
 {
  for(j=0;j<10;j++)
  {
   StringGrid1->Cells[i][j+1]=IntToStr(temp3[j][i]);

  }
 }
 for(i=0;i<10;i++)
 {
  for(j=0;j<2;j++)
  {
   date_Point1[j][i]=temp3[j][i];
   date_Point2[j][i]=temp3[j+2][i];
  }
 }
 PaintBox1->Canvas->MoveTo(date_Point1[0][0],date_Point2[0][0]);
 for(i=0;i<10;i++)
  for(j=0;j<2;j++)
   PaintBox1->Canvas->LineTo(date_Point1[j][i],date_Point2[j][i]);
}

void __fastcall TForm1::Button2Click(TObject *Sender)
{
 Close();
}


sobota, 6 lipca 2019

Discrete knapsack problem (C - gcc)

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define size_B 10
#define max_T 100
#define min_V 500
#define max_V 1000

int double_Arrays[size_B][size_B];
int tab_First[max_T];
int main_Values[size_B];

int sum_Array(int *tab, int size)
{
int i,sum;
sum=0;
for(i=0;i<size;i++)
sum+=tab[i];
return sum;
}
void ins_Sort(int *tab,  int size)
{
int i,j,k;
for(i=1;i<size;i++)
{
j=i;
k=tab[j];
while((j>0) && (tab[j-1]>k))
{
tab[j]=tab[j-1];
j--;
}
tab[j]=k;
}
}
int is_First(int value)
{
int i,sum;
sum=0;
for(i=1;i<value+1;i++)
if(value%i==0)
 ++sum;
    if(sum==2)
     return 1;
    else
     return 0;
     
}

void init_Tab()
{
int i,j;
i=0;
j=2;
do
{
if(is_First(j))
{
tab_First[i]=j;
++i;
}
++j;

}while(i<max_T);
for(i=0;i<size_B;i++)
{
main_Values[i]=rand()%(max_V-min_V)+min_V;
}
ins_Sort(main_Values,size_B);
}
void run_Arrays()
{
int i,j,k,l;
i=0;
do
{
 do
 {
for(j=0;j<size_B;j++)
{
k=rand()%max_T;
l=tab_First[k];
double_Arrays[i][j]=l;
    }
} while(sum_Array(double_Arrays[i],size_B)!=main_Values[i]);
++i;
}while(i<size_B);
for(i=0;i<size_B;i++)
{
ins_Sort(double_Arrays[i],size_B);
}
}

int main(int argc, char **argv)
{
int i,j;
srand(time(NULL));
init_Tab();
run_Arrays();
printf("Drawn 10 numbers: (500-1000)\n");
for(i=0;i<size_B;i++)
{
printf("%d  ",main_Values[i]);
}
printf("\n\n");

printf("The sum of the ten prime numbers: ");
printf("\n");
i=0;
do
{
for(j=0;j<size_B;j++)
{
printf("%d  ",double_Arrays[i][j]);
}
printf("\n");
++i;
}while(i<size_B);

return 0;
}

czwartek, 4 lipca 2019

Days and months 2019 (C-gcc)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char **argv)
{
char months[12][20];
int months_values[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int day_months;
int sum[12];
char days[7][20];
int day;
char which_Day[20];
char which_Monat[20];
int i,j,s;
srand(time(NULL));
s=0;
for(i=0;i<12;i++)
{
s+=months_values[i];
sum[i]=s;

}
strcpy(months[0],"January");
strcpy(months[1],"February");
strcpy(months[2],"March");
strcpy(months[3],"April");
strcpy(months[4],"May");
strcpy(months[5],"June");
strcpy(months[6],"July");
strcpy(months[7],"August");
strcpy(months[8],"September");
strcpy(months[9],"October");
strcpy(months[10],"November");
strcpy(months[11],"December");
strcpy(days[6],"Monday");
strcpy(days[0],"Tuesday");
strcpy(days[1],"Wednesday");
strcpy(days[2],"Thursday");
strcpy(days[3],"Friday");
strcpy(days[4],"Saturday");
strcpy(days[5],"Sunday"); 
day=rand()%365+1;
i=1;
j=0;
do
{


if(j==7)
j=0;
++i;
++j;

}while(i<day);
strcpy(which_Day,days[j]);
if(day<sum[0]+1)
{
strcpy(which_Monat,months[0]);
day_months=day;
}
if(day>sum[0] && day<sum[1]+1)
{
strcpy(which_Monat,months[1]);
day_months=day-sum[0];
}
if(day>sum[1] && day<sum[2]+1)
{
strcpy(which_Monat,months[2]);
day_months=day-sum[1];
}
if(day>sum[2] && day<sum[3]+1)
{
strcpy(which_Monat,months[3]);
day_months=day-sum[2];
}
if(day>sum[3] && day<sum[4]+1)
    {
strcpy(which_Monat,months[4]);
day_months=day-sum[3];
}
if(day>sum[4] && day<sum[5]+1)
{
strcpy(which_Monat,months[5]);
day_months=day-sum[4];
}
if(day>sum[5] && day<sum[6]+1)
{
strcpy(which_Monat,months[6]);
day_months=day-sum[5];
}
if(day>sum[6] && day<sum[7]+1)
{
strcpy(which_Monat,months[7]);
day_months=day-sum[6];
}
if(day>sum[7] && day<sum[8]+1)
{
strcpy(which_Monat,months[8]);
day_months=day-sum[7];
}
if(day>sum[8] && day<sum[9]+1)
{
strcpy(which_Monat,months[9]);
day_months=day-sum[8];
}
if(day>sum[9] && day<sum[10]+1)
{
strcpy(which_Monat,months[10]);
day_months=day-sum[9];
}
if(day>sum[10] && day<sum[11]+1)
{
strcpy(which_Monat,months[11]);
day_months=day-sum[10];
}  
 
printf("Value =  %d\n",day);
printf("Month = %s\n",which_Monat);
printf("Day = %d\n",day_months);
printf("Day of the week = %s\n",which_Day);



return 0;
}

sobota, 29 czerwca 2019

info file (class C++ Builder)

class info_my_FILE
{
private:
VS_FIXEDFILEINFO *type_File;
UnicodeString name;
void *temp_info;
unsigned long temp_Long;
char *buff_File;

int size_Buff;
UnicodeString result_File;


public:

void read_File(UnicodeString name_File)
{

name=name_File;
unsigned int temp_value_Size;
size_Buff=GetFileVersionInfoSize(name.w_str(),&temp_Long);
buff_File=new char[size_Buff];
GetFileVersionInfo(name.w_str(),0,size_Buff,buff_File);
if(VerQueryValue(buff_File,L"\\",&temp_info,&temp_value_Size))
{
type_File=(VS_FIXEDFILEINFO*)temp_info;
if(type_File->dwFileType==VFT_DLL)
result_File="library DLL";
else if(type_File->dwFileType==VFT_APP)
result_File="application .exe";
else if(type_File->dwFileType==VFT_DRV)
result_File="DRV Type";
else if(type_File->dwFileType==VFT_STATIC_LIB)
result_File="static Library";
else if(type_File->dwFileType==VFT_FONT)
result_File="font type";
else if(type_File->dwFileType==VFT_VXD)
result_File="virtual";
else
  result_File="unknown type";
}


}

int write_size_Buff()
{
return size_Buff;
}
UnicodeString writeType()
{
return result_File;
}
~info_my_FILE()
{
delete buff_File;
}
};


void __fastcall TForm1::Button1Click(TObject *Sender)
{
 UnicodeString files[3];
 files[0]=Application->ExeName;
 files[1]="C:\\BOOTSECT.BAK";
 files[2]="C:\\Windows\\PFRO.log";
 info_my_FILE *my_Files=new info_my_FILE[3];
 int i;
 for(i=0;i<3;i++)
 {
my_Files[i].read_File(files[i]);
 }
 for(i=0;i<3;i++)
 {
ListBox1->Items->Add(my_Files[i].writeType()+" - "+IntToStr(my_Files[i].write_size_Buff()));
 }


 delete my_Files;
}