Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабы по МПО / Sissy_Metr / frfe / 2 / LAB22C
.TXT
Turbo Profiler Version 2.1 Tue Mar 30 13:50:13 2004
Program: D:\BORLANDC\BIN\LAB.EXE File METROL~1\LAB.CPP
Time Counts
#include <iostream.h>
#include <conio.h>
#define rmax 5
#define cmax 5
typedef float ary[ rmax ];
typedef float arys[ cmax ];
typedef float ary2[ rmax ][ cmax ];
typedef float ary2s[ cmax ][ cmax ];
ary y;
arys g;
ary2 x;
ary2s a;
int nrow,ncol;
0.0000 1 void get_data( ary2 x, ary y, int &nrow, int &ncol)
// get the values for nrow, ncol, and arrays x,y
{
int i,j,s;
0.0000 1 nrow = 2; // this value can be chaged
0.0000 1 ncol = 2;
0.0000 1 for ( i = 0; i < nrow ; i++)
{
0.0000 2 x[i][0] = 1;
0.0000 2 for ( j = 1; j < ncol ; j++)
0.0000 2 x[i][j] = i * x[i][j-1];
0.0000 2 s = i+1;
0.0000 2 y[i] = 2 * s;
}
0.0000 1 } // procedure get_data
0.0000 1 void write_data()
// print out the answeres
{
int i,j;
// clrscr();
/* cout <<"\n";
cout <<"\n X Y\n\n\n";*/
0.0000 1 for ( i = 0; i < nrow ; i++)
{
0.0000 2 for ( j = 0; j < ncol ; j++)
{}
/* cout <<x[i][j] <<" ";
cout <<": "<<y[i] <<"\n\n\n";*/
}
Turbo Profiler Version 2.1 Tue Mar 30 13:50:13 2004
/* cout <<"\n\n A G\n\n\n";*/
0.0000 1 for ( i = 0; i < ncol ; i++)
{
0.0000 2 for ( j = 0; j < ncol ; j++)
{ }
/* cout << a[i][j]<<" ";
cout <<": " << g[i] <<"\n\n\n";*/
}
0.0000 1 }// write_data
0.0000 1 void square(ary2 x,
ary y,
ary2s a,
arys g,
int nrow,
int ncol)
//matrix multiplication routine
// a= transpose x times x
// g= y times x
{
int i,k,l;
// square
0.0000 1 for ( k = 0; k < ncol ; k++)
{
0.0000 2 for ( l = 0; l < k ; l++)
{
0.0000 1 a[k][l] = 0;
0.0000 1 for ( i = 0; i < nrow ; i++)
{
0.0000 2 a[k][l] = a[k][l] + x[i][l] * x[i][k];
0.0000 2 if (k != l) a[l][k] = a[k][l];
}
} // l-loop
0.0000 2 g[k] = 0;
0.0000 2 for ( i = 0; i < nrow ; i++)
{
0.0000 4 g[k] = g[k] + y[i] * x[i][k];
}
} // k-loop
0.0000 1 } // square
void main()
{
0.0000 1 get_data(x,y,nrow,ncol);
0.0000 1 square(x,y,a,g,nrow,ncol);
0.0000 1 write_data();
// getch();
0.0009 1 }