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

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

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

Квадратная матрица и симметричная её часть - C++

07.05.2011, 23:10. Просмотров 1113. Ответов 7
Метки нет (Все метки)

Помогите решить задачу, пожалуйста:

Написать функцию,которая вычисляет для заданной квадратной матрицы А симметричную её часть S(ij) = (A(ij)+A(ji))/2 и кососимметричную часть K(ij)=( A(ij)-A(ji))/2 .

Помогите, пожалуйста. Не могу реализовать в Си++, хоть убейте меня.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2011, 23:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Квадратная матрица и симметричная её часть (C++):

Симметричная квадратная матрица - C++
"Симметричная квадратная матрица А порядка n задана последовательностью n(n+1)/2 чисел, аналогично правой треугольной матрице. Кроме этой...

Квадратная матрица, симметричная относительно главной диагонали, задана верхним треугольником в виде одномерного массива.Восстановить исходную матрицу - C++
Квадратная матрица, симметричная относительно главной диагонали, задана верхним треугольником в виде одномерного массива. Восстановить...

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

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

реализация класса "симметричная матрица целых чисел"... - C++
Условие вообще такое: Определите пользовательский тип “симметричная матрица целых чисел” для обработки квадратных матриц, в которых A...

Квадратная матрица - C++
Дана квадратная матрица А. Нужно вычислить по ней матрицу B тех же размеров по формуле (представленна ниже). Вычисление матpицы B...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
07.05.2011, 23:31 #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
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define n 5
int main()
{int a[n][n],s[n][n];
int i,j;
clrscr();
randomize();
printf("Randomnaya matrica:\n\n");
for(i=0;i<n;i++)
 {for(j=0;j<n;j++)
  {a[i][j]=random(50);
   printf(" %2i",a[i][j]);
  }
 printf("\n\n");
 }
printf("Simmetrichnaya chast:\n\n");
for(i=0;i<n;i++)
 {for(j=0;j<n;j++)
  {
  s[i][j]=(a[i][j]+a[j][i])/2;
  printf(" %2i",s[i][j]);
  }
printf("\n\n");
 }
getch();
}
В кососимметричной части просто замени +
C
1
 s[i][j]=(a[i][j]+a[j][i])/2;
на минус.
1
MoscowCity
0 / 0 / 0
Регистрация: 07.05.2011
Сообщений: 4
08.05.2011, 08:33  [ТС] #3
А С и С++ одно и то же? Я набираю в Borland C++ и у меня кососимметричная матрица - все нули

Добавлено через 27 минут
А, извиняюсь, нули же и должны быть. Всё, спасибо, разобралась вроде
0
Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
08.05.2011, 10:36 #4
А С и С++ одно и то же?
Нет, С++ это улучшенная и так сказать модернизированная версия С.
1
MoscowCity
0 / 0 / 0
Регистрация: 07.05.2011
Сообщений: 4
08.05.2011, 23:06  [ТС] #5
кососимметричная, это не нули, а когда верхняя часть относительно главной диагонали равна нижней части относительно диагонали только с противоположным знаком))) всё работает на ура!!!

Добавлено через 5 часов 26 минут
Оказалось не всё так просто. Надо написать функцию, в которую передаётся исходная матрица, и она возвращает (через параметры) симметричную и кососимметричную матрицы и они выводятся на экран

Добавлено через 6 часов 51 минуту
Перепишите,пожалуйста, программу
0
Hornet_nsk
3 / 3 / 0
Регистрация: 04.02.2012
Сообщений: 17
05.02.2012, 06:46 #6
Столкнулся с той же проблемой, что и топик-стартер
В задании сказано, что нужно нахождение симметричной и кососимметричной частей матрицы выполнить в виде отдельной функции, но каким образом передать двумерный массив в качестве параметра функции?

Добавлено через 10 часов 39 минут
Попробовал такой вариант:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <stdlib.h>
#define n 5
int i,j,m[n][n],S[n][n];
void Sim (int (*m)[n][n])
{for (i=0;i<n;i++)
  {for (j=0;j<n;j++)
   S[i][j]=m[i][j];}}
main ()
{ randomize();
  for (i=0;i<n;i++)
    {for (j=0;j<n;j++)
    m[i][j]=random(50);}
  Sim (&m);
}
Пишет ошибку:cannot assign 'int far*' to 'int' in function Sim(int [5][5] far*)
0
MrCold
855 / 753 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
05.02.2012, 08:40 #7
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
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define n 5
 
void Set(int a[][n]){
    for(int i=0;i<n;i++)
    {for(int j=0;j<n;j++)
    {a[i][j]=random(50);
    printf(" %2i",a[i][j]);
    }
    printf("\n\n");
    }}
void    Sim(int a[][n]){
    int s[n][n];
    for(int i=0;i<n;i++)
    {for(int j=0;j<n;j++)
    {
    s[i][j]=(a[i][j]+a[j][i])/2;
    printf(" %2i",s[i][j]);
    }
    printf("\n\n");
    }  }
int main()  {
    int a[n][n];
    clrscr();
    randomize();
    printf("Randomnaya matrica:\n\n");
Set(a);
    printf("Simmetrichnaya chast:\n\n");
Sim(a);
    getch();
  }
1
Hornet_nsk
3 / 3 / 0
Регистрация: 04.02.2012
Сообщений: 17
05.02.2012, 09:45 #8
MrCold, Спасибо, большое, теперь все заработало
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2012, 09:45
Привет! Вот еще темы с ответами:

Квадратная матрица N*N - C++
Дано квадратную матрицу порядка N*N. Число N задается пользователем. Найти наибольшее среди элементов значение, расположенное в закрашенной...

Квадратная матрица - C++
Помогите пожалуйста определить, что делаю не так: надо отсортировать квадратную матрицу по возрастанию элементов первого столбца. ...

квадратная матрица - C++
Доброе время суток! &quot;дано действительгое число х.получить квадратную матрицу порядка n+1,результат записать в файл?&quot; обьясните хоть...

Квадратная матрица - C++
Заполнить матрицу любыми числами. Отобразить главную и боковую диагональ симетрично относительно горизонтальной оси... Ребята, помогите...


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

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

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