![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
FENIX |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 45 Пол: Мужской Репутация: ![]() ![]() ![]() |
Условия:
1) Массив должен иметь не менее 12 и не более 20 строк и столбцов. 2) Перед обработкой данных необходимо вывести исходный массив на экран. Задание: Задан квадратный массив целых чисел в диапазоне от -99 до 99. Переместить числа так, чтобы эта операция была эквивалентна повороту массива на 90 градусов по часовой стрелке. Результат вывести на экран. Заранее спасибо. З.Ы. Всем GL & HF |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
FENIX
Дополнительным массивом той же размерности пользоваться разрешено? |
FENIX |
![]()
Сообщение
#3
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 45 Пол: Мужской Репутация: ![]() ![]() ![]() |
2 volvo
Вроде да, но написано, что в программе обязательно наличие процедур/функций с передаваемыми параметрами. |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
FENIX
Тогда вот: Код Const n = 4; Type TMatrix = array[1 .. n, 1 .. n] of integer; Procedure Transpose(Var res: TMatrix; m: TMatrix); var i, j: integer; begin for i := 1 to n do for j := 1 to n do res[j, n - i + 1] := m[i, j] end; procedure printMatrix(m: TMatrix); var i, j: integer; begin for i := 1 to n do begin for j := 1 to n do write(m[i, j]:4); writeln end end; const a: TMatrix = ((1,2,3,4),(5,6,7,8),(9,10,11,12),(13,14,15,16)); var b: TMatrix; begin Writeln('before:'); PrintMatrix(a); Transpose(b, a); Writeln('after:') PrintMatrix(b) end. Все выполняется - в программе присутствуют процедуры с передаваемыми параметрами, и результат - исходная матрица повернута на 90 град. Только добавь генерацию матрицы через Random (я задал ее константой) |
FENIX |
![]()
Сообщение
#5
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 45 Пол: Мужской Репутация: ![]() ![]() ![]() |
volvo
Спасибо, все работает, но что-то я не понял, как (например) повернуть ее на 90 против часовой стрелки? Заранее спасибо. |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
FENIX
Изменяй процедуру Transpose: Код Procedure Transpose(Var res: TMatrix; m: TMatrix); var i, j: integer; begin for i := 1 to n do for j := 1 to n do res[n-j+1, i] := m[i, j] end; |
Гость |
![]()
Сообщение
#7
|
Гость ![]() |
А можно как-то повернуть квадратную матрицу на 90 градусов по часовой стрелке, не использую дополнительный массив?
|
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Цитата(Гость @ 8.02.2006 22:17) А можно как-то повернуть квадратную матрицу на 90 градусов по часовой стрелке, не использую дополнительный массив? И это можно, правда сложнее немного: const Тестировалось на матрицах 4х4 и 5х5... |
Гость |
![]()
Сообщение
#9
|
Гость ![]() |
И это можно, правда сложнее немного: const Тестировалось на матрицах 4х4 и 5х5... программа поворачивает не по часовой |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Не надо бред писать, а?
before: Это что, против часовой? ![]() |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 17:28 |