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

Отобразить главную и побочную диагонали симметрично относительно вертикальной оси - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.95
Seniorus
1 / 1 / 0
Регистрация: 08.11.2011
Сообщений: 10
08.11.2011, 23:21     Отобразить главную и побочную диагонали симметрично относительно вертикальной оси #1
Помогите, пожалуйста, с решением задачи:
Заполнить матрицу случайными числами. Отобразить главную и побочную диагонали симметрично относительно вертикальной оси. Матрица 9х9.
С рандомными значениями, вроде, разобрался (matrix[i][j] = rand() % 100), но вот как представить симметрию ума не приложу(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2011, 23:21     Отобразить главную и побочную диагонали симметрично относительно вертикальной оси
Посмотрите здесь:

Заполнить матрицу 9x9 случайными числами. Отобразить матрицу симметрично относительно главной диагонали C++
Отображение матрицы симметрично относительно вертикальной оси C++
Отобразить левую половину матрицы на правую зеркально симметрично относительно вертикальной оси C++
C++ Отобразить симметрично относительно вертикальной оси секторы матрицы...
C++ Заполнить матрицу случайными числами. Отобразить мат-рицу симметрично относительно главной диагонали.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
08.11.2011, 23:33     Отобразить главную и побочную диагонали симметрично относительно вертикальной оси #2
Цитата Сообщение от Seniorus Посмотреть сообщение
Отобразить главную и побочную диагонали симметрично относительно вертикальной оси.
расшифруйте, можно рисунком
Seniorus
1 / 1 / 0
Регистрация: 08.11.2011
Сообщений: 10
08.11.2011, 23:49  [ТС]     Отобразить главную и побочную диагонали симметрично относительно вертикальной оси #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
#include "stdafx.h"
    #include <iostream>
    #include <conio.h>
    #include <stdio.h>
    #include <string.h>
 
    using namespace std;
 
    #define A 9
 
    int main(void)
    {
    int matrix[A][A]; 
 
    for(int i = 0; i <= A; ++i)
    {
        for(int j = 0; j <= A; ++j)
        {
            // j = i   условие для элементов на главной диагонали
            // j = (A - 1 - j)   условие для элементов на побочной диагонали
            
            if( j = i && j = (A - 1 - i) )
            {
                    
                    matrix[i][j] = matrix[i][A - 1 - j];
            }
            else  
                   matrix[i][j] = rand() % 100;
       }
    }
    _getch();
      return 0;
    }
На картинке элементы взаимозаменить заменить черные <-> красные, синие<->зеленые
Изображения
 
Seniorus
1 / 1 / 0
Регистрация: 08.11.2011
Сообщений: 10
09.11.2011, 00:04  [ТС]     Отобразить главную и побочную диагонали симметрично относительно вертикальной оси #4
Цитата Сообщение от alkagolik Посмотреть сообщение
расшифруйте, можно рисунком
Думаю, на русском лучше некуда вышло)
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
09.11.2011, 00:11     Отобразить главную и побочную диагонали симметрично относительно вертикальной оси #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
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
using std::srand;
using std::rand;
 
#include <iomanip>
using std::setw;
 
#include <ctime> 
 
 
int main(){
    const int a = 9;
    int temp;
    int matrix[a][a];
 
    srand(time(NULL));
 
    for(int i = 0; i<a; ++i){   // заполняем случайными числами
        for(int j = 0; j<a; ++j){
            matrix[i][j] = rand() % 100;
            cout << setw(3)<< matrix[i][j] << " ";
        }
        cout << endl;
    }
    for(int i = 0; i<a; ++i){   //меняем значения
        int temp = matrix[i][i];
        matrix[i][i] = matrix[i][(a-1)-i];
        matrix[i][(a-1)-i] = temp;
    }
 
    cout << endl;
    for(int i = 0; i<a; ++i){   //печатаем
        for(int j = 0; j<a; ++j){
            cout << setw(3) << matrix[i][j] << " ";
        }
        cout << endl;
    }
 
    cin.get();
 
}
Seniorus
1 / 1 / 0
Регистрация: 08.11.2011
Сообщений: 10
09.11.2011, 00:15  [ТС]     Отобразить главную и побочную диагонали симметрично относительно вертикальной оси #6
Цитата Сообщение от greeezz Посмотреть сообщение
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
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
using std::srand;
using std::rand;
 
#include <iomanip>
using std::setw;
 
#include <ctime> 
 
 
int main(){
    const int a = 9;
    int temp;
    int matrix[a][a];
 
    srand(time(NULL));
 
    for(int i = 0; i<a; ++i){   // заполняем случайными числами
        for(int j = 0; j<a; ++j){
            matrix[i][j] = rand() % 100;
            cout << setw(3)<< matrix[i][j] << " ";
        }
        cout << endl;
    }
    for(int i = 0; i<a; ++i){   //меняем значения
        int temp = matrix[i][i];
        matrix[i][i] = matrix[i][(a-1)-i];
        matrix[i][(a-1)-i] = temp;
    }
 
    cout << endl;
    for(int i = 0; i<a; ++i){   //печатаем
        for(int j = 0; j<a; ++j){
            cout << setw(3) << matrix[i][j] << " ";
        }
        cout << endl;
    }
 
    cin.get();
 
}
Просто ОГРОМНЕЙШЕЕ СПАСИБО!!!
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
09.11.2011, 00:35     Отобразить главную и побочную диагонали симметрично относительно вертикальной оси #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
34
35
36
37
38
39
40
41
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
 
#define A 9
 
int main(void)
{
    int matrix[A][A], tmp;
    srand(time(0));
 
    //заполнить матрицу сл числами
    for(int i = 0; i < A; ++i)
        for (int j = 0; j < A; ++j)
            matrix[i][j] = rand() % 2;
 
    puts("исходная матрицаn\n");
    for(int i = 0; i < A; ++i){
        printf("\n");
        for (int j = 0; j < A; ++j){
            matrix[i][j] = rand() % 2;
            printf( "%d ",matrix[ i ][ j ] );
        }
    }
 
    puts("ремейкнутая матрицаn\n");
    for(int i = 0; i < A; ++i){
        printf("\n");
        for (int j = 0; j < A; ++j){
            if(i == j)
                printf( "%d ", matrix[ i ][ j ] );
            else
                printf(" ");
 
        }
    }
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.11.2011, 01:06     Отобразить главную и побочную диагонали симметрично относительно вертикальной оси
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Seniorus
1 / 1 / 0
Регистрация: 08.11.2011
Сообщений: 10
09.11.2011, 01:06  [ТС]     Отобразить главную и побочную диагонали симметрично относительно вертикальной оси #8
Цитата Сообщение от alkagolik Посмотреть сообщение
нк вот как бэ главная диагналь... если еще актуально... а ели нет - то и нет... дамп
м да
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
 
#define A 9
 
int main(void)
{
    int matrix[A][A], tmp;
    srand(time(0));
 
    //заполнить матрицу сл числами
    for(int i = 0; i < A; ++i)
        for (int j = 0; j < A; ++j)
            matrix[i][j] = rand() % 2;
 
    puts("исходная матрицаn\n");
    for(int i = 0; i < A; ++i){
        printf("\n");
        for (int j = 0; j < A; ++j){
            matrix[i][j] = rand() % 2;
            printf( "%d ",matrix[ i ][ j ] );
        }
    }
 
    puts("ремейкнутая матрицаn\n");
    for(int i = 0; i < A; ++i){
        printf("\n");
        for (int j = 0; j < A; ++j){
            if(i == j)
                printf( "%d ", matrix[ i ][ j ] );
            else
                printf(" ");
 
        }
    }
 
    return 0;
}
И Вам спасибо, что не оставили в беде)
Yandex
Объявления
09.11.2011, 01:06     Отобразить главную и побочную диагонали симметрично относительно вертикальной оси
Ответ Создать тему
Опции темы

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