niedziela, 10 stycznia 2021

Writing data to a file (C/C++)

 


#include <iostream>

#include <stdio.h>

#include <fcntl.h>

#include <unistd.h>

#include <stdlib.h>

#include <fstream>

#include <time.h>


#define b_size 10

#define max_value 1000


using namespace std;


int sum_T(int *tab, int n)

{

int s=0;

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

s+=tab[i];

return s;

}

double aver_T(int *tab, int n)

{

double av;

av=(1.00*sum_T(tab,n))/(1.00*n);

return av;

}


bool is_True(int value)

{

if(value==2)

return true;

else

return false;

}

bool is_First(int value)

{

int i,sum=0;

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

if(value%i==0)

  ++sum;

return is_True(sum);

}

void sort_Tab(int* tab)

{

int i,j,k;

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

for(j=b_size-1;j>=i;j--)

  if(tab[j]<tab[j-1])

  {

  k=tab[j-1];

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

  tab[j]=k;

  }

}


int *base_Tab;

int **main_Tab;

int *sum_Tab;

double *aver_Tab;

int main(int argc, char **argv)

{

int i,j,k;

char *files[3]={"base.txt","sum.txt","aver.txt"};

srand(time(NULL));

base_Tab=new int[max_value];

main_Tab=new int *[b_size];

sum_Tab=new int[b_size];

aver_Tab=new double[b_size];

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

main_Tab[i]=new int[b_size];

i=0;

j=2;

do

{

if(is_First(j))

{

base_Tab[i]=j;

++i;

}

++j;

}while(i<max_value);

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

{

for(j=0;j<b_size;j++)

{

k=rand()%max_value;

main_Tab[i][j]=base_Tab[k];

}

    }

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

     sort_Tab(main_Tab[i]);

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

sum_Tab[i]=sum_T(main_Tab[i],b_size);

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

aver_Tab[i]=aver_T(main_Tab[i],b_size);

 

fstream stream_File;

stream_File.open(files[0],ios::out);

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

{

for(j=0;j<b_size;j++)

{

stream_File<<main_Tab[i][j]<<" ";

}

stream_File<<"\n";

}

stream_File.close();

FILE* fp;

fp=fopen(files[1],"w");

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

fprintf(fp,"%d\n",sum_Tab[i]);

fclose(fp);

int fd=open(files[2],O_WRONLY | O_CREAT);

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

write(fd,"%.2f\n",aver_Tab[i]);

close(fd);

   

delete [] base_Tab;

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

delete [] main_Tab[i];

delete [] main_Tab;

delete [] sum_Tab;

delete [] aver_Tab;

return 0;

}

YOU CAN PAY ME - https://paypal.me/LukaszW77?locale.x=pl_PL

piątek, 1 stycznia 2021

Class with fstream (C++)

 #include <iostream>

#include <fstream>


using namespace std;



class change_TAB

{

private:

fstream fp1;

fstream fp2;

int **tab1;

int **tab2;

int width;

int height;

int ss;

char *f1,*f2;

public:

change_TAB(char* file_Start, char* file_End, int x, int y, int s)

{

int i;

width=x;

height=y;

ss=s;

f1=file_Start;

f2=file_End;

tab1=new int *[width];

tab2=new int *[width];

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

{

tab1[i]=new int[height];

tab2[i]=new int[height];

}

}

~change_TAB()

{

int i;

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

{

delete [] tab1[i];

delete [] tab2[i];

}

delete [] tab1;

delete [] tab2;

}

void Read()

{

int i,j;

fp1.open(f1,ios::in);

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

for(j=0;j<height;j++)

  fp1>>tab1[i][j];

fp1.close();

}

void Write()

{

int i,j;

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

for(j=0;j<height;j++)

  tab2[i][j]=tab1[i][j]*ss;

fp2.open(f2,ios::out);

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

{

for(j=0;j<height;j++)

{

fp2<<tab2[i][j]<<" ";

}

fp2<<'\n';

}

fp2.close();

}

};



int main()

{

change_TAB TABLES("old_Tab","new_Tab",100,200,5);

TABLES.Read();

TABLES.Write();

return 0;

}


YOU CAN PAY ME - https://paypal.me/LukaszW77?locale.x=pl_PL


poniedziałek, 21 grudnia 2020

StringGrid and fstream (C++ Builder)

 


int main_Tab[20],min_Tab[20],max_Tab[20];
     double aver_Tab[20];
void __fastcall min_Sort(int *tab, int s);
void __fastcall max_Sort(int *tab, int s);
int __fastcall minus_Plus(int value);
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
 srand(time(NULL));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 Close();
}
int __fastcall TForm1::minus_Plus(int value)
{
int temp;
temp=1+rand()%20;
if(temp%2==0)
return value;
else
     return value*-1;
}

void __fastcall TForm1::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 __fastcall TForm1::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 __fastcall TForm1::Button1Click(TObject *Sender)
{
 int i;
 for(i=0;i<20;i++)
 {
  main_Tab[i]=1+rand()%100;
  main_Tab[i]=minus_Plus(main_Tab[i]);
  min_Tab[i]=main_Tab[i];
  max_Tab[i]=main_Tab[i];
  StringGrid1->Cells[i][0]=IntToStr(main_Tab[i]);

 }
 min_Sort(min_Tab,20);
 max_Sort(max_Tab,20);
 for(i=0;i<20;i++)
 {
aver_Tab[i]=(1.00*max_Tab[i])/(1.00*min_Tab[i]);
StringGrid1->Cells[i][1]=IntToStr(min_Tab[i]);
StringGrid1->Cells[i][2]=IntToStr(max_Tab[i]);
StringGrid1->Cells[i][3]=FloatToStrF(aver_Tab[i],ffGeneral,2,4);
 }

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
 float **tab;
 fstream tab_File;
 int x=StringGrid1->RowCount;
 int y=StringGrid1->ColCount;
 tab=new float *[x];
 int i,j;
 for(i=0;i<x;i++)
 {
tab[i]=new float[y];
 }

 for(i=0;i<x;i++)
  for(j=0;j<y;j++)
   tab[i][j]=StrToFloat(StringGrid1->Cells[j][i]);
 tab_File.open(Edit1->Text.w_str(),ios::out);
 if(tab_File.good())
 {
  for(i=0;i<x;i++)
  {
for(j=0;j<y;j++)
{
tab_File<<tab[i][j]<<", ";
tab_File.flush();
}
     tab_File<<"\n";
  }
   tab_File.close();
  }
 for(i=0;i<x;i++)
 {
delete [] tab[i];
delete  [] *tab;
 }
}


niedziela, 13 grudnia 2020

pthread_create gcc

 #include <stdio.h>

#include <pthread.h>





int even_Numbers(int value)

{

if(value%2==0)

return 1;

else

return 0;

}

int odd_Numbers(int value)

{

if(value%2!=0)

return 1;

else

return 0;

}

void write_Even(void* sd)

{

int l=1;

while(1)

{

if(even_Numbers(l))

fprintf(stderr,"%d\n",l);

++l;

}

return NULL;

}

void write_Odd(void* sd)

{

int l=1;

while(1)

{

if(odd_Numbers(l))

fprintf(stderr,"%d\n",l);

++l;

}

return NULL;

}

pthread_t new_Thread;

int main()

{

pthread_create(&new_Thread,NULL,&write_Odd,NULL);

while(1)

write_Even(stderr);

return 0;

}

czwartek, 3 grudnia 2020

Right triangles with prime numbers (C++)


#include <iostream>


#define gg 1000

using namespace std;


struct m_Point

{

int x;

int y;

int z;

};

int *TAB1,*TAB2;



bool is_Traingle(int a, int b, int c)

{

bool value=false;

if((a*a)+(b*b)==(c*c))

value=true;

if((a*a)+(c*c)==(b*b)) 

value=true;

if((b*b)+(c*c)==(a*a))

value=true;

return value;

 

}


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;

}


void init_Tab()

{

int i,j;

TAB1=new int[gg];

TAB2=new int[gg];

i=0;

j=2;

do

{

if(is_First(j))

{

TAB1[i]=j;

++i;

}

++j;

}while(i<gg);

i=0;

j=1;

do

{

if(!is_First(j))

{

TAB2[i]=j;

++i;

}

++j;

}while(i<gg);

}

void delete_Tab()

{

delete TAB2;

delete TAB1;

}


int main(int argc, char **argv)

{

int i,j,k,l=0;

init_Tab();

struct m_Point *TR=new struct m_Point[gg];

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

{

TR[i].x=0;

TR[i].y=0;

TR[i].z=0;

    }

   

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

{

   for(j=0;j<gg;j++)

   {

   for(k=0;k<gg;k++)

   {

   if(is_Traingle(TAB1[i],TAB2[j],TAB2[k]))

   {

   TR[l].x=TAB1[i];TR[l].y=TAB2[j];TR[l].z=TAB2[k];

   ++l;

   }

   if(is_Traingle(TAB1[i],TAB1[i],TAB2[k]))

   {

    TR[l].x=TAB1[i];TR[l].y=TAB2[j];TR[l].z=TAB2[k];

   ++l;

   

   }

    if(is_Traingle(TAB1[i],TAB1[i],TAB1[k]))

   {

    TR[l].x=TAB1[i];TR[l].y=TAB2[j];TR[l].z=TAB2[k];

   ++l;

   

   }

   }

   }

}

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

{

cout<<i+1<<") "<<TR[i].x<<" - "<<TR[i].y<<" - "<<TR[i].z<<endl;

}

delete [] TR;

delete_Tab();

return 0;

}




 YOU CAN PAY ME - https://paypal.me/LukaszW77?locale.x=pl_PL

środa, 11 listopada 2020

Writing a StringGrid to a file (C++ Builder)

#include <Grids.hpp>


 void __fastcall TForm1::save_SG(TStringGrid *table,UnicodeString filename)

{

UnicodeString **values;


int i,j,size_x,size_y;

size_x=table->ColCount;

size_y=table->RowCount;

values=new UnicodeString *[size_x];

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

values[i]=new UnicodeString[size_y];

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

for(j=0;j<size_y;j++)

  values[i][j]=table->Cells[i][j];

std::auto_ptr<TStreamWriter> write_Data(new TStreamWriter(filename,false));

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

for(j=0;j<size_y;j++)

  write_Data->WriteLine(values[i][j]);

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


delete [] values[i];

    delete [] values;

}

YOU CAN PAY ME - https://paypal.me/LukaszW77?locale.x=pl_PL

wtorek, 10 listopada 2020

Swap double arrays (C++ - new/delete)

 #include <iostream>

#include <stdlib.h>

#include <time.h>

using namespace std;



void change_Arrays(int** tab1, int** tab2, int m_size)

{

int **temp;

int i,j;

temp=new int *[m_size];

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

temp[i]=new int[m_size];

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

{

for(j=0;j<m_size;j++)

{

temp[i][j]=tab1[i][j];

}

}

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

{

for(j=0;j<m_size;j++)

{

tab1[i][j]=tab2[i][j];

}

}

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

{

for(j=0;j<m_size;j++)

{

tab2[i][j]=temp[i][j];

}

}

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

delete [] temp[i];

delete [] temp;

}


int sum_double_Array(int **tab, int m_size)

{

int i,j,sum;

sum=0;

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

for(j=0;j<m_size;j++)

  sum+=tab[i][j];

return sum;

}

double aver_double_Array(int **tab, int m_size)

{

double aver;

aver=(1.00*sum_double_Array(tab,m_size))/(1.00*m_size);

return aver;

}

int main()

{

srand(time(NULL));

int i,j,k;

int **tab1,**tab2;

int sum1, sum2;

double aver1,aver2;

k=20;

tab1=new int *[k];

tab2=new int *[k];

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

{

tab1[i]=new int[k];

tab2[i]=new int[k];

}

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

{

for(j=0;j<k;j++)

{

tab1[i][j]=rand()%k+1;

tab2[i][j]=rand()%k+1;

}

}

sum1=sum_double_Array(tab1,k);

sum2=sum_double_Array(tab2,k);

aver1=aver_double_Array(tab1,k);

aver2=aver_double_Array(tab2,k);

cout<<"Sum table 1: "<<sum1<<endl;

cout<<"Sum table 2: "<<sum2<<endl;

cout<<"Aver table 1: "<<aver1<<endl;

cout<<"Aver table 2: "<<aver2<<endl;

change_Arrays(tab1,tab2,k);

sum1=sum_double_Array(tab1,k);

sum2=sum_double_Array(tab2,k);

aver1=aver_double_Array(tab1,k);

aver2=aver_double_Array(tab2,k);

cout<<"AFTER CHANGE: \n";

sum1=sum_double_Array(tab1,k);

sum2=sum_double_Array(tab2,k);

aver1=aver_double_Array(tab1,k);

aver2=aver_double_Array(tab2,k);

cout<<"Sum table 1: "<<sum1<<endl;

cout<<"Sum table 2: "<<sum2<<endl;

cout<<"Aver table 1: "<<aver1<<endl;

cout<<"Aver table 2: "<<aver2<<endl;

change_Arrays(tab1,tab2,k);

sum1=sum_double_Array(tab1,k);

sum2=sum_double_Array(tab2,k);

aver1=aver_double_Array(tab1,k);

aver2=aver_double_Array(tab2,k);

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

{

delete [] tab2[i];

delete [] tab1[i];

}

delete [] tab2;

delete [] tab1;

return 0;

}

YOU CAN PAY ME - https://paypal.me/LukaszW77?locale.x=pl_PL