Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Диагональная форма матрицы - C++

17.12.2014, 15:44. Просмотров 626. Ответов 5
Метки нет (Все метки)

Диагональная матрица-матрица,в которой по диагонали стоят не нули,а вне диагонали нули.
В программе я пытаюсь обнулять элемент,не стоящий по диагонали,не равный 0,один за одним,начиная с последней строки первого столбца(как обычно делаем на линейке) путем отнимания строки,в которой находится элемент диагональный.
Короче говоря,не могу дописать программу,и если кто-то предложит альтернативное преобразование матрицы к диагональному виду,или подскажет,как доработать прогу,буду очень счастлива.


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
/*Написать функцию, которая из исходной квадратной матрицы формирует диагональную матрицу*/
 
#include "stdafx.h"
#include "conio.h"
#define n 3
void F(int M[n][n])
{
    
    for (int j = 0; j < n; j++)
    for (int i = n-1; i >=0; i--)
    if (i != j)//обнулять если не число по диагонали
    while (M[i][j] != 0) {//пока число не 0
        
        if (M[i][j]>0)//если + то отнимаем i=j
    
            M[i][j] = M[i][j] - M[j][j];
            
                else
            M[i][j] = M[i][j] + M[j][j];//если - то складываем,тобы получить 0
 
                               }
}
 
    int main()
{
    int M[n][n];
    for (int i = 0; i < n;i++)
    for (int j = 0; j < n; j++)
        scanf("%i",&M[i][j]);//ввожу матрицу
    F(M);
    for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++)
        printf("%i", M[i][j]);//вывод матрицы
    getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2014, 15:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Диагональная форма матрицы (C++):

Жорданова форма матрицы - C++
Всех приветствую. Решая задачу приведения матрицы к жордановой форме и нахождения преобразующей матрицы , наткнулся на такую сложность -...

Алгоритм, который для матрицы возвращает 0, если матрица не диагональная - MathCAD
Нужно написать алгоритм для маткада, который для матрицы 2х2 возвращает 0, если матрица не диагональная, иначе (если диагональная)...

Диагональная матрица - Pascal ABC
Пожалуйста, помогите написать код. Нужно создать диагональную матрицу размера NxN. 1. Заполнить из случайной последовательностью чисел и...

Квази диагональная матрица - Pascal
Нужно заполнить вектор случайными десятичными числами вывести вектор на экран затем из этого вектора вывести на экран квази диагональную...

Диагональная закраска прямоугольника - Pascal
Напишите программу для диагональной закраски прямоугольника на экране (последовательность закраски показана на рисунке). Не понял как это...

Диагональная полоса при движении - Видеокарты
Помогите пожалуйста. Очень часто в современных играх в момент перемещения обзора (мышкой поворачиваешь например), появляется непонятная...

5
Scythian
58 / 58 / 8
Регистрация: 01.01.2010
Сообщений: 222
17.12.2014, 16:31 #2
А не проще сделать так:
C++
1
2
3
4
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
if((i!=j)&&(j!=(n-1)-i))
M[i][j]=0;
1
mariacatz
1 / 1 / 0
Регистрация: 06.12.2014
Сообщений: 37
17.12.2014, 16:40  [ТС] #3
Если я правильно поняла,вы присваиваете элементу 0,если он не по диагонали,но мне то нужно привести матрицу к такому виду путем элементарных преобразований?
0
Scythian
58 / 58 / 8
Регистрация: 01.01.2010
Сообщений: 222
17.12.2014, 16:43 #4
Ну так сразу нужно писать про такие вещи)
0
mariacatz
1 / 1 / 0
Регистрация: 06.12.2014
Сообщений: 37
17.12.2014, 17:00  [ТС] #5
короче ложу 50 рублей на счет на телефон,если кто доработает/напишет? прогу
0
mariacatz
1 / 1 / 0
Регистрация: 06.12.2014
Сообщений: 37
04.01.2015, 22:13  [ТС] #6
Тема уже не актуальна
0
04.01.2015, 22:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2015, 22:13
Привет! Вот еще темы с ответами:

диагональная линия через css - HTML, CSS
как сделать? С обычным набором опций - пунктир, точечная или обычная, но чтобы по диагонали. Вот как тут Добавлено через 16 минут ...

Диагональная матрица, метод, алгоритм. - Алгебра
Задали задачку на с++, один из пунктов которой привести считанную квадратную матрицу к диагональному виду. Максимум что получалось умного -...

Форма 1 вызывает форму 2, форма 2 закрывается, форма 1 продолжает работать дальше - C#
Вынес предстартовые действия формы1 в форму2 (там у меня проверка существования файлов, их закачка если нету и проверка обновления), но как...

Жорданова форма матрицы - Алгебра
Дана матрица A: 1 -6 3 -6 36 -18 3 -18 9 Нашел собственные числа: \lambda^2(\lambda -46) = 0 \lambda1 = 0 \lambda2 = 0 ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru