![]() |
|
Матрица по спирали | ☑ | ||
---|---|---|---|---|
0
BBF765
21.04.19
✎
08:29
|
Нужен цикл для заполнения матрицы по спирали,с первой строки, количество строк и колонок задается пользователем, нужен именно пример цикла, пока сам не могу прийти к этому, не силен в таких вещах((
|
|||
1
DJ Anthon
21.04.19
✎
08:48
|
1000 руб.
|
|||
2
EkaterinaS
21.04.19
✎
09:26
|
В интернете есть примеры на других языках. https://renkport.ru/java/primer/zapolnenie-dvumernogo-massiva-po-spirali/
|
|||
3
rphosts
21.04.19
✎
09:33
|
(0) это задача мне попалась на экзамене по фортрану (после первого семестра), а казалась бы не программирование а лишь прикладная математика.... 1990г
"Эх, народец нынче хилый". |
|||
4
BBF765
21.04.19
✎
09:36
|
Я тоже решал такие задачи будучи студентом, но это давно и свою форму я давно растерял, пытался перевести с языков Java и C++, но успехов это не принесло((
|
|||
5
vde69
21.04.19
✎
10:22
|
(4) так напиши алгоритм РУССКИМ языком, а потом уже переводи в код
|
|||
6
RomanYS
21.04.19
✎
10:47
|
Как вараинт: обошел периметр, далее рекурсия
|
|||
7
rphosts
21.04.19
✎
11:18
|
(6) любая рекурсия заменяется циклом
|
|||
8
RomanYS
21.04.19
✎
11:24
|
(7) Это понятно, но (0) возможно циклы ещё не освоил)
Я бы начал так Повороты = Новый Структура("Верх,Право,Низ,Лево", "Право", "Низ", "Лево", "Верх"); Шаги = Новый Структура("Верх,Право,Низ,Лево" , Новый Структура("X,Y", 1, 0) , Новый Структура("X,Y", 0, 1) , Новый Структура("X,Y", -1, 0) , Новый Структура("X,Y", 0, -1)); Границы = Структура("Верх,Право,Низ,Лево", 0, Колонок - 1, Строк - 1, 0); ТекАдрес = Новый Структура("X,Y", 0, 0); Пока (Границы.Верх < Границ.Низ) И (Границы.Лево < Границ.Право) Цикл ... КонецЦикла; |
|||
9
BBF765
21.04.19
✎
11:47
|
(8)Это то понятно я сам цикл не могу разобрать, неправильно выводит(
|
|||
10
ЕщеОдин Программист
21.04.19
✎
13:23
|
(7) не любая, а только в данном контексте. Ветвящаяся нет.
|
|||
11
dmt
21.04.19
✎
14:23
|
|
|||
12
Сияющий в темноте
22.04.19
✎
11:33
|
у нас прямоугольник bottom,left,right,top
направления слева направо по верху свеху вниз справа справа налево по низу снизу вверх слева проверяем,что есть,что заполнять слева направо это по top от left до right потом top++ сверху вниз это по right от top до bottom потом right-- справа налево это по bottom от right до left потом bottom--снизу вверх это по left от bottom до top потом left++ условие окончания это right<left или bottom<top |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |