Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.08.2018, 14:37   #1
Firstaid
Пользователь
 
Регистрация: 05.04.2018
Сообщений: 27
Сообщение Сформировать массив Z(N,N). Повернуть его на 270 градусов

Доброго времени суток всем!

Такое задание: Сформировать массив Z(N,N). Повернуть его на 270 градусов.

Как сформировать квадратную матрицу я знаю, а вот как повернуть ее на 270 градусов - нет. Каким образом это можно сделать?
Firstaid вне форума Ответить с цитированием
Старый 11.08.2018, 14:51   #2
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 729
По умолчанию

Вероятно, используя фокусы с координатами. А на каком языке это надо сделать?
Код:
//ST[stroka][stolbec] - старый массив, данные
//NOV[stroka][stolbec] = {0};
int str, stl;

for(str = 0; str < N; str++)       //координаты ячейки в старом массиве
    for(stl = 0; stl < N; stl++)
        NOV[stl][N-str] = ST[str][stl];
Проверьте код - я не проверял. Потом скажете - работает/нет, ладно?

Последний раз редактировалось Cuprum5; 11.08.2018 в 21:14. Причина: Добавил код.
Cuprum5 вне форума Ответить с цитированием
Старый 11.08.2018, 15:08   #3
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

http://forundex.ru/yap/Povernutj-mat...radusov-634053
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 11.08.2018, 15:09   #4
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 729
По умолчанию

Зачем эти rotate90(); - мой код гораздо компактнее и удобнее, возьмите лучше его.

Последний раз редактировалось Cuprum5; 11.08.2018 в 21:37.
Cuprum5 вне форума Ответить с цитированием
Старый 11.08.2018, 20:20   #5
RyV_9
 
Регистрация: 11.08.2018
Сообщений: 3
По умолчанию

Если задан поворот на 270 градусов против часовой стрелки (традиционное задание поворота в декартовых осях), то он равносилен повороту на 90 градусов по часовой стрелке. Поэтому ответ Cuprum5 верен с точностью до последней строки, надо чуть исправить:
NOV[stl][N-str-1] = ST[str][stl];
RyV_9 вне форума Ответить с цитированием
Старый 13.08.2018, 20:25   #6
Firstaid
Пользователь
 
Регистрация: 05.04.2018
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Cuprum5 Посмотреть сообщение
А на каком языке это надо сделать?
На Basic. В среде Visual Basic 6.0
Firstaid вне форума Ответить с цитированием
Старый 13.08.2018, 20:29   #7
Firstaid
Пользователь
 
Регистрация: 05.04.2018
Сообщений: 27
По умолчанию

Цитата:
Сообщение от RyV_9 Посмотреть сообщение
Поэтому ответ Cuprum5 верен с точностью до последней строки, надо чуть исправить:
NOV[stl][N-str-1] = ST[str][stl];
А как это в VB 6.0 реализовать? Что использовать для поворота матрицы? Какие функции?
Firstaid вне форума Ответить с цитированием
Старый 13.08.2018, 21:13   #8
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Коли знаешь как изготовить матрицу
Цитата:
Как сформировать квадратную матрицу я знаю, а вот как повернуть ее на 270 градусов - нет. Каким образом это можно сделать?
то
Цитата:
А как это в VB 6.0 реализовать? Что использовать для поворота матрицы? Какие функции?
должно быть несложно.
Ведь у тебя есть решение на Cи. Открывай Google или Yndex и задавай вопросы типа: "Циклы в Basic", "Двумерные массивы Basic" или что-то в этом роде.
Как то это не очень хорошо у тебя твой "хлеб" (желание учиться) отнимать.

PS: Неужто за десять дней не нашёл решения ... ???
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 14.08.2018, 13:28   #9
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 729
По умолчанию

FirstAid, говорите сразу язык, ладно?
Предполагаем, что массив имеет целые числа.
Excel.
Код:
Sub Massiv()
Const N As Integer = 4
Dim Z(N - 1, N - 1) As Integer
Dim NOV(N - 1, N - 1) As Integer
Dim str, stl As Integer

For str = 0 To N - 1
    For stl = 0 To N - 1
        Z(str, stl) = stl
    Next stl
Next str

Sheets("Лист1").Cells(1, 1) = "Vhodnoi massiv Z"
For str = 0 To N - 1
    For stl = 0 To N - 1
        Sheets("Лист1").Cells(str + 2, stl + 1) = Z(str, stl)
    Next stl
Next str

For str = 0 To N - 1
    For stl = 0 To N - 1
        NOV(stl, N - 1 - str) = Z(str, stl)
    Next stl
Next str

Sheets("Лист1").Cells(7, 1) = "Vihodnoi massiv NOV"
For str = 0 To N - 1
    For stl = 0 To N - 1
        Sheets("Лист1").Cells(str + 8, stl + 1) = NOV(str, stl)
    Next stl
Next str
End Sub
Если помог - нажми на весы.

Последний раз редактировалось Cuprum5; 14.08.2018 в 13:29. Причина: Добавил фразу.
Cuprum5 вне форума Ответить с цитированием
Старый 22.08.2018, 14:02   #10
Firstaid
Пользователь
 
Регистрация: 05.04.2018
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Cuprum5 Посмотреть сообщение

Код:
Sub Massiv()
Const N As Integer = 4
Dim Z(N - 1, N - 1) As Integer
Dim NOV(N - 1, N - 1) As Integer
Dim str, stl As Integer

For str = 0 To N - 1
    For stl = 0 To N - 1
        Z(str, stl) = stl
    Next stl
Next str

Sheets("Лист1").Cells(1, 1) = "Vhodnoi massiv Z"
For str = 0 To N - 1
    For stl = 0 To N - 1
        Sheets("Лист1").Cells(str + 2, stl + 1) = Z(str, stl)
    Next stl
Next str

For str = 0 To N - 1
    For stl = 0 To N - 1
        NOV(stl, N - 1 - str) = Z(str, stl)
    Next stl
Next str

Sheets("Лист1").Cells(7, 1) = "Vihodnoi massiv NOV"
For str = 0 To N - 1
    For stl = 0 To N - 1
        Sheets("Лист1").Cells(str + 8, stl + 1) = NOV(str, stl)
    Next stl
Next str
End Sub
Только среда у меня не Excel, а Visual Basic 6.0 поэтому нужно внести какие-либо изменения

Вот например вот это Sheets("Лист1").Cells(str + 8, stl + 1) = NOV(str, stl) - это что? Вывод массива?
Firstaid вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Повернуть массив на 90 градусов HIP-H0P Помощь студентам 6 31.01.2012 23:46
поворот матрицы на 180 и 270 градусов Alex1123 Помощь студентам 4 25.05.2011 18:31
повернуть экран на 180 градусов jihot Общие вопросы Delphi 4 10.04.2010 13:07
Повернуть двумерный массив на 180 градусов - задача на Pascal'е Sanakan Помощь студентам 7 15.12.2008 00:16