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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.83
Midsummer007
0 / 0 / 0
Регистрация: 12.06.2011
Сообщений: 3
#1

Зеркально отразить элементы матрицы относительно горизонтальной оси симметрии матрицы - C++

12.06.2011, 02:41. Просмотров 2515. Ответов 5
Метки нет (Все метки)

Здравствуйте! Помогите написать 3 программмы на C++ на задачи с двумерными массивами

3. Дана матрица размера M x N. Зеркально отразить ее элементы относительно горизонтальной оси симметрии матрицы (при этом поменяются местами строки с номерами 1 и M, 2 и M – 1 и т. д.)
Надеюсь на вашу помощь и поддержку

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

Зеркально отразить элементы матрицы относительно горизонтальной оси симметрии - C++
Дана квадратная матрица порядка . Зеркально отразить ее элементы относительно горизонтальной оси симметрии матрицы.

Зеркально отразить элементы матрицы элементы относительно горизонтальной оси - C++
Дана квадратная матрица порядка 2n+1 . Зеркально отразить ее элементы относительно горизонтальной оси симметрии матрицы на языке С++ ...

Дана квадратная матрица порядка 2n+1 . Зеркально отразить ее элементы относительно горизонтальной оси симметри - C++
Дана квадратная матрица порядка 2n+1 . Зеркально отразить ее элементы относительно горизонтальной оси симметрии матрицы.

Зеркально отразить элементы матрицы относительно побочной диагонали - C++
Заданная квадратная матрица (n × n). Зеркально отразить ее элементы относительно побочной диагонали const int n = 4; int a; int i,...

Зеркально отразить элементы матрицы относительно главной диагонали - C++
Дана квадратная матрица A порядка M. Зеркально отразить ее элементы относительно главной диагонали (при этом элементы главной диагонали...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
soon
2540 / 1305 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
12.06.2011, 06:48 #2
вот еще одна
3'rd
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
#include <iostream>
#include <iomanip>
 
int main()
{
    int m, n;
    std::cin >> m >> n;
    float** arr = new float* [m];
    for (int i = 0; i < m; ++i)
    {
        arr[i] = new float [n];
        for (int j = 0; j < n; ++j)
            std::cin >> arr[i][j];
    }
    for (int i = 0; i < m / 2 ; ++i)
    {
        for (int j = 0; j < n; ++j)
        {
            float tmp = arr[i][j];
            arr[i][j] = arr[m - i - 1][j];
            arr[m - i - 1][j] = tmp;
        }
    }
    for (int i = 0; i < m  ; ++i)
    {
        for (int j = 0; j < n; ++j)
            std::cout << std::setw(6) << arr[i][j];
        std::cout << std::endl;
    }
    system("pause");
    return 0;
}
Добавлено через 3 минуты
2'nd вариант 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
#include <iostream>
#include <iomanip>
 
int main()
{
    int m, n;
    std::cin >> m >> n;
    float** arr = new float* [m];
    for (int i = 0; i < m; ++i)
        arr[i] = new float [n];
    for (int i = 0; i < m; ++i)
        for (int j = 0; j < n; ++j)
            std::cin >> arr[m - i - 1][j];
    /*for (int i = 0; i < m / 2 ; ++i)
    {
        for (int j = 0; j < n; ++j)
        {
            float tmp = arr[i][j];
            arr[i][j] = arr[m - i - 1][j];
            arr[m - i - 1][j] = tmp;
        }
    }*/
    for (int i = 0; i < m  ; ++i)
    {
        for (int j = 0; j < n; ++j)
            std::cout << std::setw(6) << arr[i][j];
        std::cout << std::endl;
    }
    system("pause");
    return 0;
}
tylix
68 / 55 / 6
Регистрация: 10.06.2011
Сообщений: 149
12.06.2011, 06:52 #3
Всю работу за ТС сделали, интересно, он много заплатит?
soon
12.06.2011, 06:54
  #4

Не по теме:

ага, канеш.. возьмет задачки и свалит, максимум может плюсанет
все, не флудим

dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
12.06.2011, 06:58 #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
45
46
#include <iostream>
#include <ctime>
#include <cstdlib>
 
int main()
{
    int n, m, i, j;
    
    std::cin >> n >> m;
    
    int** matrix = new int *[n];
    for(i = 0; i < n; ++i)
        matrix[i] = new int [m];
    
    for(i = 0; i < n; ++i)
    {
        for(j = 0; j < m; ++j)
        {
            matrix[i][j] = rand() % 10;
            std::cout << matrix[i][j] << " ";
        }
        std::cout << "\n";
    }
    std::cout << "\n";
    
    int* tmp;
    for(i = 0; i < n/2; ++i)
    {
        tmp = matrix[i];
        matrix[i] = matrix[n-i-1];
        matrix[n-i-1] = tmp;
    }
    
    for(i = 0; i < n; ++i)
    {
        for(j = 0; j < m; ++j)
            std::cout << matrix[i][j] << " ";
        std::cout << "\n";
    }
    
    for(i = 0; i < n; ++i)
        delete[] matrix[i];
    delete[] matrix;
 
    return 0;
}
soon
12.06.2011, 07:00     Зеркально отразить элементы матрицы относительно горизонтальной оси симметрии матрицы
  #6

Не по теме:

^ и то верно

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.06.2011, 07:00
Привет! Вот еще темы с ответами:

Отразить матрицу относительно горизонтальной оси - C++
Необходимо написать программу, в которой матрица 5х5 симетрично отображается. Пример: 1 2 3 4 Результат: 3 4 1 2

Зеркально отразить элементы матрицы - C++
Дана матрица размера M × N. Зеркально отразить ее элементы отно-сительно горизонтальной оси симметрии матрицы (при этом поменяются...

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

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


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

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

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