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

Отобразить симметрично относительно вертикальной оси секторы матрицы - C++

Восстановить пароль Регистрация
 
Askar2008
13 / 13 / 0
Регистрация: 04.03.2009
Сообщений: 154
22.02.2010, 15:19     Отобразить симметрично относительно вертикальной оси секторы матрицы #1
Всем привет! Не могу решить задачу на языке Турбо С: Дана матрица 9 х 9, нужно отобразить симметрично относительно вертикальной оси секторы матрицы, которые лежат влево и вправо от главной и побочной диагоналей. В прикрепленном файле, ячейки которые выделены желтым цветом нужно вывести на экран. Заранее благодарю!
Миниатюры
Отобразить симметрично относительно вертикальной оси секторы матрицы  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2010, 15:19     Отобразить симметрично относительно вертикальной оси секторы матрицы
Посмотрите здесь:

C++ Отобразить правую половину матрицы на левую зеркально симметрично относительно вертикальной оси
Отобразить левую половину матрицы на правую зеркально симметрично относительно вертикальной оси C++
Отобразить симметрично относительно вертикальной оси секторы матрицы C++
C++ Отобразить главную и побочную диагонали симметрично относительно вертикальной оси
C++ Отобразить симметрично относительно вертикальной оси секторы матрицы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
22.02.2010, 21:20     Отобразить симметрично относительно вертикальной оси секторы матрицы #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
#include <iostream>
int main()
{
    const int n = 7;
    int i, j;
    int matr[n][n];
    for(i = 0; i < n; ++i)
        for(j = 0; j < n; ++j)
            matr[i][j] = (i + 1) * 10 + j + 1;
    for(i = 0; i < n; ++i, std::cout<<std::endl)
        for(j = 0; j < n; ++j)
            std::cout<<matr[i][j]<<' ';
 
    std::cout<<std::endl;
    for(i = 0; i <= n>>1; ++i)
        for(j = 0; j <= i; ++j)
            matr[i][j] ^= matr[i][n - j - 1] ^= matr[i][j] ^= matr[i][n - j - 1];
    for(i = (n>>1) + 1; i < n; ++i)
        for(j = 0; j < n - i; ++j)
            matr[i][j] ^= matr[i][n - j - 1] ^= matr[i][j] ^= matr[i][n - j - 1];
 
    for(i = 0; i < n; ++i, std::cout<<std::endl)
        for(j = 0; j < n; ++j)
            std::cout<<matr[i][j]<<' ';
 
    return 0;
}
Askar2008
13 / 13 / 0
Регистрация: 04.03.2009
Сообщений: 154
23.02.2010, 05:39  [ТС]     Отобразить симметрично относительно вертикальной оси секторы матрицы #3
M128K145 , Вы наверно не правельно поняли, задание заключается в следующем: нужно вывести числа матрицы которые отсекаются главной и побочной диагоналями, получается нужно вывести те числа которые попадают в закрашенную область желтого цвета(2 треугольника). А то что закрешено белым цветом выводить не нужно. Надеюсь на Вашу помощь, 6 лабораторных сдал, а с этой уже 4 день мучаюсь =(
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
23.02.2010, 05:51     Отобразить симметрично относительно вертикальной оси секторы матрицы #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Чуть поправил код M128K145:
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 <iostream>
int main()
{
    const int n = 7;
    int i, j;
    int matr[n][n];
    for(i = 0; i < n; ++i)
        for(j = 0; j < n; ++j)
            matr[i][j] = (i + 1) * 10 + j + 1;
    for(i = 0; i < n; ++i, std::cout<<std::endl)
        for(j = 0; j < n; ++j)
            std::cout<<matr[i][j]<<' ';
 
    std::cout<<std::endl;
    for(i = 0; i<n; ++i)
    {
        for(j = 0; j<n; ++j)
        {
            if((j<i && i<n-1-j) || (j>i && i>n-1-j))
                std::cout<<matr[i][j]<<' ';
            else
                std::cout<<"   ";
        }
        std::cout<<std::endl;
    }        
 
    return 0;
}
Askar2008
13 / 13 / 0
Регистрация: 04.03.2009
Сообщений: 154
23.02.2010, 05:58  [ТС]     Отобразить симметрично относительно вертикальной оси секторы матрицы #5
valeriikozlov и M128K145 спасибо огромное, выручили!
Yandex
Объявления
23.02.2010, 05:58     Отобразить симметрично относительно вертикальной оси секторы матрицы
Ответ Создать тему
Опции темы

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