Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 21.07.2018
Сообщений: 1

Ожидался идентификатор

21.07.2018, 00:44. Показов 867. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я новичок и поэтому я ещё плохо разбираюсь в этом Языке. Я нашел игру крестики нолики на этом форуме и после тщательного просмотра программы, решил проверить. Но вот напасть. Пишет ожидался идентификатор. Помогите пожалуйста. В конце программы.
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
procedure BotStep;
  procedure x(row, col, b : Integer);
  begin
    a[row, col] := b;
    WriteLn('Ход компьютера: ', coord(row, col));
  end;
begin
  var v := Step mod 2 + 1; // У человека на предыдущем ходу было такое значение
  var b := (Step + 1) mod 2 + 1; // А бот этим ходом должен поставить
  // Если бот должен выиграть
  // Главная диагональ
  if (a[0,0] = b) and (a[1,1] = b) and (a[2,2] = 0) then begin x(2,2,b); Exit; end;
  if (a[0,0] = b) and (a[1,1] = 0) and (a[2,2] = b) then begin x(1,1,b); Exit; end;
  if (a[0,0] = 0) and (a[1,1] = b) and (a[2,2] = b) then begin x(0,0,b); Exit; end;
  // Побочная диагональ
  if (a[0,2] = b) and (a[1,1] = b) and (a[2,0] = 0) then begin x(2,0,b); Exit; end;
  if (a[0,2] = b) and (a[1,1] = 0) and (a[2,0] = b) then begin x(1,1,b); Exit; end;
  if (a[0,2] = 0) and (a[1,1] = b) and (a[2,0] = b) then begin x(0,2,b); Exit; end;
  // Горизонтали
  for var row := 0 to 2 do
    begin
      if (a[row,0] = b) and (a[row,1] = b) and (a[row,2] = 0) then begin x(row,2,b); Exit; end;
      if (a[row,0] = b) and (a[row,1] = 0) and (a[row,2] = b) then begin x(row,1,b); Exit; end;
      if (a[row,0] = 0) and (a[row,1] = b) and (a[row,2] = b) then begin x(row,0,b); Exit; end;
    end;
  // Вертикали
  for var col := 0 to 2 do
    begin
      if (a[0,col] = b) and (a[1,col] = b) and (a[2,col] = 0) then begin x(2,col,b); Exit; end;
      if (a[0,col] = b) and (a[1,col] = 0) and (a[2,col] = b) then begin x(1,col,b); Exit; end;
      if (a[0,col] = 0) and (a[1,col] = b) and (a[2,col] = b) then begin x(0,col,b); Exit; end;
    end;
  
  // Если человек может выиграть
  // Главная диагональ
  if (a[0,0] = v) and (a[1,1] = v) and (a[2,2] = 0) then begin x(2,2,b); Exit; end;
  if (a[0,0] = v) and (a[1,1] = 0) and (a[2,2] = v) then begin x(1,1,b); Exit; end;
  if (a[0,0] = 0) and (a[1,1] = v) and (a[2,2] = v) then begin x(0,0,b); Exit; end;
  // Побочная диагональ
  if (a[0,2] = v) and (a[1,1] = v) and (a[2,0] = 0) then begin x(2,0,b); Exit; end;
  if (a[0,2] = v) and (a[1,1] = 0) and (a[2,0] = v) then begin x(1,1,b); Exit; end;
  if (a[0,2] = 0) and (a[1,1] = v) and (a[2,0] = v) then begin x(0,2,b); Exit; end;
  // Горизонтали
  for var row := 0 to 2 do
    begin
      if (a[row,0] = v) and (a[row,1] = v) and (a[row,2] = 0) then begin x(row,2,b); Exit; end;
      if (a[row,0] = v) and (a[row,1] = 0) and (a[row,2] = v) then begin x(row,1,b); Exit; end;
      if (a[row,0] = 0) and (a[row,1] = v) and (a[row,2] = v) then begin x(row,0,b); Exit; end;
    end;
  // Вертикали
  for var col := 0 to 2 do
    begin
      if (a[0,col] = v) and (a[1,col] = v) and (a[2,col] = 0) then begin x(2,col,b); Exit; end;
      if (a[0,col] = v) and (a[1,col] = 0) and (a[2,col] = v) then begin x(1,col,b); Exit; end;
      if (a[0,col] = 0) and (a[1,col] = v) and (a[2,col] = v) then begin x(0,col,b); Exit; end;
    end;
 
  // Ну и ход рандомом
  var Ok := False;
  repeat
    var(row, col) := (Random(3), Random(3));//здесь ошибка
    Ok := a[row, col] = 0;
    if Ok then x(row, col, b);
  until Ok;
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.07.2018, 00:44
Ответы с готовыми решениями:

Встречено 'as', а ожидался идентификатор
Встречено 'as', а ожидался идентификатор 17 строка Program Sme; uses crt; type reca=record name:string; resultat:integer; ...

Встречено 'template', а ожидался идентификатор
program sample(input, output); const n=10; template='_________'; type line= packed array of char; ...

Встречено var, а ожидался идентификатор
8 строка program ex; uses crt; type node=^zapis; zapis=record ocenka:integer; left,right:node; var ...

2
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
21.07.2018, 08:31
Цитата Сообщение от MaXaY Посмотреть сообщение
Пишет ожидался идентификатор
Эту ошибку исправить так.
Со строки 58
Pascal
1
2
3
4
5
end;//добавить
begin//добавить
  // Ну и ход рандомом
  var Ok := False;
  repeat
Но это не все, по крайней мере не объявлен массив а и не описана процедура coord.
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
23.07.2018, 06:16
Это не ошибка программы… Это ошибка ТС!
Ибо он не прочёл всего поста: https://www.cyberforum.ru/post12551220.html
А дёрнул кусок последнего кода, пред которым написано:

Осталось только научить бота закрывать человеку возможность выиграть.
Можно сильно не заморачиваться. Тупо проверить все возможные варианты:
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.07.2018, 06:16
Помогаю со студенческими работами здесь

Встречено 'var', а ожидался идентификатор
При выполнении программа выдаёт ошибку "Встречено 'var', а ожидался идентификатор" в строке 9: program pp5_2; type z=record ...

Ошибка: "Ожидался идентификатор"
Ребят помогите срочно нужно сделать 2 дня до защиты курсовой не могу сделать помогите кто знает program zipa; uses...

Встречено := а ожидался оператор
Встречено := а ожидался оператор: Условие: Дан массив заполненный по формуле cos(x/3), определить количество его положительных ...

Встречено 'uses', а ожидался оператор
Unit Unit1; interface uses System, System.Drawing, System.Windows.Forms; type Form1 = class(Form) procedure...

) : Ожидался порядковый тип
procedure custi(); var i: array of integer; p: picture; begin for i := 1 to 10 do begin p :=...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru