Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 48

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

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

Студворк — интернет-сервис помощи студентам
Привести заданную квадратную матрицу к такому виду, чтобы все элементы ниже главной диагонали были нулевыми.
В универе нас программированию не учат, поступал с физикой, а требуют программировать
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.12.2013, 20:43
Ответы с готовыми решениями:

Привести матрицу 3 на 3 к диагональному виду
Всем добрый вечер, начал изучать С++. Хочу привести матрицу 3 на 3 к диагональному виду методом Гаусса, но почему-то считает неправильно....

Привести матрицу к треугольному виду
Написать программу для работы с динамическим целочисленным двумерным массивом, который содержит системы линейных уравнений. Количество...

Привести матрицу к треугольному виду
Коэффициенты системы линейных уравнений заданы в виде прямоугольной матрицы. С помощью допустимых преобразований привести систему к...

12
All rights reserved.
93 / 83 / 24
Регистрация: 03.08.2013
Сообщений: 258
10.12.2013, 21:01
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;
}
1
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 48
10.12.2013, 21:32  [ТС]
Спасибо!
Но вот смотрите, получается, что матрица уже задана, но есть ли возможность сделать так, чтобы размеры квадратной матрицы задавались мною в консоли, через присвоение значения переменной с помощью cin >> ?

Добавлено через 13 минут
Хотя не, спасибо, все и так здорово
0
All rights reserved.
93 / 83 / 24
Регистрация: 03.08.2013
Сообщений: 258
10.12.2013, 21:36
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 ];
}
1
Модератор
Эксперт С++
 Аватар для zss
13772 / 10965 / 6491
Регистрация: 18.12.2011
Сообщений: 29,242
10.12.2013, 21:41
Это называется метод Гаусса.
1.Начинаете с последней строки. Умножаете ее на такой коэффициент, что числа в первом столбце
у двух последних строк одинаковые.
2.Вычитаете из последней предпоследнюю.
3.Так делаете со всеми строками. Получите нули в первом столбце.
4.Повторяете для следующих столбцов.
1
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 48
10.12.2013, 22:01  [ТС]
А можете подробнее написать, куда именно этот код вставлять? Потому что я когда пытаюсь его вставить и компилировать, то пишет, что идентификатор arrayOfIntegers[ i ] не определен
0
Модератор
Эксперт С++
 Аватар для zss
13772 / 10965 / 6491
Регистрация: 18.12.2011
Сообщений: 29,242
10.12.2013, 22:11
Во втором посте написано объявление
C++
1
    int arrayOfIntegers[ arraySize ][ arraySize ] = { 0 };
1
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 48
10.12.2013, 22:25  [ТС]
он выдает ошибку, не определяет
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;
}
0
All rights reserved.
93 / 83 / 24
Регистрация: 03.08.2013
Сообщений: 258
10.12.2013, 22:29
Fantasmaforia, arrayOfIntegersPtr, поправьте везде, пожалуйста.
1
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 48
10.12.2013, 22:39  [ТС]
Теперь, после открытия консоли и ввода размеров, он просто выдает ошибку, что программа прекратила свою работу
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;
}
0
All rights reserved.
93 / 83 / 24
Регистрация: 03.08.2013
Сообщений: 258
10.12.2013, 22:55
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 ) );
1
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 48
10.12.2013, 23:18  [ТС]
Спасибо огромное!
0
All rights reserved.
93 / 83 / 24
Регистрация: 03.08.2013
Сообщений: 258
10.12.2013, 23:22
Оффтоп
Fantasmaforia, не за что, обращайтесь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.12.2013, 23:22
Помогаю со студенческими работами здесь

Задача: привести матрицу к треугольному виду
Блин, я никак не разберусь, может тут кто знает? Задание: Дана квадратная матрица размера m*n. С помощью допустимых преобразований...

Как привести матрицу к треугольному виду
Нужно привести матрицу к треугольному виду, можно написать прогу , а то какие нашел не работают ни черта

Как привести матрицу к треугольному виду по методу гауса?
Может у кого есть прога? Нужна срочно!

Привести матрицу к треугольному виду Гауссом (не могу найти работающий код)
Нужен код для приведения матрицы к треугольному виду (матрица статическая, целочисленная). Пробовал гуглить, в том числе и тут....

Заполнить заданную квадратную матрицу по спирали числами 0 и 1
Всем привет! Поставили передо мной следующую задачу: Написать программу, которая заполняет матрицу NxN (1 &lt;= N &lt;= 50) числами 1 и...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru