#include <iostream>
#include <ctime>
using namespace std;
double &put(int i, int j);
double get(int i, int j);
const int n=5, m=7;
double a[n][m];
double error = -1;
int main()
{
setlocale(LC_ALL, "Russian");
int start,end;
double max;
//нерегистровые переменые
start=clock();
for (int i=0;i<n;i++)
{
for (int j=0;j<m;j++)
put(i,j)=rand()%10;
}
cout <<"матрица А1:"<<endl;
for (int i=0;i<n;i++)
{
for (int j=0;j<m;j++)
{
cout <<get(i,j)<<" ";
}
cout <<endl;
}
max=get(0,0);
for (int i=0;i<n;i++)
{
for (int j=0;j<m;j++)
if (get(i,j)>max) max=get(i,j);
}
//деление на max
for (int i=0;i<n;i++)
{
for (int j=0;j<m;j++)
put(i,j)=get(i,j)/max;
}
cout <<"Новая матрица А1:"<<endl;
for (int i=0;i<n;i++)
{
for (int j=0;j<m;j++)
{
cout <<get(i,j)<<" ";
}
cout <<endl;
}
end=clock();
cout <<"Время выполнения: "<<end-start<<endl;
//регистровые переменные
register int i2;
register int j2;
register double max2;
register long start2,end2;
start2=clock();
for (i2=0;i2<n;i2++)
{
for (j2=0;j2<m;j2++)
put(i2,j2)=rand()%10;
}
cout <<"матрица А1:"<<endl;
for (i2=0;i2<n;i2++)
{
for (j2=0;j2<m;j2++)
{
cout <<get(i2,j2)<<" ";
}
cout <<endl;
}
max2=get(0,0);
for (i2=0;i2<n;i2++)
{
for (j2=0;j2<m;j2++)
if (get(i2,j2)>max2) max2=get(i2,j2);
}
//деление на max
for (i2=0;i2<n;i2++)
{
for (j2=0;j2<m;j2++)
put(i2,j2)=get(i2,j2)/max2;
}
cout <<"Новая матрица А1:"<<endl;
for (i2=0;i2<n;i2++)
{
for (j2=0;j2<m;j2++)
{
cout <<get(i2,j2)<<" ";
}
cout <<endl;
}
end2=clock();
cout <<"Время выполнения с регистровыми переменными: "<<end2-start2<<endl;
system("pause");
return 0;
}
double &put(int i, int j)
{
if((i>=0) && (i<n) && (j>=0) && (j<m))
return a[i][j];
else
{
cout << "Ошибка нарушения границ!\n";
return error;
}
}
double get(int i, int j)
{
if((i>=0) && (i<n) && (j>=0) && (j<m))
return a[i][j];
else
{
cout << "Ошибка нарушения границ!\n";
return error;
}
}
|