profile
[/banner_gorizont_adaptive]
Размещено 5 лет назад по предмету Информатика от PNaty

проблема заключается в том что на месте, которое выделено "//...//" PascalABC.Net говорит, что там ошибка, пожалуйста помогите, укажите ошибку и если есть возможность её исправить, это срочно
program Zmeya;
Uses graphabc, events,timers;

const
r=5 ;
d=7;

type
TDirection = (None, Left, Right, Up, Down);

var x,t,y,i,z,xr,yr,prin1,prin2,prin3,prin4,prin5,k,s4et,prin6: integer;
Direction :TDirection;
xs,ys,bufx,bufy:array[1..200]of integer;


procedure shar3;
begin
SetBrushColor(clYellow);
circle(xs[k],ys[k],r);
end;

procedure Circl;
begin
SetBrushColor(clBlack);
circle(x,y,r);
end;

procedure rshar ;
begin
xr:=Random(WindowWidth) ;
yr:=Random( WindowHeight);
end;

procedure rshar2;
begin
SetBrushColor(clYellow);
circle(xr,yr,r);
end;

procedure XP(Key:integer);
begin
case Key of
VK_Left: Direction := Left ;
VK_Right: Direction := Right ;
VK_UP: Direction := UP ;
VK_Down: Direction :=Down ;
end;
circle(x,y,r);
end;


procedure pause;
begin
// for i:=1 to 1 do //
begin
Circl;
rshar2;
ClearWindow;
rshar2 ;
prin1:=(xr-x+r)*(xr-x+r)+(yr-y)*(yr-y) ;
prin2:=(xr-x-r)*(xr-x-r)+(yr-y)*(yr-y) ;
prin3:=(xr-x)*(xr-x)+(yr-y+r)*(yr-y+r) ;
prin4:=(xr-x)*(xr-x)+(yr-y-r)*(yr-y-r) ;
prin5:=R*R;
if (prin1)<=(prin5) then begin
rshar ;
s4et:=s4et+1;
end;


if (prin2)<=(prin5) then begin
rshar ;
s4et:=s4et+1;
end;
if (prin3)<=(prin5) then begin
rshar ;
s4et:=s4et+1;
end;
if (prin4)<=(prin5) then begin
rshar ;
s4et:=s4et+1;
end;

case Direction of
Left: begin x:=x-d; if x<=0 then x:=WindowWidth end;
Up: begin y:=y-d; if y<=0 then y:=WindowHeight end;
Right: begin x:=x+d; if x>=WindowWidth then x:=0 end;
Down: begin y:=y+d; if y>=WindowHeight then y:=0 end;
end;
xs[1]:=x;
ys[1]:=y;
for k:=1 to s4et do
begin
bufx[k]:=xs[k];
bufy[k]:=ys[k];

end;
for k:=1 to s4et do
begin
xs[k+1]:=bufx[k];
ys[k+1]:=bufy[k] ;
end;
for k:=2 to s4et do
shar3;
Circl;
end;
end;
begin
rshar;
s4et:=2;

Direction := None;

x:=WindowWidth div 2;
y:=WindowHeight div 2;
OnKeyDown:=XP;
CreateTimer(150,pause);

end.

  1. Ответ на вопрос
    Ответ на вопрос дан Аккаунт удален
    У вас же компилятор четко описывает причину ошибки:
    Переменная цикла for должна описываться в том же блоке, что и цикл for

    Пишите заголовки циклов в виде for var i:=... - это требование PascalABC.NET
    1. Ответ на вопрос
      Ответ на вопрос дан ragoon
      Простите, это требование или возможность?
    2. Ответ на вопрос
      Ответ на вопрос дан Аккаунт удален
      В данном случае это требование. Процедура - собственный блок begin ... end, и если описать переменную внутри этой процедуры, ее можно (хоть это и нехорошо - система не выдаст ошибку, но предупреждение даст все равно) использовать в качестве параметра цикла. А вот делать переменную цикла глобальной PascalABC.NET не позволяет.
    3. Ответ на вопрос
      Ответ на вопрос дан ragoon
      О! Разумные ограничения.
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.