Форум программистов, компьютерный форум CyberForum.ru

Дана квадратная матрица [3][3]. Вычислить n-ую степень этой матрицы с помощью рекурсивной функции. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Неубывающая последовательность. http://www.cyberforum.ru/cpp-beginners/thread110825.html
Написать и протестировать функцию, которая определяет, образуют ли элементы целочисленного массива неубывающую последовательность. Функция возвращает NULL, если всё в порядке, или индекс первого элемента массива, на котором условие нарушается. Необходима эта задача, точнее как выглядит решение. Вот нашёл как она пишется на С#. Есть ли человек, который сможет мне перевести её с этого языка на...
C++ Строки и числа в функциях. Народ, вот упражняюсь в написании функций (самая больная тема). Не могли бы вы мне помочь в решении следующих задач на языке Си? Хочу сделать себе парочку шаблонов, для будущих решений. Заранее всем спасибо! 1)Написать и протестировать функцию, которая определяет, является ли симметричной заданная символьная строка. 2)Написать и протестировать функцию, которая по заданному натуральному... http://www.cyberforum.ru/cpp-beginners/thread110821.html
C++ Динамические массивы
помогите,пожалуйста,над срочно написать прогу))))буду оч благодарна)))))))) 1. Сформировать динамический одномерный массив, заполнить его случайными числами и вывести на печать. 2. Выполнить указанное в варианте задание и вывести полученный массив на печать. 3. Сформировать динамический двумерный массив, заполнить его случайными числами и вывести на печать. 4. Выполнить указанное в варианте...
Квадрат - перезагрузка операторов C++
Написал по заданию программу и выдает 1 ошибку, разъясните как ее исправить. Пишу в VS 2008 professional. Покажите пожалуйста как правильно в подправленном коде уже. Задание: 1. Квадрат: координаты вершин, конструктор по умолчанию, конструктор с параметрами, конструктор копирования, методы вычисления площади и периметра, метод выведения квадрата, перегрузки операторов деления, присвоения,...
C++ перестановка в матрице visual studio http://www.cyberforum.ru/cpp-beginners/thread110807.html
помогите пожалуйста написать программу: дана целочисленная матрица m*n. найти матрицу, получающуюся из данной 1)перестановкой столбцов - первого с последним, второго с предпоследним и т.д 2)перестановкой строк - первого с последним, второго с предпоследним и т.д
C++ вычислить макс число из цыкла у меня есть такой код мне нада вычислить Максимальное число "y" запарилса уже думать может вы что подскажыте ? #include<iostream.h> #include<conio.h> #include<math.h> void main() { clrscr(); float a=0,b=6 ,h=0.6,x,q,y; подробнее

Показать сообщение отдельно
UKOL
 Аватар для UKOL
112 / 64 / 7
Регистрация: 17.11.2009
Сообщений: 258
01.04.2010, 10:25     Дана квадратная матрица [3][3]. Вычислить n-ую степень этой матрицы с помощью рекурсивной функции.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <iostream>
#include <iomanip>
 
int stepen(int [][3],int,int[][3]);
 
int main()
{   
    setlocale(LC_ALL, "Russian");
    const int n=3;//размер массива 3
    int massiv[n][n]={0};//двумерный массив размером 3 на 3, все числа 0
    int matrix[n][n]={0};
    
    //ввод чисел в массив
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            std::cout << "Введите [" << i+1 << "][" << j+1 << "] элемет матрицы: ";
            std::cin >> massiv[i][j];
        }
        std::cout << std::endl;
    }
 
    //вывод на экран массива
    std::cout << "Начальная матрица: " << std::endl;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            std::cout << std::setw(5) << massiv[i][j];
        }
        std::cout << std::endl << std::endl;
    }
    
    //возведение матрицы в степень
    int number=0,flag=0;
    std::cout << "В какую степень возвести матрицу?" << std::endl;
    std::cin >> number;
    stepen(massiv,number,matrix);
 
    //вывод на экран массива возведенного в степень
    std::cout << "Матрица возведенная в степень: " << std::endl;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            std::cout << std::setw(5) << matrix[i][j];
        }
        std::cout << std::endl << std::endl;
    }
 
    return 0;
}
 
int stepen(int massivS[][3],int numberS, int matrixS[][3])
{   
    if(numberS<=1)
        return 1;
    
    for(int i=0; i<3; i++)
    {
        for(int j=0; j<3; j++)
        {
            for(int k=0;k<3;k++)
            {
                matrixS[i][j]+=massivS[i][k]*massivS[k][j];
            }
        }
    }
    return stepen(massivS,numberS-1,matrixS);
}
 
Текущее время: 09:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru