Ошибка синтаксиса Паскаля рядом с неожиданным токеном - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь выяснить проблему с этим фрагментом кода Паскаля

function Factorial(n: integer): integer;
begin
  if n = 0 then
    Result := 1
  else if n > 0 then
    Result := Factorial(n - 1) * n; 
end;

Когда я запускаю код, я получаю ошибку -bash: синтаксическая ошибка рядом с неожиданным токеном `n: '

Кто-нибудь может сказать, почему это так?Я использую fpc (бесплатный компилятор pascal). Этот код предназначен для другого компилятора Pascal?

1 Ответ

0 голосов
/ 16 октября 2018

Этот код прекрасно компилируется в fpc.

Из сообщения об ошибке, которое вы цитируете, как говорит @KenWhite, похоже, что вы пытаетесь скомпилировать не тот инструмент - bash - это оболочка операционной системы для Linux и bashсообщение об ошибке.bash не для компиляции кода Паскаля.

Я предлагаю вам скачать и использовать Lazarus, который является бесплатной IDE для fpc и работает в Linux и Windows.Установив Lazarus в своей системе, создайте новый проект («простой проект» из списка новых типов проектов Lazarus. Затем скопируйте / вставьте код над begin ...end исходного кода проекта, затем сохраните и скомпилируйте его, и выувидим, что Lazarus сообщает об успешной компиляции проекта.

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

...