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

UptoLike

. Практикум по курсу «Алгоритмизация и программирование». Часть 2
scanf("%f",&a[i][j]);
while(true)
{
printf("Введите степень p:");
scanf("%d", &p);
if(p<=0)
printf("Введите положительную степень.\n");
else break;
}
// вызов функции возведения матрицы a в степень p
// результат записывается в матрицу c
bool f=MatrixPower(n,a,p,c);
if(f==false)
{
printf("Произошла системная ошибка.\n");
return;
}
printf("Полученная матрица:\n");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%f\t",c[i][j]);
printf("\n");
}
for(i=0;i<n;i++)
{
delete [] a[i];
delete [] c[i];
}
delete [] a;
delete [] c;
}
// определение функции возведения матрицы в степень
bool MatrixPower(int n, float**a, int p, float** c)
{
int i,j,k;
float** b; // вспомогательная матрица, в которой
// запоминается результат возведения матрицы
// a в промежуточную степень, меньшую p
b=new float*[n];
if(b==NULL)
return false;
for(i=0;i<n;i++)
{
17
       .      Практикум по курсу «Алгоритмизация и программирование». Часть 2
               scanf("%f",&a[i][j]);
     while(true)
     {
          printf("Введите степень p:");
          scanf("%d", &p);
          if(p<=0)
               printf("Введите положительную степень.\n");
          else break;
     }
     // вызов функции возведения матрицы a в степень p
     // результат записывается в матрицу c
     bool f=MatrixPower(n,a,p,c);
     if(f==false)
     {
          printf("Произошла системная ошибка.\n");
          return;
     }
     printf("Полученная матрица:\n");
     for(i=0;i