
Вопрос задан 07.05.2021 в 18:31.
Предмет Информатика.
Спрашивает Чаплыгин Даня.
Проблема заключается в том что на месте, которое выделено "//...//" 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.

Ответы на вопрос

Отвечает Худобина Маргарита.
У вас же компилятор четко описывает причину ошибки:
Переменная цикла for должна описываться в том же блоке, что и цикл for
Пишите заголовки циклов в виде for var i:=... - это требование PascalABC.NET
Переменная цикла for должна описываться в том же блоке, что и цикл for
Пишите заголовки циклов в виде for var i:=... - это требование PascalABC.NET



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Проблема заключается в том, что символ "<" в коде PascalABC.Net используется для обозначения операции "меньше", но он написан некорректно и вместо него выводится в тексте ошибки.
Чтобы исправить эту проблему, замените символ "<" на символ "<" в следующих строках кода:
- Если (prin1)<=(prin5) then начиная со строки 34 и заканчивая строкой 40;
- В строке 46.
Также проверьте, что переменная R определена где-то выше в коде и что все используемые функции и процедуры существуют в библиотеках graphabc, events и timers.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili