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

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

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

Восстановить пароль
Повторная активизация e-mail

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

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

Не могу понять ошибку "missing operator or semicolon"
Код:
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.
Дим@@ вне форума Ответить с цитированием
Старый 10.11.2010, 22:36   #2
Ghost of Night
Форумчанин
 
Аватар для Ghost of Night
 
Регистрация: 08.08.2010
Сообщений: 371
По умолчанию

Цитата:
StepNumber: longint
Цитата:
Код:
begin
  StartProcess;
  StepNumber:=0;
1) Одна и та же переменная в разных процедурах.
2) В начале программы, этой не объявленной переменной присваивается значение (она должна быть в разделе VAR).
Хакинг - не преступление, а способ выживания.
Ghost of Night вне форума Ответить с цитированием
Старый 11.11.2010, 09:37   #3
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Используй вадратные скобки
Код:
          CurrentX:=x+steps[i,1];
          CurrentY:=y+steps[i,2];
и присоединяюсь к замечаниям Ghost of Night
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Старый 11.11.2010, 15:14   #4
xrob
Форумчанин
 
Регистрация: 18.10.2010
Сообщений: 419
По умолчанию

Цитата:
StepNumber: longint
ничего не замечаете? вот именно! кое-чего вы не замечаете!
вы не замечаете точки с запятой (; ) в конце строки.

"missing operator or semicolon" - здесь же черным по-белому написано:
"пропущен оператор или точка с запятой".
учите английский язык, господа.
xrob вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка: no match for ‘operator<<’ in ‘std::operator<< [with _Traits = std::char_traits<char> Critter Общие вопросы C/C++ 5 08.08.2010 23:38
ошибкa в проге....список объектов user666 Общие вопросы C/C++ 2 02.05.2010 23:10
BOOTMGR is missing melkortheshadow Windows 7 05.10.2009 10:57
NTLDR is missing... melkortheshadow Windows 7 19.09.2009 03:03
Ошибки «If statement missing )» Яр|/||< (^_^) Общие вопросы C/C++ 14 23.06.2009 23:17