#include <string.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <fstream>
#define min_S 10
#define max_S 1000
using namespace std;
struct date_Tab
{
int min_T;
int max_T;
int sum_T;
double aver_T;
};
fstream file_Tab,file_Report;
string name_Files[2]={"f_Tab.txt","f_Report.txt"};
int** main_Tab;
int first_Values[max_S];
void sort_Tab(int* tab, int size_Tab)
{
int i,j,k;
for(i=1;i<size_Tab;i++)
{
j=i;
k=tab[j];
while((j>0) && (tab[j-1]>k))
{
tab[j]=tab[j-1];
j--;
}
tab[j]=k;
}
}
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 write_first_Tab()
{
int i,j;
i=0;
j=2;
do
{
if(is_First(j))
{
first_Values[i]=j;
++i;
}
++j;
}while(i<max_S);
}
int sum_Tab(int* tab, int size_T)
{
int i,sum=0;
for(i=0;i<size_T;i++)
sum+=tab[i];
return sum;
}
double aver_Tab(int* tab, int size_T)
{
double aver;
aver=(1.00*sum_Tab(tab,size_T))/(1.00*size_T);
return aver;
}
int min_Tab(int* tab, int size_T)
{
int i,min_T;
min_T=tab[0];
for(i=1;i<size_T;i++)
if(min_T>tab[i])
min_T=tab[i];
return min_T;
}
int max_Tab(int* tab, int size_T)
{
int i,max_T;
max_T=tab[0];
for(i=1;i<size_T;i++)
if(max_T<tab[i])
max_T=tab[i];
return max_T;
}
int main()
{
int i,j,k;
struct date_Tab* values_Tab=new struct date_Tab[max_S];
main_Tab=new int *[max_S];
for(i=0;i<max_S;i++)
main_Tab[i]=new int[min_S];
srand(time(NULL));
write_first_Tab();
i=0;
do
{
for(j=0;j<min_S;j++)
{
k=rand()%max_S;
main_Tab[i][j]=first_Values[k];
}
++i;
}while(i<max_S);
for(i=0;i<max_S;i++)
sort_Tab(main_Tab[i],min_S);
for(i=0;i<max_S;i++)
{
values_Tab[i].min_T=min_Tab(main_Tab[i],min_S);
values_Tab[i].max_T=max_Tab(main_Tab[i],min_S);
values_Tab[i].sum_T=sum_Tab(main_Tab[i],min_S);
values_Tab[i].aver_T=aver_Tab(main_Tab[i],min_S);
}
file_Tab.open(name_Files[0].c_str(),ios::out);
for(i=0;i<max_S;i++)
{
for(j=0;j<min_S;j++)
{
file_Tab<<main_Tab[i][j]<<" ";
}
file_Tab<<"\n";
}
file_Tab.close();
file_Report.open(name_Files[1].c_str(),ios::out);
for(i=0;i<max_S;i++)
{
file_Report<<values_Tab[i].min_T<<" "<<values_Tab[i].max_T<<" "
<<values_Tab[i].sum_T<<" "<<values_Tab[i].aver_T;
file_Report<<"\n";
}
file_Report.close();
for(i=0;i<max_S;i++)
delete[] main_Tab[i];
delete [] main_Tab;
delete [] values_Tab;
getch();
return 0;
}
YOU CAN PAY ME - https://paypal.me/LukaszW77?locale.x=pl_PL
Brak komentarzy:
Prześlij komentarz