1 / 1 / 1
Регистрация: 12.11.2012
Сообщений: 94
1

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

15.10.2013, 19:49. Показов 3894. Ответов 6
Метки нет (Все метки)

Здравствуйте, помогите с заданием. Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размера n*n крест-накрест.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.10.2013, 19:49
Ответы с готовыми решениями:

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

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

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

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

6
шКодер самоучка
2173 / 1880 / 912
Регистрация: 09.10.2013
Сообщений: 4,135
Записей в блоге: 7
15.10.2013, 20:56 2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void swap(int&x,int&y) {
    int tmp;
    tmp = x;
    x = y;
    y=tmp;
}
void swapX(int** table, size) {
    int n,i,j,tmp;
    n = size / 2;
    for(i=0; i <n; i++) {
        for(j=0;j<n;j++){
            swap(table[i][j], table[i+n][j+n]);
            swap(table[i+n][j], table[i][j+n]);
        }
    }
}
что то в этом роде
1
Заблокирован
23.10.2013, 00:30 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 3
 
double **initialArray()
{   int i,j;
    double **res = (double **)malloc(2*N*sizeof(double*));
    for(i = 0; i<2*N; i++)
        res[i] = (double*) malloc(2*N*sizeof(double));
 
    for(i = 0; i<2*N; i++)
        for(j = 0; j<2*N; j++)
            res[i][j] = 0.1*(rand()%50);
 
    return res;
}
 
double **tearOff(double **a, int row, int col)
{   int i,j;
    double **res = (double **)malloc(N*sizeof(double*));
    for(i = 0; i<N; i++)
        res[i] = (double*) malloc(N*sizeof(double));
 
    for(i =0; i<N; i++)
        for(j = 0; j<N; j++)
            res[i][j] = a[i+row][j+col];
 
    return res;
}
 
void putTogether(double **a, double **piece, int row, int col)
{   int i,j;
    
    for(i = 0; i<N; i++)
        for(j = 0; j<N; j++)
            a[i+row][j+col] = piece[i][j];
}
 
void showResult(double **a)
{   int i,j;
    
    for(i = 0; i<2*N; i++)
    {   for(j = 0; j<2*N; j++)
            printf("%5.1lf", a[i][j]);
        printf("\n");
    }
}
 
 
int main()
{   double **arr, **ul, **ur, **dl, **dr;
    srand((unsigned int) time (NULL));
    
    arr = initialArray();
    printf("Initial array:\n");
    showResult(arr);
    
    //указатели на каждую из четвертей
    ul = tearOff(arr, 0, 0);    //верхняя левая четверть
    ur = tearOff(arr, 0, N);    //верхняя правая
    dl = tearOff(arr, N, 0);    //нижняя левая
    dr = tearOff(arr, N, N);    //нижняя правая
 
    //пересобираем матрицу
    putTogether(arr, dr, 0, 0); //нижняя правая -> верхняя левая
    putTogether(arr, dl, 0, N); //нижняя левая -> верхняя правая
    putTogether(arr, ur, N, 0); //верхняя правая -> нижняя левая
    putTogether(arr, ul, N, N); //верхняя левая -> нижняя правая
 
    printf("\n\nArray after blocks' replacing\n");
    showResult(arr);
 
    free(arr);
    free(ul); free(ur); free(dl); free(dr);
 
    getchar();
    return 0;
}
0
1 / 1 / 1
Регистрация: 12.11.2012
Сообщений: 94
23.10.2013, 20:04  [ТС] 4
выходит ошибка underfined symbol showResult.(((
0
Заблокирован
24.10.2013, 17:29 5
выходит ошибка
Ошибка в слове "underfined"?

Совет: аккуратно скопипастить ВСЁ, ничего не трогать, запустить, любоваться:
Изображения
 
1
1 / 1 / 1
Регистрация: 12.11.2012
Сообщений: 94
24.10.2013, 21:36  [ТС] 6
но блин задача хороша...
0
IrineK
25.10.2013, 04:26     Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размера n*n крест-накрест
  #7

Не по теме:

Вот так намного позитивней )

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.10.2013, 04:26

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

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

Дана квадратная матрица порядка 2n, получить новую матрицу переставляя 1 и 2 ее блоки
1.дана действительная квадратная матрица порядка 2n. получить новую матрицу переставляя 1 и 2 ее...

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


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

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

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