17.11.2012, 01:16 | #1 (permalink) |
Новичок
Регистрация: 17.11.2012
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Матрицы С++
Нуждаюсь в вашей помощи. Помогите пожалуйста дополнить комментарии к программе. Комментарии уже имеются, но как оказалось нужно по максимуму описать программу Код:
#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 } |
17.11.2012, 01:16 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Очень важно почитать схожие темы, возможно, что там уже есть нужный вам ответ Матрицы и строки Матрицы в С++ Задача на матрицы Задачи на матрицы Матрицы |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|