Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2010, 21:26   #1
Дим@@
Пользователь
 
Регистрация: 20.10.2010
Сообщений: 12
По умолчанию Ошибки

Помогите плиз понять в чём ошибка
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  Que : array[1..100,1..100] of longint;
  QueBegin,QueEnd,Sx,Sy,Ey,Ex : longint;
  Marked : array[1..100,1..100] of boolean;

  Procedure Get(var x,y,StepNumber : longint);
    begin
      x:=Que[QueBegin,1];
      y:=Que[QueBegin,2];
      StepNumber:=Que[QueBegin,3];
      Inc(QueBegin);
    end;

  Procedure Put(x,y,StepNumber: longint);
    begin
      Inc(QueEnd);
      Que[QueEnd,1]:=x;
      Que[QueEnd,2]:=y;
      Que[QueEnd,3]:=StepNumber;
      Marked[x,y]:=true;
    end;

  Procedure StartProcess;
    var
      i,j : longint;
      StartCell : string;
    begin
      readln(StartCell);
      Sx:=ord(StartCell[1])-ord('A')+1;
      Sy:=ord(StartCell[2])-ord('0');
      Ex:=ord(StartCell[4])-ord('A')+1;
      Ey:=ord(StartCell[5])-ord('0');
      QueBegin:=1;
      QueEnd:=0;
      for i:=1 to 8 do
        for j:=1 to 8 do Marked[i,j]:=false;
      Put(Sx,Sy,0);
    end;


  Procedure PutAll(x,y,StepNumber : longint; var found : boolean);
    type
      Knight=array[1..8,1..2] of integer;
    Const
      Steps : Knight=((1,-2),(1,2),(-1,-2),(-1,2),(2,-1),(2,1),(-2,-1),(-2,1));
    var
      i,CurrentX,CurrentY : integer;
    begin
      found:=false;
      i:=0;
      while (not found) and (i<8) do
        begin
          inc(i);
          CurrentX:=x+steps(i,1);
          CurrentY:=y+steps(i,2);
          found:=(Ex=CurrentX) and (Ey=Currenty);
          if (not found) and (CurrentX>0) and (CurrentY>0) and (CurrentX<9) and (CurrentY<9)
            then Put(CurrentX,CurrentY,StepNumber);
        end;
    end;


begin
  StartProcess;
  StepNumber:=0;
  Found:=(Sx=Ex) and (Sy=Ey);
  while (not Found) do
    begin
      Get(x,y,StepNumber);
      Inc(StepNumber);
      PutAll(x,y,StepNumber,Found);
    end;
  writeln(stepNumber);
end.
Дим@@ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибки Siluet Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 25.09.2009 21:56
Ошибки Groz Помощь студентам 11 20.08.2009 16:41
Ошибки delphin100 Операционные системы общие вопросы 12 17.04.2008 14:15
Ошибки Terran Общие вопросы Delphi 3 05.02.2008 20:47