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

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

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

дана квадратичная матрица z[n][n]. составить программу, которая если матрица симметричная(транспонированная матрица равна исходной), сделает ее не сим - C++

16.01.2014, 13:27. Просмотров 808. Ответов 4
Метки нет (Все метки)

помогите пожалуйста.

условие: дана квадратичная матрица z[n][n]. составить программу, которая если матрица симметричная(транспонированная матрица равна исходной), сделает ее не симметричной, сдвинув строку, содержащую элемент с максимальным значением на 1 элемент вправо.


сижу уже который день.
то условие проверки не работает, то еще что-то.
совсем не получается.
помогите пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2014, 13:27     дана квадратичная матрица z[n][n]. составить программу, которая если матрица симметричная(транспонированная матрица равна исходной), сделает ее не сим
Посмотрите здесь:

составить программу:дана матрица.... C++
C++ Симметричная квадратная матрица
Дана квадратная матрица А порядка n. Составить программу которая все элементы расположенные на главных и побочных диагоналях заменяет на минимальное. C++
Квадратная матрица и симметричная её часть C++
C++ Симметричная матрица
C++ Квадратичная матрица
C++ Дана вещественная матрица А(N.M). Составить программу замены всех отрицательных элементов матрицы на элемент, имеющий максимальное значение.
C++ дана матрица А(5,5). Получить векторный столбец, элементы которого являются наибольшими по модулю элементов исходной матрицы
Дана прямоугольная матрица А размером N × M. Составить программу, которая преобразует матрицу следующим образом: поэлементно вычитает первый столбец C++
C++ дана матрица a(n/m) которая вводиться из файла
C++ Всю голову сломала этими матрицами! Дана матрица.Написать программу, которая упорядочивает элементы каждой строки этой матрицы по возрастанию
Дана прямоугольная матрица. Получить новую матрицу путём деления всех элементов исходной матрицей на её максимальный по модулю элемент. C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alex5
998 / 661 / 92
Регистрация: 12.04.2010
Сообщений: 1,681
16.01.2014, 15:09     дана квадратичная матрица z[n][n]. составить программу, которая если матрица симметричная(транспонированная матрица равна исходной), сделает ее не сим #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
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
#include<iostream>
#include<iomanip>
 
using namespace std;
 
const int N = 3; // размер матрицы 
 
bool IsSymmetric( int z[N][N] )
{
    // ... 
    //return ... ;
}
 
void FindMax( int z[N][N], int & imax, int & jmax )
{
    // ... 
}
 
/* сдвинуть строку, содержащую элемент с максимальным значением, на 1 элемент вправо */
void Shift( int z[N][N] )
{
    // определим максимальный элемент 
    int im, jm;
    FindMax( z, im, jm );
 
    // сдвиг строки - вычислим новую строку 
    int lineNew[N];
    for( int k = 0; k < N; ++k )
    {
        // lineNew[k] = ... 
    }
 
    // запишем вычисленную строку в матрицу 
    for( int k = 0; k < N; ++k )
    {
        // строка матрицы, содержащая максимальный элемент 
        // z[im][k] = ... 
    }
 
}
 
int main()
{
    /* если матрица симметричная (транспонированная матрица равна исходной), 
    сделать ее несимметричной, 
    сдвинув строку, содержащую элемент с максимальным значением, на 1 элемент вправо */
 
    int z[N][N] = { 1, 2, 3, 4 };
 
    if( IsSymmetric( z ) )
    {
        Shift( z );
    }
    
    return 0;
}
triish
1 / 1 / 0
Регистрация: 16.01.2014
Сообщений: 44
16.01.2014, 16:56  [ТС]     дана квадратичная матрица z[n][n]. составить программу, которая если матрица симметричная(транспонированная матрица равна исходной), сделает ее не сим #3
а если сделать не через отдельные функции и потом их просто вызвать в мэйне, а в самом мэйне все это делать?
(требование препода)
Alex5
998 / 661 / 92
Регистрация: 12.04.2010
Сообщений: 1,681
16.01.2014, 22:21     дана квадратичная матрица z[n][n]. составить программу, которая если матрица симметричная(транспонированная матрица равна исходной), сделает ее не сим #4
triish, если всё делать в main(), то это приведёт к усложнению структуры программы. Будет труднее понять написанный код. И увеличится вероятность возникновения ошибок. Труднее будет найти ошибку.
См.рис - отрывок из книги Макконнелл, Совершенный код.
Миниатюры
дана квадратичная матрица z[n][n]. составить программу, которая если матрица симметричная(транспонированная матрица равна исходной), сделает ее не сим  
triish
1 / 1 / 0
Регистрация: 16.01.2014
Сообщений: 44
16.01.2014, 23:24  [ТС]     дана квадратичная матрица z[n][n]. составить программу, которая если матрица симметричная(транспонированная матрица равна исходной), сделает ее не сим #5
я то прекрасно это понимаю.
я так же понимаю, что всю эту программу в два цикла не сделать, как просит препод.

Цитата Сообщение от Alex5 Посмотреть сообщение
triish, если всё делать в main(), то это приведёт к усложнению структуры программы. Будет труднее понять написанный код. И увеличится вероятность возникновения ошибок. Труднее будет найти ошибку.
См.рис - отрывок из книги Макконнелл, Совершенный код.
Yandex
Объявления
16.01.2014, 23:24     дана квадратичная матрица z[n][n]. составить программу, которая если матрица симметричная(транспонированная матрица равна исходной), сделает ее не сим
Ответ Создать тему
Опции темы

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