Содержание
- Fatal: Syntax error, «.» expected but «;» found
- 1 Answer 1
- Fatal syntax error expected but var found
- Re: Ошибка в коде программы!
- Re: Ошибка в коде программы!
- Re: Ошибка в коде программы!
- Re: Ошибка в коде программы!
- Re: Ошибка в коде программы!
- Re: Ошибка в коде программы!
- Re: Ошибка в коде программы!
- Why does syntax error appear after running code?
- 1 Answer 1
- [Паскалъ] Need Help
Fatal: Syntax error, «.» expected but «;» found
1 Answer 1
The reason for this is that your begin s and end s are not balanced; disregarding the opening begin and closing end. for the program’s syntax to be correct, you should have equal numbers of each, but you have 4 begin s and 8 end s.
Obviously, your code is to compute the solutions of a quadratic equation. What I think you should do is to adjust the layout of your code so that it reflects that and then correctly the begin s and end s. In particular, your program is trying to detect whether any of a, b and d is zero and, if so, write a diagnostic message, otherwise calculate the roots by the usual formula.
Unfortunately, your begin s and end s do not reflect that. Either the whole of the block starting d := . needs to be executed or none of it does, so the else on the line before needs to be followed by a begin , as in
(You don’t say which Pascal compiler you are using, but the above fixes two points which are flagged as errors in FreePascal.
If you need more help than that, please ask in a comment.
Btw, there are some grammatical constructs in Pascal implementations where an end can appear without a matching preceding begin such as case . of . end .
Источник
Fatal syntax error expected but var found
Анна Бак » 27.10.2014 17:40:51
Re: Ошибка в коде программы!
Дож » 27.10.2014 18:07:56
Видимо, проблема в том, что Вы отсканировали текст и не почистили от фигни.
Вместо короткого тире − должен знак минус -,
вместо обратной кавычки ’ — знак апострофа ‘.
Re: Ошибка в коде программы!
Анна Бак » 27.10.2014 20:02:42
Дож писал(а): Видимо, проблема в том, что Вы отсканировали текст и не почистили от фигни.
Вместо короткого тире − должен знак минус -,
вместо обратной кавычки ’ — знак апострофа ‘.
Я отсканировала текст только для того, чтобы задать вопрос.
А в Free Pascal вводила все в ручную и все знаки переписывала уже несколько раз, ничего не помогает.
Re: Ошибка в коде программы!
Little_Roo » 27.10.2014 20:40:10
Re: Ошибка в коде программы!
Анна Бак » 27.10.2014 21:35:18
Re: Ошибка в коде программы!
Little_Roo » 27.10.2014 21:38:27
Re: Ошибка в коде программы!
Анна Бак » 27.10.2014 22:11:59
Re: Ошибка в коде программы!
Дож » 27.10.2014 23:28:21
Дож писал(а): Видимо, проблема в том, что Вы отсканировали текст и не почистили от фигни.
Вместо короткого тире − должен знак минус -,
вместо обратной кавычки ’ — знак апострофа ‘.
Я отсканировала текст только для того, чтобы задать вопрос.
А в Free Pascal вводила все в ручную и все знаки переписывала уже несколько раз, ничего не помогает.
Источник
Why does syntax error appear after running code?
presently learning how to code in pascal and vba. Assisting my daughter who is preparing for examinations next year. I am stuck on a problem concerning her present assignment. After running the code the following errors were received:
main.pas(1,2) Fatal: Syntax error, «BEGIN» expected but «identifier N» found Fatal: Compilation aborted
Tried fixing the code, but as i said I have just started learning to code.
The expected result is to choose a candidate by his ID number which would lead to his name, the number of vote available in a district and the number of votes the candidate obtained being displayed. it would then result in a calculation between the two vote counts (division) and if the percentage is greater than 20% he would receive a refund, if less than 20% he would not receive a refund. either result should be displayed.
1 Answer 1
I’m afraid that you q, as it currently stands, isn’t really suited to SO because SO is really about specific (single) programming problems, not incrementally debugging source code (see Sertac’s comment), nor providing online tutorials, which I think you probably need at this point. And I feel rather uncomfortable about posting this as an answer, because it isn’t one in the normal SO sense. However it seems to me that you could use a few pointers:
Unless you absolutely have to use the online compiler, download and use a free online one like Free Pascal, which is well supported, uses standard Pascal syntax, and I’m sure there are basic first-time tutorials available. See here to download Lazarus, which is an excellent IDE for Free Pascal (which is included in the install) and here for an introductory tutorial.
Secondly, there are structural and syntactic elements of your source-code which are definitely not standard Pascal, in particular endif and elseif . Another example is that in standard Pascal, you have to surround a string (like your Richards, etc) with single-quotes ‘ , not precede the string by a back-quote. This is very possibly the cause of your «illegal character» error
For a decent Free Pascal introductory tutorial see here and this youtube tutorial, both found by googling
«free pascal» introductory tutorial.
Fourthly, your online compiler ought to be complaining about the endif abd elseif s, the incorrectly string formatting and the fact that several of your variables are duplicated ( DV and VR used as the names of an integer variable and an array, for example as in Pascal, identifiers within the same ‘scope’ need to have unique names (the fact that I should explain what ‘scope’ means is a sign that what the q needs is a tutorial).
Источник
[Паскалъ] Need Help
Что программа должна делать(на пхп)
ЕМНИП перед else там точка с запятой не ставится.
Не, ругается на другое, и спасибо это пофиксил.
> перед else там точка с запятой не ставится.
> ругается на другое
Условия в скобки попробуй.
Перед else ; не ставится.
У readln точно такой синтаксис? (я уже запамятовал)
Условия в скобки не надо?
Операции сравнения в скобки возьми.
А теперь, дружище, запомни, что вот этот выхлоп
untitled.pas(26,7) Error: Incompatible types: got «Boolean» expected «LongInt»
untitled.pas(28,2) Fatal: Syntax error, «;» expected but «ELSE» found
должен читать ТЫ сам, а не ЛОР.
Свободно говорю на Русском, Литовском, Английском.
Свободно говорю на Английском
Error: Incompatible types: got «Boolean» expected «LongInt»
Fatal: Syntax error, «;» expected but «ELSE» found
Источник
stkapler 0 / 0 / 0 Регистрация: 07.02.2018 Сообщений: 19 |
||||
1 |
||||
07.02.2018, 04:52. Показов 22831. Ответов 14 Метки delphi, lazarus, pascal (Все метки)
звучит задание: создай программу, в которой можно преподнести введенное пользователем число к указанному степеню. покапавшись на всяких форумах и тп, написал код. вроде бы все ок. но при компиляции выдает ошибку в 41 строке unit1.pas(42,17) Fatal: Syntax error, «;» expected but «.» found ниже код:
ps. уже сам нашел несколько ошибок, но все равно проблема осталась Добавлено через 8 минут
__________________
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
07.02.2018, 04:52 |
Ответы с готовыми решениями: Ошибка «project1.lpr(35,0) Fatal: Syntax error, «BEGIN» expected but «end of file» found» Ошибка: project1.lpr(1,1) Fatal: Syntax error, «BEGIN» expected but «end of file» found Ошибка: Fatal: Syntax error, «;» expected but «identifier Mas» found. procedure TForm1.Button1Click(Sender: TObject); Ошибка Fatal: Syntax error, «;» expected but «is» found 14 |
Джоуи 1073 / 635 / 240 Регистрация: 05.05.2015 Сообщений: 3,546 Записей в блоге: 2 |
|
07.02.2018, 05:48 |
2 |
implementation function Power(const Base, Exponent: Extended): Extended; Директива implementation означает раздел реализации, а не описания. Вы не реализовали функцию Power, а просто ее описали (нету begin end). Кстати, переименуйте как-нибудь, а то функция Power уже есть в паскале
0 |
Модератор 8257 / 5480 / 2249 Регистрация: 21.01.2014 Сообщений: 23,584 Записей в блоге: 3 |
|||||
07.02.2018, 06:04 |
3 |
||||
НЕ ЗНАЮ ЧТО ДЕЛАТЬ!
3. В секции uses подключить модуль Math
0 |
stkapler 0 / 0 / 0 Регистрация: 07.02.2018 Сообщений: 19 |
||||
07.02.2018, 12:22 [ТС] |
4 |
|||
сделал все как вы сказали unit1.pas(39,25) Error: Incompatible type for arg no. 1: Got «TTranslateString», expected «Int64» unit1.pas(39,25) Error: Incompatible type for arg no. 1: Got «TTranslateString», expected «Int64» сами строки
у меня есть готовый ответ на это задание, даже 2. но все таки хочу найти решение самостоятельно, пусть даже при помощи форумчан)
0 |
Модератор 8257 / 5480 / 2249 Регистрация: 21.01.2014 Сообщений: 23,584 Записей в блоге: 3 |
|
07.02.2018, 12:35 |
5 |
stkapler, Вы Добавлено через 7 минут
0 |
0 / 0 / 0 Регистрация: 07.02.2018 Сообщений: 19 |
|
07.02.2018, 12:36 [ТС] |
6 |
все хорошо, спасибо! проект компилируется и запускается НО!! при вводе чисел и после нажатия кнопки — ничего не происходит. а должен быть результат visible включен. шрифт норм, цвет отличный от фона. ничего не понимаю
0 |
Модератор 8257 / 5480 / 2249 Регистрация: 21.01.2014 Сообщений: 23,584 Записей в блоге: 3 |
|
07.02.2018, 12:41 |
7 |
А Вы этот обработчик
0 |
0 / 0 / 0 Регистрация: 07.02.2018 Сообщений: 19 |
|
07.02.2018, 12:43 [ТС] |
8 |
нет, не создавал
0 |
Модератор 8257 / 5480 / 2249 Регистрация: 21.01.2014 Сообщений: 23,584 Записей в блоге: 3 |
|
07.02.2018, 14:48 |
9 |
РешениеНе по теме:
А Вы этот обработчик создавали
нет, не создавал но в планах для красивого оформления программы это есть :scratch: stkapler, возьмите любую книжку по самым-самым азам создания программ в среде Delphi/Lazarus и обязательно прочтите ее… Ну или программирование бросайте прямо сейчас…
0 |
0 / 0 / 0 Регистрация: 07.02.2018 Сообщений: 19 |
|
07.02.2018, 19:11 [ТС] |
10 |
спасибо, теперь все ок!
0 |
Hretgir |
07.02.2018, 20:01
|
Не по теме:
зачем в 2018 дают учить паскаль действительно, ребята учатся на начальников Била Гейтса, а их Паскаль учить заставляют, маразм да и только.
0 |
0 / 0 / 0 Регистрация: 07.02.2018 Сообщений: 19 |
|
07.02.2018, 20:08 [ТС] |
12 |
орнул. ну считайте что у меня узкое мировоззрение, ваше право
0 |
Hretgir |
07.02.2018, 20:37
|
Не по теме: а что-бы вы хотели учить в 2018? просто интересно…
0 |
stkapler |
07.02.2018, 20:58 [ТС] |
Не по теме: я себе сейчас спокойно учу видеомонтаж в свое свободное время, но учить паскаль — навязывает школьная программа
0 |
Cyborg Drone |
08.02.2018, 09:25
|
Не по теме: Да не спорьте. Не нужно знать язык программирования — значит, не нужно. Личное дело каждого. С другой стороны, те, кто всерьёз занимается программированием, как правило, знает несколько языков программирования, и выучить ещё один, как правило, никакая не проблема.
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
08.02.2018, 09:25 |
Fatal: Syntax error, «BEGIN» expected but «end of file» found Unit1.pas(41,5) Fatal: Syntax error, «;» expected but «identifier Y» found
Unit1.pas(66,4) Fatal: Syntax error, «;» expected but «.» found {$mode objfpc}{$H+} interface uses Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 15 |
Topic: problem with Fatal: Syntax error, «;» expected but «:» found (Read 5272 times)
Hello, I am a beginner in Lazarus and the Pascal language.
my problem is that every time I try to run my program it gives me this error: Fatal: syntax error, «;» expected but found.
in case there is any doubt this is the program.
program division;
var
a,b,c:double;
begin
writeln(‘extra division’);
writeln(‘ingresa el divisor’);
readln(a);
writeln(‘ingresa el dividendo’);
readln(b);
if (b=0) then
begin
writeln(‘math error’);
readln;
end
else
begin
c:a/b;
writeln(‘el resultado de la division es’,c:4:2);
readln;
end;
I would be very grateful to you if you could help me solve this problem.
Logged
Logged
HOMEWORK ???
-
PROGRAM Division;
-
VAR dDividend,dDivisor,dQuotient:Double;
-
BEGIN
-
Writeln(‘extra division’);
-
Writeln(‘ingresa el dividendo’);
-
Readln(dDividend);
-
Writeln(‘ingresa el divisor’);
-
Readln(dDivisor);
-
If (dDivisor = 0)
-
Then
-
Begin
-
Writeln(‘math error’);
-
Readln;
-
End
-
Else
-
Begin
-
dQuotient:= dDividend/dDivisor;
-
Writeln(‘el resultado de la division es: ‘,dQuotient:4:2);
-
Readln;
-
END;
-
END.
Logged
Windows 7 Pro (x64 Sp1) & Windows XP Pro (x86 Sp3).
Logged
Hello, I am a beginner in Lazarus and the Pascal language.
my problem is that every time I try to run my program it gives me this error: Fatal: syntax error, «;» expected but found.
in case there is any doubt this is the program.
program division;
var
a,b,c:double;
begin
writeln(‘extra division’);
writeln(‘ingresa el divisor’);
readln(a);
writeln(‘ingresa el dividendo’);
readln(b);
if (b=0) then
begin
writeln(‘math error’);
readln;
end
else
begin
c:a/b;
writeln(‘el resultado de la division es’,c:4:2);
readln;
end;I would be very grateful to you if you could help me solve this problem.
Logged
One System to rule them all, One Code to find them,
One IDE to bring them all, and to the Framework bind them,
in the Land of Redmond, where the Windows lie
———————————————————————
Code is like a joke: If you have to explain it, it’s bad
This line:
-
c:a/b;
Needs to be changed to this:
-
c := a/b;
Also, you need to add the following at the bottom of the file to close your 1st ‘begin’ and the unit as a whole:
-
end.
So, the entire code should look like this:
-
program division;
-
var
-
a, b, c : double;
-
begin
-
WriteLn(‘extra division’);
-
WriteLn(‘ingresa el divisor’);
-
ReadLn(a);
-
WriteLn(‘ingresa el dividendo’);
-
ReadLn(b);
-
if (b=0) then
-
begin
-
WriteLn(‘math error’);
-
ReadLn;
-
end
-
else
-
begin
-
c := a / b; // <— CHANGED!!!
-
WriteLn(‘el resultado de la division es’, c:4:2);
-
ReadLn;
-
end;
-
end. // <— ADDED!!!
« Last Edit: June 19, 2020, 08:31:39 pm by Remy Lebeau »
Logged
@Remy Lebeau: almost … one is missing …
You don’t get the flower pot !
Logged
Windows 7 Pro (x64 Sp1) & Windows XP Pro (x86 Sp3).
@Remy Lebeau: almost … one is missing …
Which one? I don’t see anything missing in the code I posted.
Logged
I don’t see anything missing in the code I posted.
Correct, nothing is missing, but the «WriteLn» order is not optimal…
Divisor (a), Dividend (b), Check b = 0 (Dividend?), Divisor/Dividend ?
In my world you have to do it like this:
Dividend / Divisor = Quotient
As I said, you don’t get the flower pot …
Logged
Windows 7 Pro (x64 Sp1) & Windows XP Pro (x86 Sp3).
Hi!
Dont battle about the poor dividende.
We could teach him the way the C boys do it:
Division by zero is no error. Never.
SetExceptionMask([exZeroDivide, exInvalidOp, exDenormalized, exOverflow, exUnderflow, exPrecision]);
….
You dont have to ask for dividing by zero anymore.
The price you have to pay:
Incorrect results and a system crash every now and then.
We all know that from Windows.
Winni
Logged
Dont battle about the poor dividende.
We could teach him the way the C boys do it:
Division by zero is no error. Never.
I think RAW is referring just to the terminology in the WriteLn’s: Remy’s code asks for the divisor when he means the dividend and viceversa. Just a small oversight
Logged
Turbo Pascal 3 CP/M — Amstrad PCW 8256 (512 KB !!!)
Lazarus/FPC 2.0.8/3.0.4 & 2.0.12/3.2.0 — 32/64 bits on:
(K|L|X)Ubuntu 12..18, Windows XP, 7, 10 and various DOSes.
…code asks for the divisor when he means the dividend and viceversa…
@lucamar: the flowers are all yours …
by the way: no battle at all, just a little hint that the code isn’t optimal …
Logged
Windows 7 Pro (x64 Sp1) & Windows XP Pro (x86 Sp3).
I think RAW is referring just to the terminology in the WriteLn’s: Remy’s code asks for the divisor when he means the dividend and viceversa. Just a small oversight
It is not MY code, it is the OP’s code. I just fixed the syntax errors, not the logic errors.
Logged
Модератор: Модераторы
Ошибка Fatal: Syntax error, «;» expected
Доброго времени суток, препод дала задание, но при компиляции программа выдает ошибку «cloud.pas(51,12) Fatal: Syntax error, «;» expected but «identifier TFORM1″ found»
В код никакой отсебятины не добавлялось, полное копирование из задания.
- Код: Выделить всё
unit cloud;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, FileUtil, Buttons, ExtCtrls, StdCtrls;type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
PaintBox1: TPaintBox;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
private
{ private declarations }
//Координаты прорисовки объекта.Доступны всем процедурам класса TForm1
x1,y1:Integer;
public
{ public declarations }
//Процедура прорисовки облака
procedure Cloud(x,y:Integer; ColorCloud:TColor);
end;var
Form1: TForm1;implementation
{$R *.lfm}
procedure TForm1.FormCreate(Sender: TObject);
beginend;
{ TForm1 }
procedure TForm1.Cloud(x,y:Integer; ColorCloud:TColor);
begin
//Прорисовка облака из двух эллипсов
with PaintBox1.Canvas do begin
Pen.Style:=psClear;
Brush.Color:=ColorCloud;
Ellipse(x,y,x+80,y+40);
Ellipse(x+30,y+10,x+100,y+50);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//установка начальных значений
x1:=0;
y1:=50;
Timer.Interval:=100;
//прорисовка картинки по которой двигается объект
PaintBox1.Canvas.Brush.Color:=clBlue;
PaintBox1.Canvas.Rectangle(0,0,PaintBox1.Width,PaintBox1.Height);
//Включение таймера-запуск анимации
Timer1.Enabled:=true;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
//закраска объекта цветом фона
Cloud(x1,y1,clBlue)
//изменение координат прорисовки
x1:=x1+1;
//прорисовка объекта в новом месте
Cloud(x1,y1,clWhite);
end;
end.
Очень надеюсь на вашу помощь)
- Mire
- незнакомец
- Сообщения: 1
- Зарегистрирован: 03.05.2019 10:49:20
Re: Ошибка Fatal: Syntax error, «;» expected
Awkward » 04.05.2019 12:14:19
- Код: Выделить всё
procedure TForm1.Cloud(x,y:Integer; ColorCloud:TColor);
begin
//Прорисовка облака из двух эллипсов
with PaintBox1.Canvas do begin // <<<<< не парный begin
Pen.Style:=psClear;
Brush.Color:=ColorCloud;
Ellipse(x,y,x+80,y+40);
Ellipse(x+30,y+10,x+100,y+50);
end; // <<<<<< вставить
end;
- Awkward
- новенький
- Сообщения: 43
- Зарегистрирован: 19.01.2017 00:06:47
Re: Ошибка Fatal: Syntax error, «;» expected
iskander » 04.05.2019 12:29:38
И еще вот здесь:
- Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
begin
//установка начальных значений
x1:=0;
y1:=50;
Timer.Interval:=100;
//прорисовка картинки по которой двигается объект
PaintBox1.Canvas.Brush.Color:=clBlue;
PaintBox1.Canvas.Rectangle(0,0,PaintBox1.Width,PaintBox1.Height);
//Включение таймера-запуск анимации
Timer1.Enabled:=true;
//end; <-------- убрать лишний end
end;
- iskander
- энтузиаст
- Сообщения: 538
- Зарегистрирован: 08.01.2012 18:43:34
Re: Ошибка Fatal: Syntax error, «;» expected
VirtUX » 05.05.2019 11:27:40
Mire писал(а):procedure TForm1.Timer1Timer(Sender: TObject);
begin
//закраска объекта цветом фона
Cloud(x1,y1,clBlue); <—- тут пропустили «;»
//изменение координат прорисовки
x1:=x1+1;
//прорисовка объекта в новом месте
Cloud(x1,y1,clWhite);
end;
-
VirtUX - энтузиаст
- Сообщения: 878
- Зарегистрирован: 05.02.2008 10:52:19
- Откуда: Крым, Алушта
Вернуться в Lazarus
Кто сейчас на конференции
Сейчас этот форум просматривают: Google [Bot] и гости: 7