Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 02.11.2016
Сообщений: 20

Выявить ошибку в коде.

22.11.2016, 13:52. Показов 878. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема с процедурой draw пишет что ожидался оператор а не процедура


Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
const  szw = 70;      // размер лабиринта  szh = 50;  cellsz = 10;   // размер ячейки
type  point = record   
 x,y: integer;  end;
var  maze: array [0..szw-1] of array [0..szh-1] of integer; 
 todo: array [0..szw*szh-1] of point; 
 todonum: integer;
const  dx: array [0..3] of integer = (0, 0, -1, 1);
  dy: array [0..3] of integer = (-1, 1, 0, 0);
procedure Init;
begin  for var x:=0 to szw-1 do  for var y:=0 to szh-1 do  
  if (x=0) or (x=szw-1) or (y=0) or (y=szh-1) 
  then     
  maze[x][y]:=32   
  else maze[x][y]:=63;
  var x := Random(szw-2)+1; 
  var y := Random(szh-2)+1;
// Пометить клетку как принадлежащую лабиринту 
 maze[x][y]:= maze[x][y] and not 48;
 
// Занести в список todo все ближайшие необработанные клетки 
 for var d:=0 to 3 do   
 if (maze[x + dx[d]][y + dy[d]] and 16) <> 0 then  
 begin     
 todo[todonum].x := x + dx[d];    
 todo[todonum].y := y + dy[d];    
 Inc(todonum);    
 maze[x + dx[d]][y + dy[d]] := maze[x + dx[d]][y + dy[d]] and not 16;
 end;
   // Пока не обработаны все клетки 
   while todonum > 0 do   begin     // Выбрать из списка todo произвольную клетку    
   var n := Random(todonum);    
   x := todo[n].x;  
   y := todo[n].y;
     // Удалить из списка обработанную клетку   
     Dec(todonum);    
     todo[n]:= todo[todonum];
     // Выбрать направление, которое ведет к лабиринту 
     var dd: integer;   
     repeat       dd:=Random (4);  
     until not ((maze[x + dx[dd]][y + dy[dd]] and 32) <> 0);
     // Присоединить выбранную клетку к лабиринту    
     maze[x][y] := maze[x][y] and not ((1 shl dd) or 32);     
     maze[x + dx[dd]][y + dy[dd]] := maze[x + dx[dd]][y + dy[dd]] and not (1 shl (dd xor 1));
     // Занести в список todo все ближайшие необработанные клетки  
     for var d:=0 to 3 do     
     if (maze[x + dx[d]][y + dy[d]] and 16) <> 0 then    
     begin        
     todo[todonum].x := x + dx[d];      
     todo[todonum].y := y + dy[d];     
     Inc(todonum);         
     maze[x + dx[d]][y + dy[d]] := maze[x + dx[d]][y + dy[d]] and not 16;      
     end;   
     end;
   maze[1][1] := maze[1][1] and not 1;                 // начало лабиринта - в левом верхнем углу  
   maze[szw-2][szh-2] := maze[szw-2][szh-2] and not 2; // конец лабиринта - в правом нижнем углуend;
  
  procedure Draw();
  
begin  
for var x:=1 to szw-2 do 
 for var y:=1 to szh-2 do  
 begin   if ((maze[x][y] and 1) <> 0) then // верхняя стена
   Line(x * cellsz, y * cellsz, x * cellsz + cellsz , y * cellsz);   if ((maze[x][y] and 2) <> 0) then // нижняя стена    
   Line(x * cellsz, y * cellsz + cellsz, x * cellsz + cellsz , y * cellsz + cellsz);   if ((maze[x][y] and 4) <> 0) then // левая стена  
   Line(x * cellsz, y * cellsz, x * cellsz, y * cellsz + cellsz );   if ((maze[x][y] and 8) <> 0) then // правая стена   
   Line(x * cellsz + cellsz, y * cellsz, x * cellsz + cellsz, y * cellsz + cellsz); 
   end;
   end;
begin
  Window.Title := 'Генерация лабиринта'; 
  SetWindowSize(szw*cellsz,szh*cellsz);
  Init; 
  Draw;
  end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.11.2016, 13:52
Ответы с готовыми решениями:

Двумерный массив. Поиск нулей.Не могу найти ошибку ошибку в коде
Вот,например массив 5 5 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 считываются два...

Метод Милна, выявить ошибку
Добрый день. Помогите пожалуйста найти ошибку в коде Program Miln; Uses Crt; var ...

Выявить ошибку в коде
Условие: Едет поезд с точки А в точку Б со скоростью v1, обратно ( от Б до А) со скорость...

1
Хитрая блондиночка $)
 Аватар для Hikari
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
22.11.2016, 13:57
Цитата Сообщение от dinfa Посмотреть сообщение
end;

maze[1][1] := maze[1][1] and not 1; // начало лабиринта - в левом верхнем углу
maze[szw-2][szh-2] := maze[szw-2][szh-2] and not 2; // конец лабиринта - в правом нижнем углуend;

procedure Draw();
У тебя перед Draw нет завершающей инструкции end; Вернее она у тебя закоментирована
Увидел где?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.11.2016, 13:57
Помогаю со студенческими работами здесь

Выявить ошибку в коде
Написать функцию вычисления суммы ряда y=sinx-(sin2x)/2+… +(-1)n+1sin(nx)/n с точностью до...

Ошибка в коде. Нужно выявить!
В таблице должны появляться значения после парсинга сайта, но ячейки пустые, кто-нибудь...

Выявить ошибку
В данной теме нужно найти возраст Пытаюсь это сделать, пишу сейчас условие, код выглядит...

Не получается выявить ошибку
Доброго времени суток ув. форумчане... Есть такой программный комплекс &quot;Такси-Мастер&quot; для...

Нужно выявить логическую ошибку в программе
Кто-нибудь может посмотреть мою программу, где там логическая ошибка? Небольшая консольная...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru