Ух, сегодня много Паскаля!
Ошибка (по крайней мере, от моего компилятора) находится в строке 39:
foo.pas(39,9) Fatal: Syntax error, ";" expected but "UNTIL" found
У вас есть:
Until BallsNo = 0;
Но нет соответствующего оператора Repeat
для запуска его цикла.С чем это должно идти Until
?То же самое происходит с циклом while
в строке 17, который, я думаю, вы намеревались завершить на строке 44. В обоих случаях они стали однострочными циклами while, где только следующая строка является частью цикла.
Цикл while
в Паскале с несколькими утверждениями выглядит следующим образом:
while CONDITION do
begin
{ statements... }
end;
(Для ясности {
в Паскале - это символ начала комментария.)
Привыкание к отступу вашего кода также поможет прояснить, что происходит.
Отредактировано для ваших правок Во-первых, вы должны либо сделать свои правки более заметными, либоопубликовать новый вопросЯ не заметил изменений, пока не заметил, что ваша вторая учетная запись добавила Repeat
операторов в ваш вопрос, где их раньше не было, и мне пришлось отправиться на поиски по истории редактирования вопроса.
Сбоев нет, но после первого вопроса тоже нет вывода.Но это потому, что вы так и сказали.
Проследите логику, которую вы добавили.У вас есть:
Ptr:=1;
While Ptr < 1 Do
{ .... }
End;
Это пропустит весь основной фрагмент программы в цикле while
, поскольку Ptr
не равно < 1
.Затем последний раздел в основном не запускается, где вы говорите:
If PlayerOneScore > PlayerTwoScore Then
Writeln('Player One Wins');
If PlayerTwoScore > PlayerOneScore Then
Writeln('Player Two Wins');
Поскольку до цикла while
вы инициализировали обе переменные в 0
, поэтому ни одна из этих строк не выводити программа просто выходит (нормально).
Продолжайте пытаться!Но подумай до конца.Вероятно, вам следует опубликовать новый вопрос и в следующий раз.