IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Квадратная матрица
Pautina
сообщение 22.03.2007 21:11
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Женский
Реальное имя: Nataly

Репутация: -  0  +


Доброго времени суток! очень нужна ваша помощь. Помогите решить задачу.
Начиная с центра. обойти по спирали все элементы квадратной матрицы размером 13х13 (распечатывая их в порядке обхода).
Заранее огромное спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
St@senk@
сообщение 22.03.2007 23:52
Сообщение #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@ - 22.03.2007 23:52


--------------------
Три пути ведут к знанию: путь размышления - это путь самый благородный, путь подражания - это путь самый легкий и путь опыта - это путь самый горький.
Конфуций
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Pautina   Квадратная матрица   22.03.2007 21:11
Tan   Поиск, подобное задание есть.   22.03.2007 23:22
St@senk@   Я попытался найти, но не нашел. Вот мое решение, п...   22.03.2007 23:52
Алена   St@senk@, задание было:А у тебя - как раз с левого...   23.03.2007 0:03
St@senk@   Если я приведу полностью работающий код, то не буд...   23.03.2007 0:20
Алена   А ты и так привел нерабочий код. Во всяком случае,...   23.03.2007 0:23
St@senk@   с поиском, согласен, искать совсем не умею. prog...   23.03.2007 0:29
Pautina   В поиске не смогла ничего найти.. :(   23.03.2007 21:41
Pautina   Так и не смогла понять, в чем смысл данной проги.....   23.03.2007 23:01
St@senk@   :) скажи честно, ты хоть взглянула на код? Думаю, ...   23.03.2007 23:13
-Pautina-   Конечно,смотрела.. если не заметил, там даже файл ...   24.03.2007 9:58
St@senk@   Работает она так же как и у меня. for i:=1 to yl ...   24.03.2007 10:19
Pautina   а не мог бы ты прикрепить саму прогу?   26.03.2007 23:14
Pautina   Попробовала написать по-другому.. но все равно ест...   27.03.2007 21:58
volvo   const size = 13; var X, Y: integer; square:...   28.03.2007 11:00
@лё][@   Всё-таки порядок обхода в выше написанной программ...   31.03.2010 16:03


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 6:52
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"