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

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

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

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

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

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

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

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

18
5079 / 2651 / 2349
Регистрация: 10.12.2014
Сообщений: 10,028
13.06.2019, 15:56 2
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,241
13.06.2019, 15:57  [ТС] 3
JuriiMW, спасибо,а можно через отдельную функцию?)
0
5079 / 2651 / 2349
Регистрация: 10.12.2014
Сообщений: 10,028
13.06.2019, 15:58 4
Можно. Разрешаю!
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,241
13.06.2019, 16:03  [ТС] 5
JuriiMW, Благодарю за разрешение,пойду делать)
А можете через отдельную фунцкию написать?
0
5079 / 2651 / 2349
Регистрация: 10.12.2014
Сообщений: 10,028
13.06.2019, 16:04 6
Чем matrgen не отдельная?
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,241
13.06.2019, 16:07  [ТС] 7
JuriiMW, это встроенный метод,мне нужен алгоритм
0
2309 / 1420 / 517
Регистрация: 07.04.2017
Сообщений: 4,723
13.06.2019, 16:18 8
Алгоритм вы тоже видите, если Ctrl+тыкните на MatrGen. Хотя то что вам нужно - это вообще только код из лямбды.
1
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,241
13.06.2019, 18:03  [ТС] 9
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
2309 / 1420 / 517
Регистрация: 07.04.2017
Сообщений: 4,723
13.06.2019, 18:06 10
Вопрос тупой. Разбирайтесь в коде и эксперементируйте, пробуйте что то менять.
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,241
13.06.2019, 18:18  [ТС] 11
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
2309 / 1420 / 517
Регистрация: 07.04.2017
Сообщений: 4,723
13.06.2019, 18:19 12
Отладку юзайте.
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,241
13.06.2019, 18:22  [ТС] 13
он ошибку выдает,Индекс находился вне границ массива
0
5079 / 2651 / 2349
Регистрация: 10.12.2014
Сообщений: 10,028
14.06.2019, 04:27 14
Потому, что вы не разобравшись подставляете что-попало и куды попало!
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,241
14.06.2019, 08:21  [ТС] 15
JuriiMW, как сказал Sun Serega я экперементирую)но сам разобраться с этим не могу,можете поможете?)
0
5079 / 2651 / 2349
Регистрация: 10.12.2014
Сообщений: 10,028
14.06.2019, 08:32 16
Размерность исходной матрицы 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,241
14.06.2019, 08:41  [ТС] 17
JuriiMW, а разве n*m и m*n не одно и тоже?

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

Хотя, вроде бы, одно и то же… ;–(
0
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,241
14.06.2019, 08:55  [ТС] 19
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
14.06.2019, 08:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.06.2019, 08:55
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru