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

Обработка матриц в С++ - C++

Восстановить пароль Регистрация
 
tox14
3 / 3 / 0
Регистрация: 15.10.2013
Сообщений: 91
04.11.2013, 22:41     Обработка матриц в С++ #1
Помогите мне сделать программу. Нужно ранспонировать матрицу и вывести на печать элементы главной диагонали и диагонали, расположенной под главной. Результаты разместить в двух строках. Размерность матрицы: F(10, 8).
Двумерные массивы только начал изучать, толком ещё не разобрался...

Вот что у меня пока получается...Только вот не траспонирует оно матрицу почему-то...

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
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>
void main () {
int n,m,tmp;
cout << "BBEDITE PA3MEP MATPIZI: ";
cin >> n >> m;
cout << "\n";
int F[100] [100];
for (int i=0; i<n;i++) {
for (int j=0;j<m;j++) {
F[i] [j]= rand () % 10;
cout<< F[i] [j] << " ";}
  for (int i = 0; i<n; i++)
      for (int j = 0; j < i; j++)
      {
          F[i][j] = F[j][i];
      }
cout<< "\n";}
        cout<< "\n";
for (int j=0; j<m;j++) {
for (int i=0;i<n;i++) {
cout<< F[i] [j] << " ";}
cout<< "\n"; }
getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2013, 22:41     Обработка матриц в С++
Посмотрите здесь:

Обработка матриц C++
Обработка матриц в с++ C++
Обработка двумерных массивов. Обработка матриц C++
Обработка матриц C++
C++ Обработка матриц
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
volvo
Супер-модератор
 Аватар для volvo
21811 / 14174 / 3946
Регистрация: 22.10.2011
Сообщений: 25,040
Записей в блоге: 2
04.11.2013, 22:49     Обработка матриц в С++ #2
А почему в Билдер? Этот код - никакого отношения к Билдеру не имеет, чистый С++, поэтому переезжаем...
tox14
3 / 3 / 0
Регистрация: 15.10.2013
Сообщений: 91
05.11.2013, 14:01  [ТС]     Обработка матриц в С++ #3
Я просто в Билдере эту программу писал.

Добавлено через 4 минуты
Я знаю, что элементы главной диагонали это: if (i=j) cout<<F[i] [j];
И знаю, что диагональ расположенная под главной: if (i>j) cout<<F[i] [j];
Но как это реализовать в цикле не знаю.

Добавлено через 15 часов 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
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>
void main () {
int n,m,tmp;
cout << "BBEDITE PA3MEP MATPIZI: ";
cin >> n >> m;
cout << "\n";
int F[100] [100];
  for (int i=0; i<n;i++) {
  for (int j=0;j<m;j++) {
     F[i] [j]= rand () % 10;
     cout<< F[i] [j] << " ";}
for (int j=0; j<m;j++) {
  for (int i=0;i<n;i++) {
      F[i][j] = F[j][i];}}
   cout<< "\n";}
cout<< "\n";
for (int j=0; j<m;j++) {
  for (int i=0;i<n;i++) {
        cout<< F[i][j] << " ";}
     cout<< "\n"; }    cout<< "\n";
cout<<"Glavnaya diagonal: ";
     for (int j=0; j<m;j++) {
  for (int i=0;i<n;i++) {
        if (i==j) cout<<F[i][j]<<" ";} }
 
cout<<"\nDiagonal pod glavnoy : ";
     for (int j=0; j<m-1;j++) {
  for (int i=0;i<n-1;i++) {
        if (i>j) cout<<F[i][j]<<" ";} }
getch();
}
tox14
3 / 3 / 0
Регистрация: 15.10.2013
Сообщений: 91
07.11.2013, 22: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
#include <iostream.h>
#include <conio.h>
void main () {
int n,m,tmp;
cout << "BBEDITE PA3MEP MATPIZI: ";
cin >> n >> m;
cout << "\n";
int F[10] [8];
  for (int i=0; i<n;i++) {
  for (int j=0;j<m;j++) {
     F[i] [j]= rand () % 10;
     cout<< F[i] [j] << " ";}
for (int j=0; j<m;j++) {
  for (int i=0;i<n;i++) {
      tmp=F[j][i];
      F[i][j] == F[j][i];
      F[j][i]=tmp;}}
   cout<< "\n";}       cout<< "\n";
for (int j=0; j<m;j++) {
  for (int i=0;i<n;i++) {
        cout<< F[i][j] <<" ";}
     cout<< "\n"; }    cout<< "\n";
cout<<"Glavnaya diagonal: ";
for (int j=0; j<m;j++) {
  for (int i=0;i<n;i++) {
        if (i==j) cout<<F[j][i]<<" ";}}
cout<<"\nDiagonal pod glavnoy: ";
for (int j=0; j<m-1;j++) {
  for (int i=j+1;i<n;i++) {
        if (i>j) cout<<F[j][i]<<" ";break;}}
getch(); }
Yandex
Объявления
07.11.2013, 22:18     Обработка матриц в С++
Ответ Создать тему
Опции темы

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