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

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

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

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

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

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

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


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

Дана квадратная матрица А порядка n. Составить программу которая все элементы расположенные на главных и побочных диагоналях заменяет на минимальное. - C++
Дана квадратная матрица А порядка n. Составить программу которая все элементы расположенные на главной и побочных диагоналях заменяет на...

Дана прямоугольная матрица А размером N × M. Составить программу, которая преобразует матрицу следующим образом: поэлементно вычитает первый столбец - C++
Дана прямоугольная матрица А размером N × M. Составить программу, которая преобразует матрицу следующим образом: поэлементно вычитает...

составить программу:дана матрица.... - C++
Дана целочисленная матрица размера 6x9, содержащая как положительные, так и отрицательные элементы. Сформировать одномерные массивы,...

Дана матрица целых чисел, из n строк и n столбцов (n < = 100).Определить является ли матрица нулевой (состоит из одних нулей) - C++
#include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; #include &lt;stdlib.h&gt; int main(int argc, char* argv) { srand(time(NULL)); int mas; ...

Дана матрица целых чисел, из n строк и n столбцов (n < = 100).Определить является ли матрица нулевой (состоит из одних нулей) - C++
#include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; #include&lt;conio.h&gt; void main() { int mas; int N; int max_element; int...

Дана вещественная матрица А(N.M). Составить программу замены всех отрицательных элементов матрицы на элемент, имеющий максимальное значение. - C++
Дана вещественная матрица А(N.M). Составить программу замены всех отрицательных элементов матрицы на элемент, имеющий максимальное...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Alex5
1052 / 715 / 105
Регистрация: 12.04.2010
Сообщений: 1,818
16.01.2014, 15:09 #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;
}
0
triish
1 / 1 / 0
Регистрация: 16.01.2014
Сообщений: 44
16.01.2014, 16:56  [ТС] #3
а если сделать не через отдельные функции и потом их просто вызвать в мэйне, а в самом мэйне все это делать?
(требование препода)
0
Alex5
1052 / 715 / 105
Регистрация: 12.04.2010
Сообщений: 1,818
16.01.2014, 22:21 #4
triish, если всё делать в main(), то это приведёт к усложнению структуры программы. Будет труднее понять написанный код. И увеличится вероятность возникновения ошибок. Труднее будет найти ошибку.
См.рис - отрывок из книги Макконнелл, Совершенный код.
0
Миниатюры
дана квадратичная матрица z[n][n]. составить программу, которая если матрица симметричная(транспонированная матрица равна исходной), сделает ее не сим  
triish
1 / 1 / 0
Регистрация: 16.01.2014
Сообщений: 44
16.01.2014, 23:24  [ТС] #5
я то прекрасно это понимаю.
я так же понимаю, что всю эту программу в два цикла не сделать, как просит препод.

Цитата Сообщение от Alex5 Посмотреть сообщение
triish, если всё делать в main(), то это приведёт к усложнению структуры программы. Будет труднее понять написанный код. И увеличится вероятность возникновения ошибок. Труднее будет найти ошибку.
См.рис - отрывок из книги Макконнелл, Совершенный код.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2014, 23:24
Привет! Вот еще темы с ответами:

Всю голову сломала этими матрицами! Дана матрица.Написать программу, которая упорядочивает элементы каждой строки этой матрицы по возрастанию - C++
Дана матрица А(nxn). Написать программу, которая упорядочивает элементы каждой строки этой матрицы по возрастанию. помогите пожалуйста,...

Симметричная матрица - C++
Заполнить матрицу случайными числами. Отобразить матрицу симметрично относительно главной диагонали. Тоесть должна вийти матрица вида: ...

дана матрица А(5,5). Получить векторный столбец, элементы которого являются наибольшими по модулю элементов исходной матрицы - C++
дана матрица А(5,5). Получить векторный столбец, элементы которого являются наибольшими по модулю элементов исходной матрицы

дана матрица a(n/m) которая вводиться из файла - C++
дана матрица a(n/m) которая вводиться из файла и число k вводиться с клавиатуры. В k-ой строке найти максимальный элемент.В том столбце где...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.01.2014, 23:24
Ответ Создать тему
Опции темы

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