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

Определить является ли квадратная матрица симметричной - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
dlancer
1 / 1 / 0
Регистрация: 04.04.2011
Сообщений: 14
20.04.2011, 09:03     Определить является ли квадратная матрица симметричной #1
не получается решить..

 Комментарий модератора 
Именуйте темы осмысленно. Название темы должно максимально полно отражать ее содержимое.
Миниатюры
Определить является ли квадратная матрица симметричной  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2011, 09:03     Определить является ли квадратная матрица симметричной
Посмотрите здесь:

Определить, является ли данная квадратная матрица симметричной относительно главной диагонали. C++
Определить, является ли квадратная матрица симметричной относительно побочной диагонали. C++
Определить, является ли заданная квадратная матрица симметричной относительно главной диагонали. C++
C++ Определить является ли заданная квадратная матрица симметричной относительно главной диагонали
Определить, является ли заданная квадратная матрица симметричной относительно побочной диагонали C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
20.04.2011, 09:16     Определить является ли квадратная матрица симметричной #2
dlancer, если Вы хотите, чтобы Вам быстрее помогли, то потрудитесь перепечатывать задание на форум.
Svid
 Аватар для Svid
5 / 5 / 1
Регистрация: 02.03.2011
Сообщений: 40
20.04.2011, 10:08     Определить является ли квадратная матрица симметричной #3
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <iostream>
#include <locale.h>
#include <conio.h>
const int I=10;
using namespace std;
void inputmas(float [I][I]);
void printmas(float [I][I]);
void resh(float [I][I]);
int main ()
{
    setlocale(LC_ALL, "Russian");
        float a[I] [I];
    inputmas (a);
    cout <<endl;
    printmas (a);
    cout <<endl;
    resh (a);
        getche();
    return 0;
}
void inputmas (float x[I] [I])
{
int i,j;
float u;
cout << "\nВводим массив " <<  "\n";
  for (i=0; i<I; i++)
    for ( j=0; j < I; j++)
    {
cout << " [" << i << " ][ " << j << " ] = ";
cin >> u;
if (!cin.fail())
x[i][j]=u;
else
{
j=j-1;
cout<<"Только числа вводим!!\n";
cin.clear();
cin.ignore(INT_MAX, '\n');           
          }
     }
}
void printmas (float x[I] [I])
{
  int i,j,z;
  cout.setf( ios::showpoint | ios::fixed);
  cout << "\nМассив " <<endl;
  for (i=0; i<I; i++)
    {
      for(j=0; j<I; j++)
    {
      cout.width(8);
      cout.precision(1);
      cout << x[i][j];
    }
     }
 
}
void resh ( float x[I][I])
{
    int i,j,summ=0;
        for (i=0;i<I;i++)
            for (j=0; j<I; j++)
    {
        if (x[i][j]==x[j][i])
        {summ+=1;}
            }
            if (summ==(I*I))
            {cout << "Матрица симметричная "<<endl;}
            else
                cout << "Матрица не симметричная "<<endl;
 
}
Setsuna
 Аватар для Setsuna
9 / 9 / 0
Регистрация: 15.06.2010
Сообщений: 126
20.04.2011, 17:18     Определить является ли квадратная матрица симметричной #4
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
//Îïðåäåëèòü,ÿâëÿåòñÿ ëè Г§Г*Г¤Г*Г*Г*Г*Гї ГЄГўГ*äðГ*ГІГ*Г*Гї Г¬Г*òðèöГ* 10Гµ10 
//ñèììåòðè÷Г*îé îòГ*îñèòåëüГ*Г® ГЈГ«Г*ГўГ*îé ГЁ ïîáî÷Г*îé äèГ*ГЈГ®Г*Г*ëè.
 
#include<cstdio>
#include<cstdlib>
#include<iostream>
using namespace std;
 
int main()
{
 int ii=10,jj=10; //ГіГЄГ*Г§Г*Г*ГЁГҐ êîë-ГўГ* ñòîëáöîâ ГЁ ñòðîê Гў Г¬Г*òðèöå
 int mas[ii][jj]; 
 for (int i=0;i<ii;i++)      
 {
  for (int j=0;j<jj;j++)    //ñîçäГ*Г*ГЁГҐ Г¬Г*Г±Г±ГЁГўГ* ГЁ âûâîä Г*Г* ГЅГЄГ°Г*Г*
  {
   mas[i][j]=rand()%9+0;
   printf("%d  ",mas[i][j]);
 
  }
  printf("\n");
 }
 int ch=0;
 for (int i=0;i<ii;i++)      
 {
  for (int j=0;j<jj;j++) 
  {
   if (i==j)
   {
    if (mas[i][j]!=mas[ii-1-i][jj-1-j])
    {
     ch++;
     break;
    }
   }
  }
 }
 if (ch!=0)
 {
  cout<<"ne ravn"<<endl;
 }
 else
 {
  cout<<"ravn"<<endl;
 }
 system("pause");
}
Добавлено через 2 минуты
Если я правильно понял, что побоная диагональ обратная главной.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
21.04.2011, 15:22     Определить является ли квадратная матрица симметричной #5
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <iostream>
 
void input(double** matrix, int n, int m)
{
    std::cout << "Enter matrix:" << std::endl;
    int i, j;
    for(i = 0; i < n; ++i)
        for(j = 0; j < m; ++j)
            std::cin >> matrix[i][j];
}
 
void output(double** matrix, int n, int m)
{
    std::cout << "Matrix:" << std::endl;
    int i, j;
    for(i = 0; i < n; ++i, std::cout << std::endl)
        for(j = 0; j < m; ++j)
            std::cout << matrix[i][j] << ' ';
}
 
double** rotate(double** matrix, int n, int m)
{
    int i, j;
    double** temp = new double*[n];
    for(i = 0; i < n; ++i)
        temp[i] = new double[m];
    for(i = 0; i < n; ++i)
        for(j = 0; j < m; ++j)
            temp[i][j] = matrix[i][m - j - 1];
    return temp;
}
 
bool isSymmetric(double** matrix, int n, int m, bool needRotate)
{
    int i, j;
    double** matr = NULL;
    if(needRotate)
        matr = rotate(matrix, n , m);    
    else
        matr = matrix;
    for(i = 1; i < n; ++i)
        for(j = 0; j < i; ++j)
            if(matr[i][j] != matr[j][i])
            {
                if(needRotate)
                {
                    for(i = 0; i < n; ++i)
                        delete matr[i];
                    delete [] matr;
                }
                return false;
            }
    if(needRotate)
    {
        for(i = 0; i < n; ++i)
            delete matr[i];
        delete [] matr;
    }
    return true;
}
 
int main()
{
    int n, m, i;
    std::cout << "Enter row count:\n> ", 
        std::cin >> n;
    std::cout<<"Enter column count:\n> ", 
        std::cin >> m;       
    double** matrix = new double*[n];
    for(i = 0; i < n; ++i)
        matrix[i] = new double[m];
       
    input(matrix, n, m);
    output(matrix, n, m);
    
    std::cout << "Main:\n< " << isSymmetric(matrix, n, m, false) << std::endl;
    std::cout << "Incidental\n< " << isSymmetric(matrix, n, m, true) << std::endl;
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
Yandex
Объявления
21.04.2011, 15:22     Определить является ли квадратная матрица симметричной
Ответ Создать тему
Опции темы

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