Квадратная матрица |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Квадратная матрица |
Pautina |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 40 Пол: Женский Реальное имя: Nataly Репутация: 0 |
Доброго времени суток! очень нужна ваша помощь. Помогите решить задачу.
Начиная с центра. обойти по спирали все элементы квадратной матрицы размером 13х13 (распечатывая их в порядке обхода). Заранее огромное спасибо! |
St@senk@ |
Сообщение
#2
|
Новичок Группа: Пользователи Сообщений: 48 Пол: Мужской Реальное имя: Максим Репутация: 1 |
Я попытался найти, но не нашел. Вот мое решение, проверял на таблице 5 на 5, но должно и на 13 на 13 работать.
Код program Project2; {$APPTYPE CONSOLE} uses SysUtils; const xl = 13; yl = 13; var ar : array [1..xl,1..yl] of integer; var arr : array [1..xl,1..yl] of boolean; var dir : integer; var x,y,i,j : integer; label CS; begin for i:= 1 to yl do begin for j:= 1 to xl do begin ar[j,i]:=(i-1)*xl+j; arr[j,i]:=false; end; end; x:=1; y:=1; dir:=0; repeat arr[x,y]:=true; write(ar[x,y],' '); CS: case dir of 0:if (x=xl) or arr[x+1,y] then begin dir:=1; goto CS; end else inc(x); 1:if (y=yl) or arr[x,y+1] then begin dir:=2; goto CS; end else inc(y); 2:if (x=1) or arr[x-1,y] then begin dir:=3; goto CS; end else dec(x); 3:if (y=0) or arr[x,y-1] then begin dir:=0; goto CS; end else dec(y); end; until (y=(yl div 2)+1) and (x=(xl div 2)+1); readln; { TODO -oUser -cConsole Main : Insert code here } end. Сообщение отредактировано: St@senk@ - -------------------- Три пути ведут к знанию: путь размышления - это путь самый благородный, путь подражания - это путь самый легкий и путь опыта - это путь самый горький.
Конфуций |
Текстовая версия | 25.04.2024 0:24 |