Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/22: Рейтинг темы: голосов - 22, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 11.07.2011
Сообщений: 12

Переставить блоки матрицы размера n*n крест накрест.

11.07.2011, 18:33. Показов 4621. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана действительная квадратная матрица порядка 2n. Получить новую матрицу,переставляя её блоки размера n*n крест накрест на языке Си.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.07.2011, 18:33
Ответы с готовыми решениями:

Перестановка элементов крест накрест
Ребята, какие есть идеи по поводу перестановки элементов массива крест накрест по блокам из 4 элементов? на данный момент я дошла до вот...

Переставить блоки матрицы размера n*n крест накрест.
дана действительная квадратная матрица порядка 2n.получить новую матрицу переставляя её блоки размера n*n крест накрест.

Переставить блоки матрицы крест-накрест
не мог ли бы вы помочь с решением данных задач, собственно все задачи на фото. в файлах примерно как должны выглядеть задачи. ...

18
31 / 31 / 3
Регистрация: 10.05.2011
Сообщений: 120
11.07.2011, 18:35
Цитата Сообщение от Kotowed Посмотреть сообщение
Дана действительная квадратная матрица порядка 2n. Получить новую матрицу,переставляя её блоки размера n*n крест накрест на языке Си.
Помог бы, но не совсем понял задание )))))))
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
11.07.2011, 18:39
Kotowed, отсюда пример немного переделайте...
0
0 / 0 / 0
Регистрация: 11.07.2011
Сообщений: 12
11.07.2011, 18:45  [ТС]
Цитата Сообщение от absokolov Посмотреть сообщение
Помог бы, но не совсем понял задание )))))))
Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя её блоки размера N x N :
Изображения
 
0
0 / 0 / 0
Регистрация: 11.07.2011
Сообщений: 12
11.07.2011, 19:59  [ТС]
Цитата Сообщение от easybudda Посмотреть сообщение
Kotowed, отсюда пример немного переделайте...
как я понимаю вот в этом блоке надо переделать?


C
1
2
3
4
5
6
7
8
9
10
11
12
13
 
        for ( i = 0; i < N; ++i )
                for ( j = 0; j < N; ++j )
                        matrix[i][j] = 1;
        for ( i = 0; i < N; ++i )
                for ( j = N; j < DVA_N; ++j )
                        matrix[i][j] = 2;
        for ( i = N; i < DVA_N; ++i )
                for ( j = N; j < DVA_N; ++j )
                        matrix[i][j] = 3;
        for ( i = N; i < DVA_N; ++i )
                for ( j = 0; j < N; ++j )
                        matrix[i][j] = 4;
0
385 / 229 / 12
Регистрация: 06.07.2011
Сообщений: 512
11.07.2011, 20:07
нет, не в этом. еще попытка?
1
0 / 0 / 0
Регистрация: 11.07.2011
Сообщений: 12
11.07.2011, 20:15  [ТС]
Цитата Сообщение от Paporotnik Посмотреть сообщение
нет, не в этом. еще попытка?
Тогда тут?

C
1
2
3
4
5
6
    for ( i = 0; i < N; ++i ){
                memcpy(buf, &matrix[i][0], sizeof(int) * N);
                memcpy(&matrix[i][0], &matrix[N + i][0], sizeof(int) * N);
                memcpy(&matrix[N + i][0], &matrix[N + i][N], sizeof(int) * N);
                memcpy(&matrix[N + i][N], &matrix[i][N], sizeof(int) * N);
                memcpy(&matrix[i][N], buf, sizeof(int) * N);
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
11.07.2011, 20:19
Цитата Сообщение от Kotowed Посмотреть сообщение
Тогда тут?
да, именно тут
1
0 / 0 / 0
Регистрация: 11.07.2011
Сообщений: 12
11.07.2011, 20:27  [ТС]
Цитата Сообщение от Maxwe11 Посмотреть сообщение
да, именно тут
Теперь бы понять что именно :cofee2:
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
11.07.2011, 20:30
Цитата Сообщение от Kotowed Посмотреть сообщение
Теперь бы понять что именно :cofee2:
гугл вам в помощь, посмотрите что такое memcpy, подумайте подходит вам или нет, если нет, то значит надо найти другую функцию по работе с памятью

подсказка префикc названий функций по работе с памятью - mem*
0
0 / 0 / 0
Регистрация: 11.07.2011
Сообщений: 12
11.07.2011, 20:33  [ТС]
Цитата Сообщение от Maxwe11 Посмотреть сообщение
гугл вам в помощь, посмотрите что такое memcpy, подумайте подходит вам или нет, если нет, то значит надо найти другую функцию по работе с памятью

подсказка префикc названий функций по работе с памятью - mem*
А вы не могли бы помочь? Просто было бы прекрасно, а то ещё задания имеются, над которыми приходится голову ломать
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
11.07.2011, 20:35
вы испугались слова "подумайте" или слова "гугл"? так в армии нет ни того ни другого
0
0 / 0 / 0
Регистрация: 11.07.2011
Сообщений: 12
11.07.2011, 20:38  [ТС]
Цитата Сообщение от Maxwe11 Посмотреть сообщение
вы испугались слова "подумайте" или слова "гугл"? так в армии нет ни того ни другого
До армии ещё далеко и рановато.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
11.07.2011, 20:42
Kotowed, "найди 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
42
43
44
45
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define N 4
#define DVA_N (N * 2)
 
int main(void){
        int matrix[DVA_N][DVA_N], i, j;
        int buf[N];
        
        for ( i = 0; i < N; ++i )
                for ( j = 0; j < N; ++j )
                        matrix[i][j] = 1;
        for ( i = 0; i < N; ++i )
                for ( j = N; j < DVA_N; ++j )
                        matrix[i][j] = 2;
        for ( i = N; i < DVA_N; ++i )
                for ( j = N; j < DVA_N; ++j )
                        matrix[i][j] = 3;
        for ( i = N; i < DVA_N; ++i )
                for ( j = 0; j < N; ++j )
                        matrix[i][j] = 4;
        
        printf("Before:\n");
        for ( i = 0; i < DVA_N; ++i )
                for ( j = 0; j < DVA_N; ++j )
                        printf("%2d%c", matrix[i][j], ( j < DVA_N - 1 ) ? ' ' : '\n');
        
        for ( i = 0; i < N; ++i ){
                memcpy(buf, &matrix[i][0], sizeof(int) * N);
                memcpy(&matrix[i][0], &matrix[N + i][N], sizeof(int) * N);
                memcpy(&matrix[N + i][N], buf, sizeof(int) * N);
                memcpy(buf, &matrix[i][N], sizeof(int) * N);
                memcpy(&matrix[i][N], &matrix[N + i][0], sizeof(int) * N);
                memcpy(&matrix[N + i][0], buf, sizeof(int) * N);
        }
        
        printf("After:\n");
        for ( i = 0; i < DVA_N; ++i )
                for ( j = 0; j < DVA_N; ++j )
                        printf("%2d%c", matrix[i][j], ( j < DVA_N - 1 ) ? ' ' : '\n');
        
        exit(0);
}
Ну и grizlik78 там верно заметил - это я что-то странное написал...
1
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
11.07.2011, 21:27
Для того, чтобы работа с матрицами была эффективной и приятной, необходимо скачать у меня класс mymatrix, который распространяется по лицензии GPL. Тогда, в частности, эта задача сведётся к такому коду:
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 <mymatrix.h>
#include <algorithm>
#define dlina_storoni 10 
using namespace std;
 
int main () {
 
 //Кропаем матрицу и инициализируем её
 matrix<double> matritsa (dlina_storoni, dlina_storoni);
 matritsa.init_rand (0, 99);
 
 //смотрим матрицу
 matritsa.vivod ();
 printf ("\n\n\n");
 
 
 //пошёл обмен
 for (int i= 0; i< dlina_storoni; i++)
  for (int j= 0; j< dlina_storoni/2;j++)
   swap(matritsa[i][j], matritsa[i][j+ dlina_storoni/2]);
 
 //И ещё раз:
 for (int j= 0; j< dlina_storoni; j++)
  for (int i= 0; i< dlina_storoni/2; i++)
   swap(matritsa[i][j], matritsa[i+ dlina_storoni/2][j]);
 
 //и ещё смотрим, чё получилось
 matritsa.vivod ();
 
 getchar ();
 return 0;
}
Миниатюры
Переставить блоки матрицы размера n*n крест накрест.  
1
11.07.2011, 22:10

Не по теме:

Цитата Сообщение от kravam Посмотреть сообщение
Для того, чтобы работа с матрицами была эффективной и приятной, необходимо скачать у меня класс mymatrix
kravam, где скачать?:)а документация есть?)

0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
11.07.2011, 22:18
Скачать у меня, этот класс мой, вся документация на русском языке присутствует.
0
11.07.2011, 22:23

Не по теме:

Цитата Сообщение от kravam Посмотреть сообщение
Скачать у меня, этот класс мой, вся документация на русском языке присутствует.
ну клоун...

0
11.07.2011, 22:24

Не по теме:

Цитата Сообщение от kravam Посмотреть сообщение
Скачать у меня, этот класс мой, вся документация на русском языке присутствует.
ну дык кинь ссылку в личку)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.07.2011, 22:24
Помогаю со студенческими работами здесь

Получить новую матрицу, переставляя ее блоки размера n крест-накрест
Пусть дана вещественная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размера n, так: а) крест-накрест; ...

Получить новую матрицу, переставляя ее блоки размера n*n крест-накрест
Здравствуйте, помогите с заданием. Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размера...

Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размера n*n крест-накрест
Здравствуйте, помогите с заданием. Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размера...

Получить новую матрицу, переставляя блоки исходной крест-накрест
Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя её блоки размера nxn крестнакрест

Получить новую матрицу, переставляя блоки исходной размером n x n крест-накрест
Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размером n x n крест-накрест; кто может...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru