Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/25: Рейтинг темы: голосов - 25, средняя оценка - 4.92
432 / 94 / 2
Регистрация: 25.01.2012
Сообщений: 3,344
Записей в блоге: 25
1

Ошибка: Syntax error, ";" expected but "BEGIN" found

16.08.2015, 13:11. Просмотров 4712. Ответов 7
Метки нет (Все метки)

Ошибка
unit1.pas(529,1) Fatal: Syntax error, ";" expected but "BEGIN" found
тут в строке с сообщением в комментарие, строка 40. Не понимаю почему.
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
75
76
77
78
79
80
81
82
83
procedure Ordering;
 //type TValueSign = -1..1;
 var
   procinstruction: integer;
   rezultat,rezultat1:extended;
   arrproccond: arr;
   napravleniesumm,napravlen:boolean;
//   function Sign(
//     const AValue: Extended
//   ):TValueSign; overload;
//   begin
//end;
procedure turn;//поворот
var
  x2,x3,y2,y3:extended;
begin
SurfaceList := ASurfaceList[copyTimeBoxMaxY.IDsurface];
x3:=SurfaceList.x[2];
y3:=SurfaceList.y[2];
x2:=SurfaceList.x[3];
y2:=SurfaceList.y[3];
SurfaceList.x[2]:=x2;
SurfaceList.y[2]:=y2;
SurfaceList.x[3]:=x3;
SurfaceList.y[3]:=y3;
ASurfaceList[copyTimeBoxMaxY.IDsurface]:=SurfaceList;
end;
 procedure smenanapravlenia;/////////////////////////////////////////////процедура с параметром, надо сделать так
begin
napravleniesumm:=not(napravleniesumm);
end;
 procedure napravlenie;/////////////////////////////////////////////////////////////////////////////////////////////////////////
 begin
 napravlen:=true;
 napravlen:=napravlen=napravleniesumm;
 raise Exception.Create('napravlenie');
 end;
 
 procedure line
begin//unit1.pas(529,1) Fatal: Syntax error, ";" expected but "BEGIN" foundunit1.pas(529,1) Fatal: Syntax error, ";" expected but "BEGIN" foundunit1.pas(529,1) Fatal: Syntax error, ";" expected but "BEGIN" foundunit1.pas(529,1) Fatal: Syntax error, ";" expected but "BEGIN" found
raise Exception.Create('line');
end;
 procedure condition;//сравнение
begin
if rezultat=0 then ///////////////
  begin
    arrproccond[procinstruction];
    procinstruction:=procinstruction+1;
  end;
end;
 procedure sistemscondition
begin
napravleniesumm:=true;
procinstruction:=0;
rezultat:=SurfaceList.x[3]/SurfaceList.y[3]-abs(SurfaceList.x[2]/SurfaceList.y[2]);
condition;
procinstruction:=procinstruction-1;
rezultat:=SurfaceList.x[3]/SurfaceList.y[3]-SurfaceList.x[2]/SurfaceList.y[2];
rezultat1:=rezultat;
condition;
rezultat:=SurfaceList.y[3] - abs(SurfaceList.y[3]);
condition;
procinstruction:=procinstruction-1;
rezultat:=SurfaceList.y[2] - abs(SurfaceList.y[2]);
condition;
rezultat:=rezultat1;
rezultat:=rezultat-abs(rezultat);
condition;
napravlen:=false;
raise Exception.Create('sistemscondition');
rezultat := ord(napravlen);
condition;
end;
 
begin
arrproccond[0]:=@line;
arrproccond[1]:=@smenanapravlenia;
arrproccond[2]:=@napravlenie;
arrproccond[3]:=@turn;
end;
sistemscondition;
except
end;
Добавлено через 5 минут
исправил, невнимательность
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.08.2015, 13:11
Ответы с готовыми решениями:

Ошибка "project1.lpr(35,0) Fatal: Syntax error, "BEGIN" expected but "end of file" found"
type tarray= array of integer; var a:tarray; m,s,k:integer; procedure...

Ошибка: project1.lpr(1,1) Fatal: Syntax error, "BEGIN" expected but "end of file" found
project1.lpr(1,1) Fatal: Syntax error, "BEGIN" expected but "end of file" found выдает эту ошибку...

Ошибка: Syntax error, "BEGIN" expected but "end of file" found
unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms,...

Fatal: Syntax error, "BEGIN" expected but "end of file" found
Доброго времени суток! Вот простой код, который, по идее, находит корни квадратного уравнения....

7
Модератор
60562 / 45559 / 31444
Регистрация: 18.05.2008
Сообщений: 109,506
16.08.2015, 13:37 2
Pascal
1
procedure line;
1
432 / 94 / 2
Регистрация: 25.01.2012
Сообщений: 3,344
Записей в блоге: 25
16.08.2015, 13:51  [ТС] 3
Да, да у меня там куча таких ошибок была, исправил все, долго писал не компилируя.
0
Модератор
6657 / 3236 / 1305
Регистрация: 01.02.2015
Сообщений: 10,280
Записей в блоге: 1
16.08.2015, 15:46 4
А теперь для полной красоты нажми Ctrl-D.
Этим ещё можно пользоваться вместо компиляции для недопущения таких и других ошибок.
0
Миниатюры
Ошибка: Syntax error, ";" expected but "BEGIN" found  
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
29633 / 19500 / 7645
Регистрация: 22.10.2011
Сообщений: 34,027
Записей в блоге: 6
16.08.2015, 16:50 5
Этот Ctrl+D на больших неформатированных текстах очень часто дает сбой, и вреда от него получается больше, чем пользы. Проще прогнать через ptop (если нужно - выложу GUI-обертку, которую когда-то делал для ptop, чтобы было удобнее форматировать программы, не прибегая к использованию консольных команд)
0
Модератор
6657 / 3236 / 1305
Регистрация: 01.02.2015
Сообщений: 10,280
Записей в блоге: 1
16.08.2015, 17:49 6

Не по теме:

Sorry, за мой холивар, но ptop тоже небезгрешен. Пример обработки

Pascal
1
2
3
4
5
6
7
8
9
10
  If a=0 Then
    Begin
      If b=0 Then
        If c=0 Then
          Writeln('-1')
      Else                <---------- здесь не хватает ещё одного отступа
        Writeln('0')
      Else
        Begin
          x := c/b;
Минус его настройка будет сложна для начинающего - я имею в виду настройку конфигурационного файла, возможности у которого превосходят командную строку.
Минус его набор ключевых слов очень ограничен.
Но Плюс-Плюс он очень хорош при поиске небаланса begin-end, где JCF просто выдаст ошибку и остановит работу.

Из глюков JCF мне попадались только плохое форматирование типизированных констант, самостоятельная разбивка на строки длинных заголовков процедур (отличная от удобного для меня вида), плохое форматирование директив компилятора (условная компиляция). Так сразу и не вспомню ещё. А какой сбой+вред может получиться на больших неформатированных текстах?

На форуме freepascal.com читал, что JCF уже тоже устарел и многого не понимает, хотели приспособить штатный парсер FPC но до реализации так и не дошло.

Плюс у Lazarus "из коробки" встроенная поддержка JCF. Новичку - легче.
Плюс по умолчанию, JCF в составе Lazarus идёт настроенным "по кодексу" (по рекомендациям от Borland).


----------------------------------------------
Подытоживая, ТС - жми Ctrl-D и не бойся. Чуть позже разберись с PToP - тоже хороший инструмент.

Не по теме:

Я могу перенести сюда краткий обзор JCF и PToP с другого форума - я автор обзора и перевода, но теряюсь с разными правами между форумами. Если обзор закрепят, наверное, будет не очень плохо. Плюс, я бы дополнил его сообщением о сбоях. Плюс вы бы добавили GUI для PToP. Плюс, те, кто пользовался форматтером PABC.NET дополнили бы обзор.

0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
29633 / 19500 / 7645
Регистрация: 22.10.2011
Сообщений: 34,027
Записей в блоге: 6
16.08.2015, 18:35 7
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
А какой сбой+вред может получиться на больших неформатированных текстах?
Психологический. Человек жмет Ctrl+D, и вместо ожидаемого результата получает диалоговое окно с диким деревом, которое ему показывает, что его код в принципе не разбирается утилитой. У меня в первый раз был шок, но я - это я, переформатировал исходник через ptop, и потом уже регулярно жал Ctrl+D (ну, либо, если есть новая Дельфи - то отформатировать вместо ptop Дельфийским Ctrl+D, он гораздо более всеяден, дико запущенные тексты программ запросто форматирует)
1
Модератор
6657 / 3236 / 1305
Регистрация: 01.02.2015
Сообщений: 10,280
Записей в блоге: 1
16.08.2015, 18:50 8
Спасибо, буду знать.

Да, кажется, JCF "спотыкается" и останавливается, если посреди оператора присвоения ":=" встретится перенос ": =". А это не редкость в чужих исходниках. Заглянуть бы в багтрекер проекта, но лень и без толку.

Но тогда, чем раньше ТС начнёт нажимать заветное Ctrl-D, тем лучше.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.08.2015, 18:50

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Fatal: Syntax error, "BEGIN" expected but "identifier BITMAP" found
Добрый день! пишу программу по методичке, выдает вот такие ошибки: unit1.pas(78,1) Fatal: Syntax...

Выдаёт ошибки Fatal: Syntax error, "BEGIN" expected but "end of file" found. Пожалуйста посмотрите что не так, прошу!
Выдаёт ошибки Fatal: Syntax error, &quot;BEGIN&quot; expected but &quot;end of file&quot; found. Пожалуйста...

Ошибка "Fatal: Syntax error, ";" expected but "." found"
звучит задание: создай программу, в которой можно преподнести введенное пользователем число к...

Ошибка: Fatal: Syntax error, ";" expected but "identifier Mas" found.
Где здесь синтаксическая ошибка( &quot;mas:=A2;&quot; )? procedure TForm1.Button1Click(Sender: TObject); ...

Ошибка Fatal: Syntax error, ";" expected but "is" found
Не могу нигде прописать часть кода вот эт type tproc = procedure is...

Unit1.pas(41,5) Fatal: Syntax error, ";" expected but "identifier Y" found
Привет всем.Сделал программу,вроде как должна работать,не пойму в чем проблема(программа вся...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.