Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/106: Рейтинг темы: голосов - 106, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 26.03.2011
Сообщений: 3

Переворот массива относительно главной диагонали (транспонирование)

28.09.2011, 10:27. Показов 23563. Ответов 83
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1) Нужно написать программу которая будет выводить массив

int m[M][N]={...};

Вывести массив на экран и затем переворот массива относительно главной диагонали (транспонирование).

2) Все тоже самое как в первом только значения N и М вводятся с клавиатуры.
3) Все тоже самое как в первом только теперь создать функцию
Void displayMatrix (int**m, int N, int M);

Пожалуйста помогите, в долгу не останусь!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.09.2011, 10:27
Ответы с готовыми решениями:

Отражение двумерного массива относительно главной диагонали
Помогите пожалуйста, надо отразить заданный двумерный массив относительно главной диагонали.

Транспонирование матрицы относительно побочной диагонали
Здравствуйте уважаемые знатоки. У меня есть код матрицы в С++ #include <stdafx.h> #include <iostream> #include...

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

83
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
28.09.2011, 17:26
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от alkagolik Посмотреть сообщение
любой n мерный массив в машине преобразуется в одномерный. это факт.
Нет. Ведь речь о динамическом массиве, массиве массивов, который принципиально невозможно преобразовать в одномерный - типы не совпадают.

Добавлено через 1 минуту
Это то же самое, что говорить, что vector<vector<int> > преобразуется в vector<int>.

Добавлено через 56 секунд
Или vector<int> a[N] преобразовывается в int a[N*XXX];

Добавлено через 1 минуту
И как при компиляции сделать преобразования, данные для которых получаются в runtime?

Добавлено через 3 минуты
Цитата Сообщение от alkagolik Посмотреть сообщение
или я ошибаюсь?
Мне надоело. Вот. http://codepad.org/Csmr4FAE
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
28.09.2011, 17:27
Цитата Сообщение от Deviaphan Посмотреть сообщение
Ведь речь о динамическом массиве, массиве массивов, который принципиально невозможно преобразовать в одномерный - типы не совпадают
немного подробней можно?
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
28.09.2011, 17:30
У кого равенство выполняется, отформатируйте винт и идите учитесь на штукатуров.

Добавлено через 2 минуты
Цитата Сообщение от alkagolik Посмотреть сообщение
немного подробней можно?
У массива тип int. У массива указателей тип int*. Как видишь, это разные типы.
У динамического массива, тип int* (указатель на массив == указатель на переменную). У динамического массива указателей тип int** (указатель на массив указателей == указатель на указатель). Как видишь, это разные типы.
1
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
28.09.2011, 17:44
ну да я понял. шутка юмора:
C
1
2
3
4
5
6
7
8
9
10
11
arr = (int**) malloc(N * sizeof(int*));
 
    for (i = 0; i != N; ++i)
        arr[i] = (int*) malloc(M * sizeof(int));
    
    tmp = M;
    for (i = 0; i != N; ++i){
        for (k = 0; k != tmp; ++k)
            arr[i][k] = rand() % 10;
        --tmp;
    }
вывод
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
введите количество строк
8
введите количество столбцов
8
 
исходная матрица
 3 4 8 0 9 1 4 7
 4 3 3 6 7 0 5
 4 7 3 1 9 9
 3 7 9 1 6
 2 3 1 4
 9 4 0
 7 6
 0
 
транспонированная матрица
 3 4 4 3 2 9 7 0
 4 3 7 7 3 4 6
 8 3 3 9 1 0
 0 6 1 1 4
 9 7 9 6
 1 0 9
 4 5
 7
0
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
28.09.2011, 17:53
Цитата Сообщение от alkagolik Посмотреть сообщение
двумерный массив arr[N][M]
arr это указатель(если быть точным, то указатель на указатель на float), который занимает в памяти 4 или 8 байт(В зависимости от архитектуры).
(по мнению компилятора)
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
28.09.2011, 18:07
для квадратных матриц
сорц
C
1
2
3
4
5
6
7
8
9
printf("\nисходная матрица\n");
    for(i = 0; i < N; ++i){
        for(k = 0; k < M; ++k){
            if (i == k) printf("     %d    ", arr[i][k]);
            else if ((i + k) == M - 1) printf("     %d    ", arr[i][k]);
            else printf(" %d", arr[i][k]);
        }
        printf("\n");
    }

вывод
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
введите количество строк
8
введите количество столбцов
8
 
исходная матрица
     0     1 0 0 1 1 0     0    
 0     0     1 1 1 0     0     0
 0 0     1     0 1     1     0 1
 1 1 1     1         0     0 0 0
 1 0 1     1         1     1 1 1
 0 1     0     1 1     1     1 1
 1     1     1 0 0 1     1     0
     0     0 1 0 0 1 1     0    
 
транспонированная матрица
     0     0 0 1 1 0 1     0    
 1     0     0 1 0 1     1     0
 0 1     1     1 1     0     1 1
 0 1 0     1         1     1 0 0
 1 1 1     0         1     1 0 0
 1 0     1     0 1     1     1 1
 0     0     0 0 1 1     1     1
     0     0 1 0 1 1 0     0
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
28.09.2011, 19:26
Deviaphan, как и обещал сетевой TCP сервер и клиент. Написал в понятной тебе консоли поэтому для задействования русского в сервере выставь шрифт Lusinda Console (там использовал SetConsoleOutputCP). При запуске клиента вылезут две строки конфига вбивай айпишник той машины на котором запущен сервер и порт сервака, порт вводить только 44356, решил убрать выбор порта в самом сервере, а 44356 более менее не заюзаный порт так что как выбрал так и выбрал. Клиентов может біть несколько и на разных машинах!Тестируй и удач в написании детских програмок

Не по теме:

PS:Жду чего нибудь пристойного от тебя...

Миниатюры
Переворот массива относительно главной диагонали (транспонирование)   Переворот массива относительно главной диагонали (транспонирование)  
Вложения
Тип файла: rar TCPClient.exe.rar (14.6 Кб, 28 просмотров)
Тип файла: rar TCPServer.exe.rar (23.4 Кб, 25 просмотров)
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
28.09.2011, 19:49

Не по теме:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Евгений М., а вы сами можите описать матсмысл транспонирования не квадратной матрицы?
Что такое математический смысл? Пока выражение "матсмысл транспонирования не квадратной матрицы" я понимаю как "определение транспонированной матрицы".



Добавлено через 46 секунд

Не по теме:

Народ, просьба мерится "У кого длиннее" в другой теме.

1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
28.09.2011, 22:38
b1ood, вот ответ на 1-е (статический массив)
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
#include <stdio.h>
#include <conio.h>
 
int main()
{
    //статический массив
    double arr [][5] = //сколько хотим строк и 5 столбцов
    {
        {1.2,2.2,3.3,4.4,5.5},
        {0,1,2,3,4},
        {-3,0,5,6.4,1},
        {-3,0,5,6.4,1},
        {0,0,0,0,1}
    };
    double buf;
    //Узнаём число строк
    unsigned long i,j,m = sizeof(arr)/sizeof(arr[0][0]);//Так можно опрделять число элементов в стат массивах
    m /= 5;//Столбцов 5 значит число строк число элементов/5
    for(i = 0; i < m; i++,printf("\r\n"))
    for(j = 0; j < 5; j++)
        printf("%.f ",arr[i][j]);
    printf("\tTransponed array\r\n");
    //Транспонирование
     for(i = 0; i < m; i++,printf("\r\n"))
     for(j = 0; j < m; j++)
     {
         if(i < m/2)
         {
             buf = arr[i][j];
             arr[i][j] = arr[j][i];
             arr[j][i] = buf;
         }
         printf("%.f ",arr[i][j]);
     }
     printf("Press any key to continue\r\n");
     getch();
     return 0;
}
1 2 3 4 6
0 1 2 3 4
-3 0 5 6 1
-3 0 5 6 1
0 0 0 0 1
Transponed array
1 0 -3 -3 0
0 1 0 0 0
3 2 5 6 1
4 3 5 6 1
6 4 0 0 1
Press any key to continue
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
29.09.2011, 07:43
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Deviaphan, как и обещал сетевой TCP сервер и клиент. Написал в понятной тебе консоли поэтому для задействования русского в сервере выставь шрифт Lusinda Console (там использовал SetConsoleOutputCP). При запуске клиента вылезут две строки конфига вбивай айпишник той машины на котором запущен сервер и порт сервака, порт вводить только 44356, решил убрать выбор порта в самом сервере, а 44356 более менее не заюзаный порт так что как выбрал так и выбрал. Клиентов может біть несколько и на разных машинах!Тестируй и удач в написании детских програмок

Не по теме:

PS:Жду чего нибудь пристойного от тебя...

баттл был по МФС, так что пиши уж на МФС. Во вторых, ты уже использовал этот или аналогичный код в одной из тем, а копипаста из загашника не подходит под определение баттла. Ладно, пофиг, ты меня опять грациозно уделал.
Подведем итоги баттла:
факт 1: Я поленился нагуглить код клиент-серверного приложения. Я ленивая бяка.
факт 2: Ты не понимаешь, как выделяется память для многомерных массивов. Не пнимаешь, как оги представлены в памяти. Твой компилятор поддерживает тебя в этом благом начинании и работает не корректно (я не думаю, что это так, но почему я должен сомневаться в твоей честности). Ты не понимаешь, почему твои некоректно написаные программы выдают правильные результаты ( ответ вида - но ведь результат правильный - это не ответ, а просто совпадение), поэтому считаешь их правильными даже после того, как тебе многократно указали на ошибку.
Итого: голосование по поводу того, кто из нас больший неудачнег считаю открытым.
1
29.09.2011, 09:23

Не по теме:

Цитата Сообщение от Deviaphan Посмотреть сообщение
Я поленился нагуглить код клиент-серверного приложения.
- ну нагугли умник(кода с сеткой там нет), хоть бы екзешник выложил, если это так как ты сказал можно нагуглить!Хочешь MFC иди напиши авифреймс о котором постил, не хватало ещё на тебя время тратить интрфейс писать и прочее, достаточно даже того что в твоём клиенте конфиг есть, ну да ладно я же нагуглил всё:)

Цитата Сообщение от Deviaphan Посмотреть сообщение
Ты не понимаешь, как выделяется память для многомерных массивов. Не пнимаешь, как оги представлены в памяти.
- оставь свои ты не понимаешь

Цитата Сообщение от Deviaphan Посмотреть сообщение
поэтому считаешь их правильными даже после того, как тебе многократно указали на ошибку.
- приводи ексепщины ероры а потом пиши об ошибках, да уж твои знания всеобъемлющи, въедь в мой код сначала полностью а не с
того примитива знаний которым обладаешь. Ладно кроме блеяния я ничего не услышал.
Давай гугли сетевой сервер клиент, жду...

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

0
29.09.2011, 10:23
Лучший ответ Сообщение было отмечено как решение

Решение

Не по теме:

"Это ты в жизни такой крутой, а вот встретить бы тебя в сети!"
.)))

Юра, если ты не понимаешь, как работают элементарные вещи, то более сложные программы у тебя работают по несчастливой случайности.
И, между прочим, я пузырьковую сортировку могу реализовать, не заглядывая в гугл, а ты говоришь, что я ничего не знаю.
А ты прикольный. Как до компа доберусь, в друзья тебя добавлю.)

4
29.09.2011, 10:41

Не по теме:

Deviaphan, если бы ты пообещал больше никогда не заходить на форум после того как напишу TCP MFC сервер клиент, я бы с радостью до конца дня их написал:)
На счёт MFC повтори хотябы это(PS - для пользования exe необходим компьютер:D и 32-XP на борту)

Цитата Сообщение от Deviaphan Посмотреть сообщение
Как до компа доберусь, в друзья тебя добавлю.)
- избавь меня от этого, тут готов даже умолять чтобы этого не делал:D

Вложения
Тип файла: rar CdEject.exe.rar (7.2 Кб, 15 просмотров)
Тип файла: rar ProcsViewer.exe.rar (8.3 Кб, 12 просмотров)
Тип файла: rar ConfigView.exe.rar (15.3 Кб, 14 просмотров)
0
29.09.2011, 10:52

Не по теме:

Цитата Сообщение от Deviaphan Посмотреть сообщение
не заглядывая в гугл, а ты говоришь, что я ничего не знаю.
- я не пишу изо дня в день програмки для сортировки массивов не понятно даже зачем, если спутал два алгоритма сортировки мне достаточно прямой вставки для сортировки,
а вот что касается чего-то сложного ты в кусты и как тут после такого в серьёз тебя воспринимать

0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
29.09.2011, 11:12
Холи-вар, холи-вар!
А как воспринимать всерьез тебя, если ты не понимаешь, как создаешь многомерные массивы? И даже компилятор свой хакнул, чтобы он как и ты, неправильно, работал!

Ладно, уговорил. Не ббуду в друзья добавлять, я все равно еще эту функцию не нашел в меню.)
ПыСы: Не могу экзешник запустить, у меня ARM.(

Добавлено через 5 минут

Не по теме:

Уаааааау! Выдвигалка СиДирома, ты мега крут!
У Доктора (извиняюсь, забыл имя) в ФАКе есть решение.)

Перечислил процессы системы! Уааааауу, ты ультрамегакрут!
А третью прогу я по названию не угадал.

3
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
29.09.2011, 11:18
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
а вы сами можите описать матсмысл транспонирования не квадратной матрицы?
Не пойму почему такое простое понятие, как транспонирование матрицы, вызывает сложности. Эта операция определена для любой матрицы. Смысл, да хотя бы в определения ранга матрицы. Есть теорема, что ранг системы строк совпадает с рангом системы столбцов и совпадает с рангом матрицы. Поэтому можно приводить к ступенчатому виду исходную матрицу, либо транспонированную, ранг матрицы от этого не изменится.
0
 Аватар для alkagolik
1599 / 622 / 113
Регистрация: 15.07.2011
Сообщений: 3,548
29.09.2011, 13:03
Цитата Сообщение от Deviaphan Посмотреть сообщение
И даже компилятор свой хакнул, чтобы он как и ты, неправильно, работал!
не вру, хохотал как ненормальный. пацаны хватит ерундой заниматься, переход на личности стирает объективность. бедный ТС, всего лишь попросил задачки решить. ржунимагу
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
29.09.2011, 13:06

Не по теме:

Цитата Сообщение от Deviaphan Посмотреть сообщение
А третью прогу я по названию не угадал.
- возьми запусти выбери графический файл (можно и гиф анимацию) и наслаждайся его видом вместо скучного фона папки, та что тебе говорить

Цитата Сообщение от Deviaphan Посмотреть сообщение
Перечислил процессы системы!
- де..л прости господи! важно не то что перечислил, а то что для этого использовал ты хоть слышал про HKEY_PERFORMANCE???

Цитата Сообщение от Deviaphan Посмотреть сообщение
У Доктора (извиняюсь, забыл имя) в ФАКе есть решение.)
- ну ну сделай чтобы трэй был и все сиди-лотки выдвигались/задвигались, блин сейчас допаяю смпт майлер и выложу как пример к которому должен твой EasyMail стремиться

От себя представь проеты аналогичной функциональности!Флудер



Добавлено через 1 минуту
Цитата Сообщение от alkagolik Посмотреть сообщение
бедный ТС, всего лишь попросил задачки решить. ржунимагу
- он вчера во первых поблагодарил меня здесь в топике второе получил ответ на все вопросы

Не по теме:

Я сказал Deviaphan, тебя сейчас уделаю в EasyMail, только отвечать не буду что у тебя там не так, но не так там есть:)



Добавлено через 1 минуту
Deviaphan, чё ты молчишь давай в студию хоть 1 проект!
0
29.09.2011, 13:12

Не по теме:

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
но не так там есть
Я знаю, иначе бы не просил в теме помощи.(

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
чё ты молчишь давай в студию хоть 1 проект!
Кажется, я уже давно ответил, что кроме пузырьковой сортировки ни одной программы не написал.

1
29.09.2011, 13:17

Не по теме:

Цитата Сообщение от Deviaphan Посмотреть сообщение
Кажется, я уже давно ответил, что кроме пузырьковой сортировки ни одной программы не написал.
:rofl::D:D
PS:Ладно я выложу потом екзешник почтовика...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.09.2011, 13:17

Квадратная матрица, симметричная относительно главной диагонали задана верхним треугольником в виде одномерного массива
квадратная матрица симметричная относительно главной диагонали задана верхним треугольником в виде одномерного массива . Восстановить...

Квадратная матрица, симметричная относительно главной диагонали, задана верхним треугольником в виде одномерного массива.Восстановить исходную матрицу
Квадратная матрица, симметричная относительно главной диагонали, задана верхним треугольником в виде одномерного массива. Восстановить...

Проверка на симметричность относительно главной диагонали
Дан массив целых чисел размера n x n, элементами которого являются 0 и 1. Проверить, является ли массив симметричным относительно главной...

Дана квадратная матрица. Произвести транспонирование (переворот) матрицы относительно ее главной диагонали
Дана квадратная матрица. Произвести транспонирование (переворот) матрицы относительно ее главной диагонали Sub Макрос1() Dim a As...

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


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

Или воспользуйтесь поиском по форуму:
80
Закрытая тема Создать тему
Новые блоги и статьи
28. КОнкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования? Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная. Где разрыв . . .
27. Планы на разработку функциональных требований к строительству внутри модели пищеблока (или не только его?)
anaschu 22.06.2026
Что уже реализовано и даёт конфликты «бесплатно» Самый простой конфликт уже работает — конфликт за ресурс-работника. Заданий больше, чем доступных поваров → очередь в queue1. Это прямое отражение. . .
26. мед мат модель.Какие типы конфликтов функциональных требований можно рассчитать через ДЕС-моделирование (СМО) в AnyLogic?
anaschu 22.06.2026
Что ДЕС/ СМО умеет считать напрямую: Конфликты за ресурсы (очереди, узкие места). Несколько типов агентов (повара, учителя, рабочие, пациенты) претендуют на один ресурс (лифт, вход, коридор,. . .
25 модель здравосохранения и функциональных требований к пищеблоку: конфликты функциональных требований.
anaschu 22.06.2026
Есть ли данные о том, какие функциональные/ эксплуатационные требования или их сочетания труднее всего учитывать при проектировании зданий? Да, такие данные есть, и они хорошо описаны и в российской,. . .
Remote Connection Manager
DevAlt 21.06.2026
Написал для себя небольшую прилагу: https:/ / github. com/ altbodhi/ ReConMan По итогу пришел к мысли, что DU не дружат с существующими технологиями. От сериализации до отображения в реляционную. . .
Администрация Хабра удаляет новые энрегоэфективные алгоритмы, которые не западной школы кода, и вовсе никак не сгенерировавны.
Hrethgir 20.06.2026
Делается это, как замечено, при правках - при объявлении концептуальных отличий в алгоримах. Делается это, по линейке событий - после дополнения публикации основными отличиями от основных западных. . .
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2. Задача: контроль уникальности строк в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru