can someone say to me, where is error due to I cant compile the program? Thanks. This is error description:
Compiling main.pas
main.pas(4,1) Error: Illegal expression
main.pas(4,6) Fatal: Syntax error, ";" expected but "identifier A" found
Fatal: Compilation aborted
Error: /usr/bin/ppcx64 returned an error exitcode (normal if you did not specify a source file to be compiled)
Program source code:
program Hello;
begin
type a = array [1..6] of integer;
integer a : array;
a[1]:=2;
a[2]:=6;
a[3]:=4;
a[4]:=2;
a[5]:=4;
a[6]:=3;
n:=6;
x:=a[1];
for i:=2 to 6 do
begin
{
if (a[i-1]>=x) then
begin
a[i]:=a[i] - x div 2;
end;
else
begin
a[i]:=a[i] + x;
x:= x + mod x(a[i] + 1);
end;
}
end;
writeln (a[i]);
end.
```
blami
6,2101 gold badge22 silver badges28 bronze badges
asked Jan 17, 2021 at 2:50
0
Compiler is complaining about unexpected token.
First problem is that keyword begin
is misplaced (as Loren Pechtel pointed out) and compiler treats your type definition and variables declaration as code. begin
should be where your program logic starts. See this tutorial to understand TurboPascal program structure.
Another problem is in definition of array type. First you need to create type and name it using identifier (hexad
in my example below). That identifier then becomes a type name such as integer
so you can use it for further var
declarations. Here is another tutorial on TurboPascal array types.
type
hexad = array [1..6] of integer;
and then you can declare a variable of that type (hexad
in my case):
var
a: hexad;
Note that you can have more types defined under keyword type
and more variables under keyword var
so it is a good practice to keep them on separate line and indent type definitions and variable declarations.
answered Jan 17, 2021 at 3:20
blamiblami
6,2101 gold badge22 silver badges28 bronze badges
In addition to the declaration problem that blami pointed out you have the begin in the wrong place—your definitions are being treated as code, not variables.
Don’t put too much faith in the compiler’s error messages, it often says things that aren’t related to the error at all. It’s very good about pointing to where the error is, though (other than when you failed to close something, then the where can be crazy.)
answered Jan 17, 2021 at 3:23
Loren PechtelLoren Pechtel
8,8773 gold badges33 silver badges45 bronze badges
stkapler 0 / 0 / 0 Регистрация: 07.02.2018 Сообщений: 19 |
||||
1 |
||||
07.02.2018, 04:52. Показов 22776. Ответов 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 |
Модератор 8255 / 5477 / 2249 Регистрация: 21.01.2014 Сообщений: 23,578 Записей в блоге: 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 |
Модератор 8255 / 5477 / 2249 Регистрация: 21.01.2014 Сообщений: 23,578 Записей в блоге: 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 |
Модератор 8255 / 5477 / 2249 Регистрация: 21.01.2014 Сообщений: 23,578 Записей в блоге: 3 |
|
07.02.2018, 12:41 |
7 |
А Вы этот обработчик
0 |
0 / 0 / 0 Регистрация: 07.02.2018 Сообщений: 19 |
|
07.02.2018, 12:43 [ТС] |
8 |
нет, не создавал
0 |
Модератор 8255 / 5477 / 2249 Регистрация: 21.01.2014 Сообщений: 23,578 Записей в блоге: 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 |
Ошибка в коде программы!
Модератор: Модераторы
Ошибка в коде программы!
Всем доброго времени суток.
В книге Алексеев Е. Р., Чеснокова О. В., Кучер Т. В. — 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….
Но это в ПОЛНОМ тексте кода программы….
-
Little_Roo - энтузиаст
- Сообщения: 632
- Зарегистрирован: 27.02.2009 19:56:36
- Откуда: Санкт-Петербург
Re: Ошибка в коде программы!
Анна Бак » 27.10.2014 22:11:59
Little_Roo писал(а):Таки строка 15, позиция 12….
![]()
Но это в ПОЛНОМ тексте кода программы….
СПАСИБО БОЛЬШОЕ!!!
- Анна Бак
- новенький
- Сообщения: 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
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0