Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
mariacatz
1 / 1 / 0
Регистрация: 06.12.2014
Сообщений: 37
#1

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

17.12.2014, 15:44. Просмотров 842. Ответов 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#: верхнеугольная, нижнетреугольная и диагональная матрицы
Задание: Сформировать из некоторой матрицы А(n,n) верхнеугольную матрицу...

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

Определить тип матрицы: диагональная, единичная, нулевая, матрица общего вида
Определить тип заданной квадратной матрицы А(n;m): диагональная, единичная,...

Диагональная матрица
Пожалуйста, помогите написать код. Нужно создать диагональную матрицу размера...

5
Scythian
58 / 58 / 12
Регистрация: 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 / 12
Регистрация: 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

Диагональная матрица
Здравствуйте, столкнулся с такой задачей, нужно сделать диагональную матрицу из...

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

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


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

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

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