Syntax error begin expected but identifier a found error

Отладка и выполнение программы После того, как программа набрана и поставлена заключительная точка после слова end, ее необходимо оттранслировать, устранить ошибки, как синтаксические, так и семантические, и выполнить, то есть получить конечный результат. После набора программы ее рекомендуется записать на диск. Более того, если текст программы достаточно объемен, лучше всего делать и промежуточные записи […]

Содержание

  1. Отладка и выполнение программы
  2. Fatal syntax error begin expected but identifier programm found
  3. Re: Ошибка в коде программы!
  4. Re: Ошибка в коде программы!
  5. Re: Ошибка в коде программы!
  6. Re: Ошибка в коде программы!
  7. Re: Ошибка в коде программы!
  8. Re: Ошибка в коде программы!
  9. Re: Ошибка в коде программы!
  10. Fatal: Syntax error, «.» expected but «;» found
  11. 1 Answer 1

Отладка и выполнение программы

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

После набора программы ее рекомендуется записать на диск. Более того, если текст программы достаточно объемен, лучше всего делать и промежуточные записи во избежание потери информации при сбоях компьютера или пропадании напряжения питания.

Если программа набирается заново, то есть активное окно имеет имя noname01.pas, то при нажатии клавиши F2 выполнится команда File/ Save as. При этом появится диалоговое окно со списком файлов – программ из текущего раздела, с именами Files, как на рис.2.6.

Рис. 2.6. Сохранение программы в Free Pascal.

В окне Name набирается имя файла, с которым он будет сохранен на диске. Имя автоматически будет дополнено расширением .pas. После записи на диск имя в текущем окне редактора сменится на заданное в поле Name. После дальнейшего набора программы или ее корректировки при нажатии клавиши F2 будет выполняться команда File/ Save, и никаких дополнительных запросов происходить не будет.

При переходе к новой программе окно с текстом старой программы закрывают ( или Window / Close, хотя это и не обязательно) и открывают новое активное окно (File / New). При необходимости чтения другой, ранее набранной программы, выполняется команда File / Open. (F3), в появляющемся диалоговом окне в области Files перемещением маркера выбирается нужный файл и нажимается клавиша Enter, эквивалентная кнопке диалогового окна Open.

После ввода программы ее можно откомпилировать с целью устранения ошибок ( ). Если программа не сохранена, то при компиляции возникнет диалоговое окно как при сохранении программы. Если компилятор обнаружил синтаксические ошибки, то появится сообщение, представленное на рис.2.7.

Рис. 2.7. Сообщение о наличии в программе синтаксических ошибок.

После того, как все ошибки устранены, появится следующее сообщение, как на рис. 2.8.: «Компиляция выполнена: нажмите любую клавишу».

Рис. 2.8. Компиляция завершена успешно.

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

Все ошибки программ делятся на два больших класса: ошибки компиляции (синтаксические) и ошибки выполнения (логические или алгоритмические). О первом типе ошибок сообщает компилятор до запуска программы на выполнение с указанием типа ошибки и предполагаемого ее места. К сожалению, ошибка может быть и не там, где стоит курсор; его положение – это фактически то место, где компилятор «осознает» ошибку. Например, если имеется лишний BEGIN в программе, то компилятор не поймет этого до тех пор, пока пары BEGIN. END не будут сбалансированы. На начальном этапе программирования большинство синтаксических ошибок происходит из-за невнимательности набора программы. Даже в первой строке могут делаться ошибки, см. рис.2.9.

Рис. 2.9. Ошибка в служебном слове

В первой строке сообщений компилятора появится сообщение: «Prim1.pas(1,9) Fatal: Syntax error, “BEGIN” expected but “identifier PROGRAMM” found».

Здесь Prim1.pas – имя программы, данное ей при записи на диск.

(1,9) – место, где обнаружена ошибка (строка, столбец). Не всегда совпадает с реальным местом ошибки.

Fatal: Syntax error – синтаксическая ошибка фатальная, дальнейшее выполнение невозможно.

“BEGIN” expected but “identifier PROGRAMM” found — ожидается BEGIN, но найден идентификатор PROGRAMM. Первое обязательное служебное слово – Begin, все остальные: заголовок, разделы описаний, можно и не писать. Все конструкции языка Паскаль, которые состоят из букв и цифр и начинаются с буквы, являются идентификаторами, за исключением служебных слов и некоторых директив. Так как слово PROGRAMM к служебным не относится, то оно определено как идентификатор, с которого не должна начинаться программа.

В данном примере пояснение причины ошибки не имеет особого смысла, – ожидается оператор BEGIN, – и такое случается довольно часто. Более осмысленное толкование происходит в следующем случае:

«Prim1.pas(1,14) Fatal: Syntax error, ”;”expected but “ordinal const” found» – перед порядковой константой (единицей) ожидается точка с запятой.

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

Довольно часто позиция указывается в строке, следующей за ошибочной:

Точка с запятой должна стоять перед А, то есть в конце предыдущей строки.

В любом случае при непонимании ошибки следует обратиться к синтаксису отмеченной конструкции языка Турбо Паскаль, либо к предыдущей.

Ошибки выполнения появляются после компиляции и запуска программы на выполнение. На экране программы выдается сообщение вида, представленного на рис.2.10.

Рис. 2.10. Сообщение с кодом завершения 201.

Ошибки выполнения искать труднее, чем синтаксические. Это и ошибки на уровне ОС, и ошибки ввода — вывода, и критические ошибки, и фатальные ошибки. Но, хотя ошибок данного класса довольно много, в данном курсе лабораторных работ чаще всего появляются только три фатальные ошибки:

Exitcode = 200 – Деление на нуль.

Exitcode = 201 – превышение времени выполнения программой.

Exitcode = 207 – переполнение при операции с плавающей точкой.

Вообще говоря, комментарии к первой и последней ошибкам не требуют дополнительных пояснений. Хотя они могут случаться не только при недопустимых делениях и вышедших из под контроля циклах операций умножения, но в данных лабораторных работах гораздо чаще встречаются при недопустимых аргументах математических функций: отрицательных значениях для логарифмов, квадратных корней, и других.

Ошибки же по времени выполнения (зацикливания компьютера) возникают либо при неверно составленном алгоритме, а соответственно, и программе, либо при выходе за границы неконтролируемых величин. Так как циклы могут использовать 2 типа операторов, то в цикле FOR категорически запрещено принудительное изменение параметра цикла, так как он изменяется автоматически. В циклах While и Repeat, наоборот обязательно надо изменять параметр цикла принудительно, иначе он останется без изменения. В бесконечных циклах каждое последующее слагаемое должно уменьшаться. Пример последней ситуации приведен в примечании к лабораторной работе № 4.

ИСР Free Pascal имеет два экрана. На основном экране набираются, просматриваются и редактируются программы, отдаются команды ИСР, устанавливаются параметры работы и так далее. Но при запуске программы появляется другой экран – экран пользователя. Сюда помещаются результаты работы по программе, и он виден до тех пор, пока программа не перестанет выполняться. Так как в данном курсе лабораторных работ программы весьма просты, то они выполняются практически мгновенно, и снова появляется основной экран ИСР. Для просмотра экрана пользователя из меню выбирается Debug > User screen или нажимается комбинация клавиш .Для возврата к основному экрану можно нажать любую клавишу. Если в процессе запуска программы возникнет необходимость прервать ее работу, например в случае «зацикливания» программы, используют комбинацию клавиш .

На экране пользователя мы увидим либо сообщение об ошибке выполнения, либо результат (если пропущен оператор вывода, естественно, вывода результата не будет), например, как на рис.2.11.

Рис. 2.11. Результат по нажатию клавиш .

Здесь нам нужна только последняя строка:

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

For I:=1 to 10 do;

результат вычислений будет равен 0.10000. Здесь после служебного слова DO стоит пустой оператор, поэтому именно он, то есть «ничто» будет выполняться десять раз. Затем к нулю прибавится одна десятая. Формально программа составлена правильно, и такую конструкцию иногда используют в качестве задержки по времени, но фактически десять раз должен выполняться оператор из третьей строки.

Конкретные рекомендации в таких случаях являются индивидуальными для каждой программы, существуют только общие методы тестирования. Рассмотрим два самых простейших.

Первый метод самый универсальный и может использоваться с любыми языками программирования, трансляторами и ассемблерами. Заключается он в выводе промежуточных результатов. Внутрь цикла, или в «подозрительные» места программы временно вставляются операторы вывода изменяемых переменных. Например, программа (приведен фрагмент)

For i:=1 to 15 do

просто «зацикливается» (если не используются директивы контроля). Но если перед i:=i+1 поставить оператор

то после запуска программы появятся два столбика бегущих чисел. Если приостановить вывод информации на экран монитора клавишей Pause, то сразу будет видно, что i изменяется не с шагом 1, а 2. То есть параметр цикла изменяется и в операторе For, и в операторе присваивания.

Второй метод привлекает средства отладки ИСР. Предварительно установив программный счетчик на начало программы (Run > Program reset или ), открывается окно наблюдаемых переменных (Debug > Add Watch или ): в Watch-окне набирается имя первой контролируемой переменной, нажимается Enter. После этого появляется окно с именем Watches и значением этой переменной. Добавление переменных в окно выполняется необходимое количество раз. Для пооператорного выполнения программы предназначена «горячая» клавиша F7 (Run > Trace into). После каждого нажатия клавиши F7 выполняется один оператор. Если он производит изменение значения переменной, то это сразу отразится в окне наблюдения.

Таким образом, анализируя изменение значений переменных при пооператорном выполнении программы, легко найти ошибку в алгоритме, и соответственно в программе.

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ — конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой.

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций.

Источник

Fatal syntax error begin expected but identifier programm 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 вводила все в ручную и все знаки переписывала уже несколько раз, ничего не помогает.

Источник

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 .

Источник

0 / 0 / 0

Регистрация: 14.11.2013

Сообщений: 43

1

10.09.2014, 13:52. Показов 5768. Ответов 8


Добрый день! пишу программу по методичке, выдает вот такие ошибки:
unit1.pas(78,1) Fatal: Syntax error, «BEGIN» expected but «identifier BITMAP» found
unit1.pas(78,1) Warning: Unknown procedure directive had to be ignored: «identifier».

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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  Buttons, ExtCtrls, EditBtn, FileCtrl, LCL;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    ComboBox1: TComboBox;
    DirectoryEdit1: TDirectoryEdit;
    FileListBox1: TFileListBox;
    FilterComboBox1: TFilterComboBox;
    Image1: TImage;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure DirectoryEdit1Change(Sender: TObject);
    procedure FileListBox1Change(Sender: TObject);
 
    procedure FilterComboBox1Change(Sender: TObject);
    procedure Memo1Change(Sender: TObject);
 
 
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.Memo1Change(Sender: TObject);
begin
 
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  Application.Terminate;
end;
 
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
   case ComboBox1.Text of
  'Имя'      : Memo1.Text := 'Дмитрий';
  'Фамилия'  : Memo1.Text := 'Чирков';
  'Отчество' : Memo1.Text := 'Юрьевич';
  'Год рождения' : Memo1.Text := '7 мая 1996';
  'Домашний адрес' : Memo1.Text := 'улица Народная, 64';
  'Рост' : Memo1.Text := '178';
  'Вес' : Memo1.Text := '85';
  'Хобби' : Memo1.Text := 'Компьютерные игры';
 
  end;
end;
 
procedure TForm1.DirectoryEdit1Change(Sender: TObject);
begin
  FileListBox1.Directory:=DirectoryEdit1.Directory;
end;
 
procedure TForm1.FileListBox1Change(Sender: TObject);
Bitmap: HBitmap ;
BM: Windows.TBitmap;
 
begin
  Bitmap:=LoadImage (0, PChar (FileListBox1. FileName), Image_Bitmap, 0, 0, LR_LOADFROMFILE );
GetObject (Bitmap, SizeOf (BM), @BM);
if (BM.bmHeight > Image1.Height) or (BM.bmWidth > Image1.Width)
then Image1.Stretch := True
else Image1.Stretch := False;
if FileListBox1.FileName  <> ''  then
Image1.Picture.LoadFromFile (FileListBox1.FileName)
 
 
end;
 
 
 
procedure TForm1.FilterComboBox1Change(Sender: TObject);
begin
    FileListBox1.Mask:='*.bmp; *.BMP; *.jpg;*.jpeg'+FilterComboBox1.Mask;
end;
 
end.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Topic: Syntax error, «.» expected but «identifier I» found  (Read 16241 times)

hello everyone,

i learned pascal years ago, now a friend of mine asked me to help them with some problem, so i’m not very familiar with pascal’s errors, i’ve fixed a few but can’t figure out this one. i’m using an online compiler, and i get this error: Syntax error, «.» expected but «identifier I» found

here’s the code (getting the error on line 18):

  1. program p;

  2. var a,n,i,j,k : integer;

  3. var x : array[1..50] of integer;

  4. begin

  5. write(‘a = ‘);

  6. read(a);

  7. write(‘n = ‘);

  8. read(n);

  9.     k:=1;

  10.     i:=a;

  11. while(k<=n) do

  12. for j:=2 to trunc(i/2) do

  13. if (i mod j <> 0) then begin

  14.                 x[k]:= i;

  15.                 k:=k+1;

  16. end

  17. end

  18.         i:=i+1;

  19. end

  20. for i:=1 to k do writeln(x[k]);

  21. end.

« Last Edit: November 15, 2016, 08:00:45 am by user4592357 »


Logged


Hi user4592357,

Try this:

  1. program p;

  2. var a,n,i,j,k : integer;

  3. var x : array[1..50] of integer;

  4. begin

  5. write(‘a = ‘);

  6. read(a);

  7. write(‘n = ‘);

  8. read(n);

  9.     k:=1;

  10.     i:=a;

  11. while(k<=n) do begin

  12. for j:=2 to trunc(i/2) do begin

  13. if (i mod j <> 0) then begin

  14.                 x[k]:= i;

  15.                 k:=k+1;

  16. end;

  17. end;

  18.         i:=i+1;

  19. end;

  20. for i:=1 to k do writeln(x[k]);

  21. end.


Logged


You need the semicolon after the «end»s.
I think the only exception is when it’s «end else»… http://wiki.freepascal.org/Else


Logged

Getting back into programming after 8+ years.


You need the semicolon after the «end»s.
I think the only exception is when it’s «end else»… http://wiki.freepascal.org/Else

No, end end end … <at infinitum minus 1> is legal, provided the last end; has a terminating ; and there is really no code at all in between the end’s.

  1. {%NORUN}

  2. program untitled;

  3. uses initc;

  4. begin

  5. while true do

  6. begin

  7. while true do

  8. begin

  9. while true do

  10. begin

  11. end //<—

  12. end //<—

  13. end; //<—

  14. end.

« Last Edit: November 15, 2016, 09:23:14 am by Thaddy »


Logged

«Looks» OK, doesn’t mean it is IS OK.


You need the semicolon after the «end»s.
I think the only exception is when it’s «end else»… http://wiki.freepascal.org/Else

No, end end end … <at infinitum minus 1> is legal, provided the last end; has a terminating ; and there is really no code at all in between the end’s.

Ah, learned something new today!  :)


Logged

Getting back into programming after 8+ years.


Added example ;)


Logged

«Looks» OK, doesn’t mean it is IS OK.


@Thaddy
It might be legal but still ugly or confusing at least.  :)


Logged


yeah the semicolons were missing, and i learned that too :D thanks for the help


Logged



Logged

«Looks» OK, doesn’t mean it is IS OK.


yeah the semicolons were missing, and i learned that too :D thanks for the help

Actually you miss only two semicolons in two of the ends, lines 17 and 19.  The other one (line 16) is the last statement of the block so it doesn’t need a semicolon.   You don’t need a semicolon before an END keyword.

The way to understand is to read the Pascal BNF description.  The trick is at the StatementSequence production:

  StatementPart     = CompoundStatement .

  CompoundStatement = "begin" StatementSequence "end" .

  StatementSequence = Statement { ";" Statement } .

  Statement         = [ Label ":" ]
                      [   AssignmentOrCall
                        | CompoundStatement
                        | GotoStatement
                        | WhileStatement
                        | RepeatStatement
                        | IfStatement
                        | CaseStatement
                        | ForStatement
                        | WithStatement ] .

  AssignmentOrCall  = Designator ( ":=" Expression | [ ActualParams ] ) .

  WhileStatement    = "while" BooleanExpression "do" Statement .

  RepeatStatement   = "repeat" StatementSequence "until" BooleanExpression .

  IfStatement       = "if" BooleanExpression "then" Statement
                      [ "else" Statement ] .

  ForStatement      = "for" ControlVariable ":=" OrdinalExpression
                      ( "to" | "downto" ) OrdinalExpression "do" Statement .


Semicolon is used to separate statements in a statement sequence, not to mark where a statement ends as used in C and derivatives.

BASIC does the same, but using colon («:»). ;)

[edit]
I’ve found this other BNF-esque description. May be it’s more clear.

« Last Edit: November 15, 2016, 11:46:03 am by Ñuño_Martínez »


Logged


Ошибка в коде программы!

Модератор: Модераторы

Ошибка в коде программы!

Всем доброго времени суток.
В книге Алексеев Е. Р., Чеснокова О. В., Кучер Т. В. — Free Pascal и Lazarus(2010), есть пример такой программы:

Код: Выделить всё
var a, b, c, d, x1, x2: real;
begin
writeln (’Введите_коэффициенты_квадратного_уравнения’);
readln (a, b, c);
d:=b*b−4*a*c;
if d<0 then
begin
//Если дискриминант отрицателен, то вывод сообщения,
//что действительный корней нет и вычисление комплексных корней.
writeln (’Действительных_корней_нет’);
{Вычисление действительной части комплексных корней.}
x1:=−b/(2*a);
{Вычисление модуля мнимой части комплексных корней.}
x2:=sqrt(abs(d))/(2*a);
writeln ( ’Комплексные_корни_уравнения_’,
a:1:2, ’x^2+’ ,b:1:2, ’x+’ ,c:1:2, ’=0’ );
{Вывод значений комплексных корней в виде x1±ix2}
writeln (x1:1:2, ’+i*(’ ,x2:1:2, ’)’);
writeln (x1:1:2, ’−i*(’ ,x2:1:2, ’)’);
end
else
begin
{иначе вычисление действительных корней x1, x2}
x1:=(−b+sqrt(d))/2/a;
x2:=(−b−sqrt(d))/(2*a);
{и вывод их на экран.}
writeln ( ’Действительные_корни_уравнения_’ ,
a:1:2, ’x^2+’ ,b:1:2, ’x+’ ,c:1:2, ’=0’);
writeln (’X1=’ ,x1:1:2, ’X2=’ ,x2:1:2)
end end.

Когда я начинаю компилировать программу выходить такое сообщение об ошибке:
Fatal: Syntax error, «)» expected but «identifier B» found.
Не могу найти где эта ошибка
КТО-НИБУДЬ, ПОДСКАЖИТЕ!!!

Анна Бак
новенький
 
Сообщения: 13
Зарегистрирован: 11.02.2014 13:23:09

Re: Ошибка в коде программы!

Сообщение Дож » 27.10.2014 18:07:56

Видимо, проблема в том, что Вы отсканировали текст и не почистили от фигни.

Вместо короткого тире − должен знак минус -,
вместо обратной кавычки ’ — знак апострофа ‘.

Аватара пользователя
Дож
энтузиаст
 
Сообщения: 891
Зарегистрирован: 12.10.2008 16:14:47

Re: Ошибка в коде программы!

Сообщение Анна Бак » 27.10.2014 20:02:42

Дож писал(а):Видимо, проблема в том, что Вы отсканировали текст и не почистили от фигни.

Вместо короткого тире − должен знак минус -,
вместо обратной кавычки ’ — знак апострофа ‘.

Я отсканировала текст только для того, чтобы задать вопрос.
А в Free Pascal вводила все в ручную и все знаки переписывала уже несколько раз, ничего не помогает.

Анна Бак
новенький
 
Сообщения: 13
Зарегистрирован: 11.02.2014 13:23:09

Re: Ошибка в коде программы!

Сообщение Little_Roo » 27.10.2014 20:40:10

какая строка с ошибкой?

Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 632
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: Ошибка в коде программы!

Сообщение Анна Бак » 27.10.2014 21:35:18

Little_Roo писал(а):какая строка с ошибкой?

В этом-то и проблема. Я не могу найти строчку с ошибкой.
Полный текст ошибки такой:
Zero.pas (15,12) Fatal: Syntax error, «)» expected but «identifier B» found.

Анна Бак
новенький
 
Сообщения: 13
Зарегистрирован: 11.02.2014 13:23:09

Re: Ошибка в коде программы!

Сообщение Little_Roo » 27.10.2014 21:38:27

Анна Бак писал(а):Zero.pas (15,12

Таки строка 15, позиция 12…. :shock:
Но это в ПОЛНОМ тексте кода программы….

Аватара пользователя
Little_Roo
энтузиаст
 
Сообщения: 632
Зарегистрирован: 27.02.2009 19:56:36
Откуда: Санкт-Петербург

Re: Ошибка в коде программы!

Сообщение Анна Бак » 27.10.2014 22:11:59

Little_Roo писал(а):Таки строка 15, позиция 12…. :shock:
Но это в ПОЛНОМ тексте кода программы….

СПАСИБО БОЛЬШОЕ!!! :D :D :D

Анна Бак
новенький
 
Сообщения: 13
Зарегистрирован: 11.02.2014 13:23:09

Re: Ошибка в коде программы!

Сообщение Дож » 27.10.2014 23:28:21

Анна Бак писал(а):

Дож писал(а):Видимо, проблема в том, что Вы отсканировали текст и не почистили от фигни.

Вместо короткого тире − должен знак минус -,
вместо обратной кавычки ’ — знак апострофа ‘.

Я отсканировала текст только для того, чтобы задать вопрос.
А в Free Pascal вводила все в ручную и все знаки переписывала уже несколько раз, ничего не помогает.

Разумно приводить на форуме именно неработающий код, потому что приведённый в первом посте после замены указанных мною символов на правильные благополучно компилируется и запускается.

Аватара пользователя
Дож
энтузиаст
 
Сообщения: 891
Зарегистрирован: 12.10.2008 16:14:47

Re: Ошибка в коде программы!

Сообщение Анна Бак » 28.10.2014 13:48:34

Дож писал(а):Разумно приводить на форуме именно неработающий код, потому что приведённый в первом посте после замены указанных мною символов на правильные благополучно компилируется и запускается.

Спасибо. Постараюсь.

Анна Бак
новенький
 
Сообщения: 13
Зарегистрирован: 11.02.2014 13:23:09


Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Понравилась статья? Поделить с друзьями:
  • Svn error working copy locked
  • Syntax error at or near select перевод
  • Svn error running context
  • Syntax error at or near returning
  • Svn error 500