0 / 0 / 0
Регистрация: 04.07.2018
Сообщений: 55
1

В заданной квадратной матрице поменять местами значения элементов строк указанных областей

04.07.2018, 17:15. Показов 1883. Ответов 20
Метки нет (Все метки)

Помогите решить задание, пока не очень разбираюсь в массивах и не совсем понимаю что нужно делать.
В заданной квадратной матрице размера 2n*2n поменять местами значения элементов строк области 2 и элементов столбцов области 8 (см. рисунок) с одинаковыми номерами.
_________________
| \ 1 | 2 / |
| \ | / |
| 8 \ | / 3 |
|_______\|/_______|
| /|\ |
| 7 / | \ 4 |
| / | \ |
| / 6 | 5 \ |
|/_______|_______\|
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.07.2018, 17:15
Ответы с готовыми решениями:

В заданной квадратной матрице размера 2n*2n поменять местами значения элементов строк области [1+2+3] и элементов столбц
В заданной квадратной матрице размера 2n*2n поменять местами значения элементов строк области и...

В заданной квадратной матрице поменять местами значения элементов
Здравствуйте! Помогите решить задание, не понимаю как поменять местами области( Задание: В...

В квадратной матрице поменять местами отсортированные элементы строк по возрастанию
в квадратной матрице поменять местами отсортированные элементы строк по возрастанию поменять так 1...

Поменять местами max и min четных строк в квадратной матрице
Дана квадратная матрица. Размерность вводится. Поменять местами max и min четных строк. #include...

20
473 / 425 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
04.07.2018, 17:19 2
По этому чудо рисунку ничего не понятно...
0
Shiningemerald
384 / 117 / 22
Регистрация: 05.01.2012
Сообщений: 951
04.07.2018, 17:24 3
Студент_прогер, что-то непонятно, и правда...
0
0 / 0 / 0
Регистрация: 04.07.2018
Сообщений: 55
04.07.2018, 17:27  [ТС] 4
Матрица разделена на 8 равных частей, то есть квадрат делим на 8 частей двумя диагоналями и двумя перпендикулярными прямыми к точке их пересечения.
0
473 / 425 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
04.07.2018, 17:28 5
Студент_прогер, вставь рисунок/скрин/картинку этого задания, или нарисуй как есть.
0
Shiningemerald
384 / 117 / 22
Регистрация: 05.01.2012
Сообщений: 951
04.07.2018, 17:32 6
SuperKir, как понимаю тут "играться" с диагоналями надо..выше-ниже и.т.п.
0
0 / 0 / 0
Регистрация: 04.07.2018
Сообщений: 55
04.07.2018, 17:36  [ТС] 7
Вот
Изображения
 
0
473 / 425 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
04.07.2018, 18:13 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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <iomanip>
#include <time.h>
 
#define Min_Value 10.0
#define Max_Value 99.0
 
using namespace std;
 
int main()
{
    srand(time(NULL));
    int n;
    cout << "Enter size: ";
    cin >> n;
    double **matrix = new double*[2*n];
    for (int i=0; i<2*n; i++)
    {
        matrix[i] = new double[2*n];
        for (int j=0; j < 2*n; j++)
        {
            matrix[i][j] = (double)rand() / (double)RAND_MAX  * (Max_Value - Min_Value) + Min_Value;
            cout << fixed << setprecision(2) << matrix[i][j] << " ";
        }
        cout << endl;
    }
    
    for (int i=0; i<n-1; i++)
        for (int j = n; j<2*n-i-1; j++)
            swap(matrix[i][j], matrix[i + j - n + 1][i]);
    
    cout << endl;
    
    for (int i=0; i<2*n; i++)
    {
        for (int j=0; j < 2*n; j++)
            cout << fixed << setprecision(2) << matrix[i][j] << " ";
        cout << endl;
    }
    
    for (int i=0; i<2*n; i++)
        delete[]matrix[i];
    delete[]matrix;
    return 0;
}
1
0 / 0 / 0
Регистрация: 04.07.2018
Сообщений: 55
04.07.2018, 18:21  [ТС] 9
Без комментариев ничего не понимаю, к сожалению, а компелятор выдаёт
Миниатюры
В заданной квадратной матрице поменять местами значения элементов строк указанных областей  
0
0 / 0 / 0
Регистрация: 04.07.2018
Сообщений: 55
04.07.2018, 18:25  [ТС] 10
А, всё, понятно стало, спасибо.
0
473 / 425 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
04.07.2018, 18:25 11
Как просили, поменять местами строки 2 области, со столбцами 8 области.
Строки 28-30 в коде совершают "обмен".
Всё остальное генерация/вывод/очистка.
Миниатюры
В заданной квадратной матрице поменять местами значения элементов строк указанных областей  
0
0 / 0 / 0
Регистрация: 04.07.2018
Сообщений: 55
04.07.2018, 18:29  [ТС] 12
А как будет, если элементы матрицы вводятся с клавиатуры?
0
473 / 425 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
04.07.2018, 18:31 13
Студент_прогер,
Вместо строки 22:
C++
1
matrix[i][j] = (double)rand() / (double)RAND_MAX  * (Max_Value - Min_Value) + Min_Value;
Изменить на ввод вручную:
C++
1
cin >> matrix[i][j];
Ну и убрать тогда всё, что связано с генератором случайных чисел и добавить для понимания какой элемент вводится, т.е. вроде такого:
C++
1
2
cout << "Enter matrix[" << i + 1 << "," << j + 1 << "]: ";
cin >> matrix[i][j];
0
0 / 0 / 0
Регистрация: 04.07.2018
Сообщений: 55
04.07.2018, 18:34  [ТС] 14
Спасибо, всё понятно, вы мне очень помогли.
0
473 / 425 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
04.07.2018, 18:39 15
Студент_прогер, Успехов
0
7421 / 5016 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
04.07.2018, 21:09 16
Студент_прогер, входит ли граница (элементы диагоналей) в область ? можете уточнить ?
0
0 / 0 / 0
Регистрация: 04.07.2018
Сообщений: 55
04.07.2018, 21:20  [ТС] 17
Честно говоря, не знаю, в задании ничего об этом не было сказано.
0
7421 / 5016 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
04.07.2018, 21:42 18
Цитата Сообщение от Студент_прогер Посмотреть сообщение
Честно говоря, не знаю, в задании ничего об этом не было сказано.
часто в заданиях что-нибудь упускается. но скажу Вам что граница, как правило, входит в область в подобных задачах - так что лучше думаю будет её включить и соответственно поменять её элементы.
0
0 / 0 / 0
Регистрация: 04.07.2018
Сообщений: 55
04.07.2018, 21:45  [ТС] 19
Спасибо, я попробую заменить.
0
0 / 0 / 0
Регистрация: 05.01.2022
Сообщений: 8
05.01.2022, 23:15 20
Вводимые пользователем в матрицу значения могут быть любыми числами, int, double, float. Как выделять место в памяти, если в матрице присутствуют разные типы данных? Как потом менять значения в областях?
В заданной квадратной матрице размера 2n*2n поменять местами значения элементов строк области 2 и элементов столбцов области 8 (рисунок тут уже был вверху опубликован) с одинаковыми номерами.
Ввод данных осуществляется вручную, srand не используем. Я этот код взял за основу, переделал под ручной ввод данных типа int. Препод пишет что у меня нет типов и нет функций.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.01.2022, 23:15
Помогаю со студенческими работами здесь

В заданной квадратной матрице поменять местами элементы, стоящие на главной и побочной диагонали
Добрый день ! Помогите пожалуйста с задачей,очень нужно! (С++) Дана матрицы А(3,3). В матрице...

В квадратной матрице А(5,5) поменять местами минимальные элементы первой и третьей строк
Не знаю как решить, помогите. В квадратной матрице А(5,5) поменять местами минимальные элементы...

В заданной квадратной матрице размера (2n+1)×(2n+1) поменять местами среднюю строку и главную диагональ
В заданной квадратной матрице размера (2n+1)×(2n+1) поменять местами среднюю строку и главную...

В заданной матрице найти сумму элементов указанных строк и минимум среди сумм элементов заданных диагоналей
Дана целочисленная квадратная матрица. Определить: сумму элементов в тех строках, которые не...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru