1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| Alexdel |
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 1 Пол: Мужской Реальное имя: Алексей Репутация: 0 |
Всем привет! требуется написать прогу для заполнения прямоугольной таблицы размерами n*n по спирали числами от 1 до n*n. Я вот тут кое-что написал но работает не так, как надо... Мозги уже кипят... Помогите плиз кто чем может... Хотя бы намёк сделайте=)
Прикрепленные файлы
1.pas ( 506 байт )
Кол-во скачиваний: 967 |
![]() ![]() |
| Гость |
Сообщение
#2
|
|
Гость |
Всем привет! требуется написать прогу для заполнения прямоугольной таблицы размерами n*n по спирали числами от 1 до n*n. Я вот тут кое-что написал но работает не так, как надо... Мозги уже кипят... Помогите плиз кто чем может... Хотя бы намёк сделайте=) //на PascalABC.net //Матрица по спирали из любого угла или из центра, по часовой или против часовой begin var n:= 3; var ИзЦентра := 0; // 0 - из угла 1 - из Центра Var Центр := Ceil(n / 2) - 1; //Координата центра матрицы var (i, j, Направление, nEven) := (0, 0, 1, n.IsEven ? 1 : 0); // с левого верхнего if ИзЦентра = 1 then (i, j, Направление, nEven) := (Центр, Центр, 1, 0); // из центра var Матрица := new integer[n,n]; for var Элемент := 1 to n*n do begin Матрица[i,j]:= Элемент; { [i,j] - с левого верхнего по часовой; из Центра вправо по часовой [j,i] - с левого верхнего против часовой; из Центра вниз против часовой [n-1-i,j] - с левого нижнего против часовой; из Центра вправо против часовой [n-1-j,i] - с левого нижнего по часовой; из центра вверх по часовой [j,n-1-i] - с правго верхнего по часовой; из Центра вниз по часовой [i,n-1-j] - c правго верхнего против часовой; из Центра влево против часовой [n-1-i,n-1-j] - c правого нижнего по часовой; из Центра влево по часовой [n-1-j,n-1-i] - c правого нижнего против часовой; из центра вверх по часовой } case Направление of 1:begin {вправо} inc(j); if (Центр - i + ИзЦентра ) = (j - Центр - nEven) then Направление := 2; end; 2:begin {вниз} inc(i); if i = j then Направление := 3; end; 3:begin {влево} dec(j); if (i - Центр) = (Центр - j + nEven) then Направление := 4; end; 4:begin {вверх} dec(i); if (i - 1) = (j - ИзЦентра) then Направление := 1; end end; end; Матрица.Println; end. |
Alexdel Заполнение массива по спирали 10.02.2010 15:17
Lapp требуется написать прогу для заполнения прямоуголь… 10.02.2010 15:52
Lapp Мозги уже кипят... Помогите плиз кто чем может... … 10.02.2010 16:29
RathaR Забавно :)
Буквально вчера, сидел в кабинете инфо… 10.02.2010 19:29
Lapp сел, сделал её, за урок, правда там матрица прямоу… 11.02.2010 7:20
Lapp На свежую голову (после работы)) глянул на код и з… 11.02.2010 14:49
RathaR Мне эта задача выпала на лабораторную по проге, за… 20.10.2010 21:48
RathaR Сегодня эта задача попалась на тренировке по спорт… 3.11.2010 2:31
Lapp задача классическая, никто не споритЯ спорю. Ни р… 3.11.2010 4:44
Unconnected Это уже правда судьба ))
А на каких тестах, не по… 3.11.2010 3:02
TarasBer > А на каких тестах, не показывается там?
Ну д… 3.11.2010 3:04
Unconnected
Оой ну прям такое неуважение, набросок тестирова… 3.11.2010 4:55
Lapp Оой ну прям такое неуважение, набросок тестировать… 3.11.2010 5:48![]() ![]() |
|
Текстовая версия | 23.11.2025 6:21 |