Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Askar2008
13 / 13 / 7
Регистрация: 04.03.2009
Сообщений: 154
#1

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

22.02.2010, 15:19. Просмотров 721. Ответов 4
Метки нет (Все метки)

Всем привет! Не могу решить задачу на языке Турбо С: Дана матрица 9 х 9, нужно отобразить симметрично относительно вертикальной оси секторы матрицы, которые лежат влево и вправо от главной и побочной диагоналей. В прикрепленном файле, ячейки которые выделены желтым цветом нужно вывести на экран. Заранее благодарю!
http://www.cyberforum.ru/cpp-beginners/thread451060.html
0
Миниатюры
Отобразить симметрично относительно вертикальной оси секторы матрицы  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2010, 15:19
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Отобразить симметрично относительно вертикальной оси секторы матрицы (C++):

Отобразить симметрично относительно вертикальной оси секторы матрицы
Доброго времени суток. Помогите разобраться с матрицей: нужно создать...

Отобразить симметрично относительно вертикальной оси секторы матрицы
Всем ПРИВЕТ! Помогите пожалуйста с задачкой ...=) Заполнить матрицу А(10,10),...

Отобразить симметрично относительно вертикальной оси секторы матрицы
Напишите пожалуйста прогу. Создать квадратную матрицу целых чисел размером...

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

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

4
M128K145
Эксперт JavaЭксперт С++
8320 / 3540 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
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;
}
1
Askar2008
13 / 13 / 7
Регистрация: 04.03.2009
Сообщений: 154
23.02.2010, 05:39  [ТС] #3
M128K145 , Вы наверно не правельно поняли, задание заключается в следующем: нужно вывести числа матрицы которые отсекаются главной и побочной диагоналями, получается нужно вывести те числа которые попадают в закрашенную область желтого цвета(2 треугольника). А то что закрешено белым цветом выводить не нужно. Надеюсь на Вашу помощь, 6 лабораторных сдал, а с этой уже 4 день мучаюсь =(
0
valeriikozlov
Эксперт С++
4683 / 2509 / 751
Регистрация: 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;
}
1
Askar2008
13 / 13 / 7
Регистрация: 04.03.2009
Сообщений: 154
23.02.2010, 05:58  [ТС] #5
valeriikozlov и M128K145 спасибо огромное, выручили!
0
23.02.2010, 05:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2010, 05:58
Привет! Вот еще темы с решениями:

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

Отобразить правую половину матрицы на левую зеркально симметрично относительно вертикальной оси
как можно сделать такую матрицу использовав только цикла задача такая...

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

Отобразить главную и побочную диагонали симметрично относительно вертикальной оси
Помогите, пожалуйста, с решением задачи: Заполнить матрицу случайными числами....


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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