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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Fantasmaforia
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 48
#1

Привести заданную квадратную матрицу к виду - C++

10.12.2013, 20:43. Просмотров 411. Ответов 12
Метки нет (Все метки)

Привести заданную квадратную матрицу к такому виду, чтобы все элементы ниже главной диагонали были нулевыми.
В универе нас программированию не учат, поступал с физикой, а требуют программировать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2013, 20:43     Привести заданную квадратную матрицу к виду
Посмотрите здесь:

C++ Как привести матрицу к верхнему треугольному виду? С++ (Имеется код нахождения нижней треуг. матрицы)
C++ Как привести матрицу к треугольному виду по методу гауса?
C++ Задача: привести матрицу к треугольному виду
Как привести матрицу к треугольному виду C++
C++ Привести матрицу 3 на 3 к диагональному виду
C++ Двумерные массивы (СЛАУ). Привести систему к треугольному виду
C++ Привести матрицу к треугольному виду
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
10.12.2013, 21:01     Привести заданную квадратную матрицу к виду #2
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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
    const int arraySize = 5;
    int arrayOfIntegers[ arraySize ][ arraySize ] = { 0 };
 
    for ( int i = 0; i < arraySize; i++ )
    {
         for ( int j = i; j < arraySize; j++ )
         {
              arrayOfIntegers[ i ][ j ] = 1 + rand() % 50;
         }
    }
 
    for ( int row = 0; row < arraySize; row++ )
    {
         for ( int column = 0; column < arraySize; column++ )
         {
             cout << arrayOfIntegers[ row ][ column ] << " ";
         }
         
         cout << endl;
     }
 
     return 0;
}
Fantasmaforia
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 48
10.12.2013, 21:32  [ТС]     Привести заданную квадратную матрицу к виду #3
Спасибо!
Но вот смотрите, получается, что матрица уже задана, но есть ли возможность сделать так, чтобы размеры квадратной матрицы задавались мною в консоли, через присвоение значения переменной с помощью cin >> ?

Добавлено через 13 минут
Хотя не, спасибо, все и так здорово
StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
10.12.2013, 21:36     Привести заданную квадратную матрицу к виду #4
Fantasmaforia, размер матрицы должен быть const. А конст инициализируется один раз при создании. Хотите плавающую размерность, используйте динамическое выделение памяти
C++
1
2
3
4
5
6
7
8
....
cin >> n;
int ** arrayOfIntegersPtr = new int * [ n ];
 
for ( int i = 0; i < n; i ++ )
{
    arrayOfIntegers[ i ] = new int [ n ];
}
zss
Модератор
Эксперт С++
6185 / 5788 / 1874
Регистрация: 18.12.2011
Сообщений: 14,784
Завершенные тесты: 1
10.12.2013, 21:41     Привести заданную квадратную матрицу к виду #5
Это называется метод Гаусса.
1.Начинаете с последней строки. Умножаете ее на такой коэффициент, что числа в первом столбце
у двух последних строк одинаковые.
2.Вычитаете из последней предпоследнюю.
3.Так делаете со всеми строками. Получите нули в первом столбце.
4.Повторяете для следующих столбцов.
Fantasmaforia
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 48
10.12.2013, 22:01  [ТС]     Привести заданную квадратную матрицу к виду #6
А можете подробнее написать, куда именно этот код вставлять? Потому что я когда пытаюсь его вставить и компилировать, то пишет, что идентификатор arrayOfIntegers[ i ] не определен
zss
Модератор
Эксперт С++
6185 / 5788 / 1874
Регистрация: 18.12.2011
Сообщений: 14,784
Завершенные тесты: 1
10.12.2013, 22:11     Привести заданную квадратную матрицу к виду #7
Во втором посте написано объявление
C++
1
    int arrayOfIntegers[ arraySize ][ arraySize ] = { 0 };
Fantasmaforia
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 48
10.12.2013, 22:25  [ТС]     Привести заданную квадратную матрицу к виду #8
он выдает ошибку, не определяет
error C2065: arrayOfIntegers: необъявленный идентификатор
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
int main()
{
    int arraySize;
 
    cin >> arraySize;
int ** arrayOfIntegersPtr = new int * [ arraySize ];
 
for ( int i = 0; i < arraySize; i ++ )
{
    arrayOfIntegers[ i ] = new int [ arraySize ];
}
 
    for ( int i = 0; i < arraySize; i++ )
    {
         for ( int j = i; j < arraySize; j++ )
         {
              arrayOfIntegers[ i ][ j ] = 1 + rand() % 200;
         }
    }
 
    for ( int row = 0; row < arraySize; row++ )
    {
         for ( int column = 0; column < arraySize; column++ )
         {
             cout << arrayOfIntegers[ row ][ column ] << " ";
         }
         
         cout << endl;
     }
 
     return 0;
}
StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
10.12.2013, 22:29     Привести заданную квадратную матрицу к виду #9
Fantasmaforia, arrayOfIntegersPtr, поправьте везде, пожалуйста.
Fantasmaforia
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 48
10.12.2013, 22:39  [ТС]     Привести заданную квадратную матрицу к виду #10
Теперь, после открытия консоли и ввода размеров, он просто выдает ошибку, что программа прекратила свою работу
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
int main()
{
     int arraySize;
     cout << "vvedite razmer \n";
    cin >> arraySize;
int ** arrayOfIntegers = new int * [ arraySize ];
 
for ( int i = 0; i < arraySize; i ++ )
{
    arrayOfIntegers[ i ] = new int [ arraySize ];
 
 
    for ( int i = 0; i < arraySize; i++ )
    {
         for ( int j = i; j < arraySize; j++ )
         {
              arrayOfIntegers[ i ][ j ] = 1 + rand() % 10;
         }
    }
 
    for ( int row = 0; row < arraySize; row++ )
    {
         for ( int column = 0; column < arraySize; column++ )
         {
             cout << arrayOfIntegers[ row ][ column ] << " ";
         }
         
         cout << endl;
     }
}
     return 0;
}
StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
10.12.2013, 22:55     Привести заданную квадратную матрицу к виду #11
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
int main()
{
     int arraySize;
 
     cout << "vvedite razmer \n";
     cin >> arraySize;
 
     int ** arrayOfIntegers = new int * [ arraySize ];
 
     for ( int i = 0; i < arraySize; i++ )
    {
         arrayOfIntegers[ i ] = new int [ arraySize ];
 
         for ( int j = 0; j < arraySize; j++ )
         {
              arrayOfIntegers[ i ][ j ] = 0;
         }
     }
 
 
    for ( int i = 0; i < arraySize; i++ )
    {
         for ( int j = i; j < arraySize; j++ )
         {
              arrayOfIntegers[ i ][ j ] = 1 + rand() % 10;
         }
    }
 
    for ( int row = 0; row < arraySize; row++ )
    {
         for ( int column = 0; column < arraySize; column++ )
         {
             cout << arrayOfIntegers[ row ][ column ] << " ";
         }
         
         cout << endl;
    }
 
    for ( int i = 0; i < arraySize; i++ )
    {
        delete [] arrayOfIntegers[ i ];
    }
 
     delete [] arrayOfIntegers;
 
     return 0;
}
Добавлено через 9 минут
Ну и в завершение напомню, чтобы вы не забыли подключить все неоходимые бибилотеки, которые вы можете найти в первом примере. А для того, чтобы каждый раз массив заполнялся по-новому, добавьте в самом начале функцию следующего вида:
C++
1
srand( time( 0 ) );
Fantasmaforia
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 48
10.12.2013, 23:18  [ТС]     Привести заданную квадратную матрицу к виду #12
Спасибо огромное!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2013, 23:22     Привести заданную квадратную матрицу к виду
Еще ссылки по теме:

Привести вектор к треугольному виду C++
Зеркально отразить заданную квадратную матрицу относительно побочной диагонали C++
C++ Привести матрицу к треугольному виду Гауссом (не могу найти работающий код)
C++ Заполнить заданную квадратную матрицу по спирали числами 0 и 1
C++ Используя метод выбора, упорядочить по убыванию заданную квадратную матрицу

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
StackOverflow
All rights reserved.
91 / 81 / 5
Регистрация: 03.08.2013
Сообщений: 258
10.12.2013, 23:22     Привести заданную квадратную матрицу к виду #13
Оффтоп
Fantasmaforia, не за что, обращайтесь!
Yandex
Объявления
10.12.2013, 23:22     Привести заданную квадратную матрицу к виду
Ответ Создать тему
Опции темы

Текущее время: 18:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru