1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| Флогримм |
23.02.2005 23:24
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 253 Пол: Мужской Репутация: 4 |
кто какой предложит алгоритм? вот мой:
Код program pseudospiral; { программа, заполняющая матрицу следующим образом: 10 11 12 13 14 25 2 3 4 15 24 9 1 5 16 23 8 7 6 17 22 21 20 19 18 } uses crt; const max=20; {максимальная размерность матрицы; n<=max} var matr :array[1..max,1..max] of byte; i,j,n,c :byte; function Free(a,b:byte):boolean; {проверяет на существование и пустоту ячейку matr[a,b]} begin Free:= (a>0) and (b>0) and (a<=max) and (b<=max) and (matr[a,b]=0); end; BEGIN ClrScr; repeat write('Введите нечетную размерность квадратной матрицы: '); readln(n); until (n<=max) and (n>0) and (odd(n)); writeln; matr[(n div 2)+1,(n div 2)+1]:=1; i:=n div 2; j:=n div 2; matr[i,j]:=2; for c:=3 to sqr(n) do begin if (Free(i-2,j-1)) and (not Free(i+1,j)) and (not Free(i-1,j)) then begin dec(i,2); dec(j); matr[i,j]:=c; {перескок} end else if (Free(i,j-1)) and (not Free(i-1,j)) then begin dec(j); matr[i,j]:=c; {<-} end else if (Free(i+1,j)) and ((not Free(i-1,j)) or (not Free(i,j-1))) and (j-1>0) then begin inc(i); matr[i,j]:=c; {\/} end else if Free(i,j+1) then begin inc(j); matr[i,j]:=c; end else {->} if Free(i-1,j) then begin dec(i); matr[i,j]:=c; end; {/\} end; for i:=1 to n do begin for j:=1 to n do write(matr[i,j]:4); writeln; end; readln; END. вам может показаться громоздким и неэффективным... но мне нравится -------------------- Я не буду жить с этой злобой внутри / Я не буду частью смертельной цепи / Я не буду потребителем твоих идей / Я не буду никогда убивать зверей (Unconform)
|
![]() ![]() |
| Флогримм |
26.02.2005 1:03
Сообщение
#2
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 253 Пол: Мужской Репутация: 4 |
ну наконц-то допросился! спасибки! ща буду разбирать...
-------------------- Я не буду жить с этой злобой внутри / Я не буду частью смертельной цепи / Я не буду потребителем твоих идей / Я не буду никогда убивать зверей (Unconform)
|
Флогримм Хитромудрое заполнение матрицы 23.02.2005 23:24
volvo Как же вы любите логические переменные... А чего б... 24.02.2005 1:52
Флогримм абсолютно верно, батюшка! не подумал я, халоп... 24.02.2005 7:24
Флогримм кто может предложить другой алгоритм, а то мне че-... 24.02.2005 12:43
volvo
Ну, держи :lol:
const
max_n = 19;
type
... 26.02.2005 0:21![]() ![]() |
|
Текстовая версия | 8.12.2025 23:29 |