• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Матрицы С++

  • Автор темы Автор темы Geneva
  • Дата начала Дата начала

Geneva

Ученик
Регистрация
17 Ноя 2012
Сообщения
1
Реакции
0
Баллы
0
Матрицы С++

Доброго времени суток.
Нуждаюсь в вашей помощи. :tehnari_ru_837: Помогите пожалуйста дополнить комментарии к программе. Комментарии уже имеются, но как оказалось нужно по максимуму описать программу
Код:
#include <iostream>
int main()
{
int a[2][2]; int b[2][2]; int r[2][2];
a[0][0]=1;
a[0][1]=1;
a[1][0]=1;
a[1][1]=0;

b[0][0]=1;
b[0][1]=0;
b[1][0]=0;
b[1][1]=1;

int n=5;				     // объявляем n, n- степень возведения
r[0][0]=0;
r[0][1]=0;
r[1][0]=0;
r[1][1]=0;

cout << r;
  while ( n != 0 )                           // до тех пор пока n не равно 0
  {
   if (n%2==0)                               // если n - четное
   { cout <<"then";
     n=n/2;                                  // делим n на 2
     for (int i=0; i<2; ++i)                      
     {                                       // возводим матрицу а в квадрат
       for (int j=0; j<2; ++j)
        { 
          int s=0;        
          for (int l=0; l<2; ++l)            //  параметр возрастания
           {          
             s+=a[i][l]* a[l][j];
           }
             r[i][j]=s;                      // помещаем результат в r
        }
     } 
for (int i=0; i<2; ++i)                      // происходит обновление a
     {
       for (int j=0; j<2; ++j)
        { 
         a[i][j]=r[i][j]; 
        }
     }
   }   
else                                         // в противном случае, когда n - нечетно
{ cout <<"else";
  n=n-1;                                     // производим вычитание n-1
  for (int i=0; i<2; ++i)
   {                                         // перемножаем b и a
     for (int j=0; j<2; ++j)
      { 
        int s=0;        
        for (int l=0; l<2; ++l)
          {          
           s+=b[i][l]* a[l][j];
          }
           r[i][j]=s;                        // результат опять помещаем в r
          
      }
   }
 
for (int i=0; i<2; ++i)                      // теперь происходит обновление b
     {                                                 
       for (int j=0; j<2; ++j)
        { 
         b[i][j]=r[i][j]; 
        }
     }   
  }

}
 
cout<<b;                                     // выводим конечный результат b 
}
 
Назад
Сверху