Практикум по курсу "Алгоритмизация и программирование". Часть 2. Андрианова А.А - 18 стр.

UptoLike

А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова .
b[i]=new float[n];
if(b[i]==NULL)
{
for(j=0; j<i; j++)
delete [] b[j];
delete [] b;
return false;
}
}
// вначале матрица b совпадает с матрицей a
// в первой степени
for(i=0;i<n;i++)
for(j=0;j<n;j++)
b[i][j]=a[i][j];
// возведение в степень матрицы a
for(k=0;k<p-1;k++)
{
//вызов функции перемножения двух матриц
MatrixProduct(n,a,b,c);
// сохранение результата перемножения в матрице b
for(i=0;i<n;i++)
for(j=0;j<n;j++)
b[i][j]=c[i][j];
}
for(i=0;i<n;i++)
delete [] b[i];
delete [] b;
return true;
}
// определение функции перемножения двух квадратных матриц
void MatrixProduct(int n, float**a,float**b,float**c)
{
int i,j,k;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
c[i][j]=0;
for(k=0;k<n;k++)
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}
}
Задача 4. Дана прямоугольная матрица. Написать функцию удаления из
этой матрицы строк, содержащих только нулевые элементы.
Рассмотрим первый вариант решения этой задачи, когда создается новая
18
А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова                  .
                   b[i]=new float[n];
                   if(b[i]==NULL)
                   {
                        for(j=0; j