Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,249

Массив: Повернуть двумерный массив на 90 градусов...

13.06.2019, 12:57. Показов 1748. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан динамический двумерный массив размера m x n
нужно повернуть двумерный массив на 90 градусов через функцию или просто программу
заранее спасибо :-)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.06.2019, 12:57
Ответы с готовыми решениями:

Повернуть массив на 180 градусов
Повернуть содержимое квадратной матрицы A (размер n × n) по часовой стрелке на 180 градусов, считая центром поворота центр симметрии...

Перевернуть двумерный целочисленный массив против часовой стрелки на 90 градусов
Дан двумерный целочисленный массив размерностью 10 на 10 рандомом. Перевернуть данный массив против часовой стрелки на 90 градусов. Код,...

Создать двумерный массив все четные элементы переписать в одномерный массив
создать двумерный массив все четные элементы переписать в одномерный массив

18
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
13.06.2019, 15:56
Pascal
1
2
3
4
5
6
begin
  var(m,n):=(3,4);
  var a := MatrGen(m,n,(r,c)->r*n+c+1).Println;
  WriteLn('~'*20);
  a := MatrGen(n,m,(r,c)->a[m-c-1,r]).Println;
end.
1
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,249
13.06.2019, 15:57  [ТС]
JuriiMW, спасибо,а можно через отдельную функцию?)
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
13.06.2019, 15:58
Можно. Разрешаю!
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,249
13.06.2019, 16:03  [ТС]
JuriiMW, Благодарю за разрешение,пойду делать)
А можете через отдельную фунцкию написать?
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
13.06.2019, 16:04
Чем matrgen не отдельная?
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,249
13.06.2019, 16:07  [ТС]
JuriiMW, это встроенный метод,мне нужен алгоритм
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
13.06.2019, 16:18
Алгоритм вы тоже видите, если Ctrl+тыкните на MatrGen. Хотя то что вам нужно - это вообще только код из лямбды.
1
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,249
13.06.2019, 18:03  [ТС]
Sun Serega спасибо)

Добавлено через 1 час 36 минут
а как в MatrGen передать значения другой матрицы?

Добавлено через 5 минут
точнее как переделать этот код так,что бы значения для MatrGen передавались значения другой матрицы
Pascal
1
2
3
4
5
6
begin
  var(m,n):=(3,4);
  var a := MatrGen(m,n,(r,c)->r*n+c+1).Println;
  WriteLn('~'*20);
  a := MatrGen(n,m,(r,c)->a[m-c-1,r]).Println;
end.
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
13.06.2019, 18:06
Вопрос тупой. Разбирайтесь в коде и эксперементируйте, пробуйте что то менять.
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,249
13.06.2019, 18:18  [ТС]
Sun Serega, без понятия что менять,по этому и задан вопрос

Добавлено через 6 минут
я допер,все работает,только по-моему криво...

Добавлено через 1 минуту
а нет,все работает,спасибо

Добавлено через 2 минуты
если матрица прямоугольная,то не работает,помогите разобраться,пожалуйста)
Pascal
1
2
3
4
5
function TutnOnN(self: array [,] of integer): array [,] of integer; extensionmethod;
begin
  
  result := MatrGen(self.RowCount, self.ColCount, (r, c)-> self[self.ColCount - c - 1, r]);
end;
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
13.06.2019, 18:19
Отладку юзайте.
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,249
13.06.2019, 18:22  [ТС]
он ошибку выдает,Индекс находился вне границ массива
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
14.06.2019, 04:27
Потому, что вы не разобравшись подставляете что-попало и куды попало!
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,249
14.06.2019, 08:21  [ТС]
JuriiMW, как сказал Sun Serega я экперементирую)но сам разобраться с этим не могу,можете поможете?)
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
14.06.2019, 08:32
Размерность исходной матрицы m·n, где m — число строк, а n — число колонок.
Размерность новой матрицы n·m, где n — число строк, а m — число колонок.
r и с — это индексы текущего элемента в ряду и колонке соответственно.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
begin
  var(m,n):=(3,4);
  var a := MatrGen(m,n,(r,c)->r*n+c+1).Println;
  WriteLn('~'*20);
  //a := MatrGen(n,m,(r,c)->a[m-c-1,r]).Println;
  var b : array [,] of Integer;
  SetLength(b, a.GetLength(1), a.GetLength(0));
  for var r := 0 to b.GetLength(0)-1 do
    for var c := 0 to b.GetLength(1)-1 do
      b[r,c] := a[a.GetLength(0)-c-1,r];
  b.Println;
end.
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,249
14.06.2019, 08:41  [ТС]
JuriiMW, а разве n*m и m*n не одно и тоже?

Добавлено через 3 минуты
JuriiMW, извиняюсь,тупанул)
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
14.06.2019, 08:46
Если 100 кирпичей сложить в один ряд, то это вам легко удастся.
А если попробуете эти же 100 кирпичей сложить друг на друга вертикально, то вас ждёт неудача!

Хотя, вроде бы, одно и то же… ;–(
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,249
14.06.2019, 08:55  [ТС]
JuriiMW ...
Я не понимаю( почему результатом работы функции оказывается ваша матрица...
Pascal
1
2
3
4
5
6
7
8
9
10
11
function TutnOnN(self: array [,] of integer): array [,] of integer; extensionmethod;
begin
  var a := MatrGen(self.RowCount, self.ColCount, (r, c)-> r * self.ColCount + c + 1);
  
  var b: array [,] of Integer;
  SetLength(b, a.GetLength(1), a.GetLength(0));
  for var r := 0 to b.GetLength(0) - 1 do
    for var c := 0 to b.GetLength(1) - 1 do
      b[r, c] := a[a.GetLength(0) - c - 1, r];
  result := b;
end;
Как мне правильно написать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.06.2019, 08:55
Помогаю со студенческими работами здесь

Двумерный массив.Получить массив x1,x2.xn по правилу xi=0. Найти также произведение всех элементов матрицы
Дана матрица n*n. Получить массив x1,x2...xn по правилу xi=0, если все элементы i го столбца и i ой строки меньше 1, иначе xi=1. найти...

Повернуть матрицу на 90 градусов.
Помогите пожалуйста 🙏🏾 Задана квадратная матрица N-го порядка, состоящая 0 и 1. Повернуть элементы матрицы на 90 градусов по часовой...

Повернуть матрицу на 90 градусов
В двумерный массив размером NxN ввести произвольные числа из диапазона от -4 до 10 (включая границы), N - заданное натуральное число....

Повернуть матрицу на 90 градусов
Задать матрицу размером со случайными числами, после получения ввести число, сколько раз нужно повернуть матрицу на 90 градусов. (1 - 90...

Вставить одномерный массив в двумерный массив так, чтобы второй столбец был отсортирован по убыванию
Помогите пожалуйста решить задачку: Вставить в качестве новой строки одномерный массив В в двумерный массив А так, чтобы второй столбец...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru