#pascal
#паскаль
Вопрос:
Мне нужно вычислить нечетную / четную сумму, вот что у меня есть на данный момент:
PROGRAM EvenOddSum;
USES
WinCrt;
VAR
odd, even, x: INTEGER;
BEGIN
WriteLn('Calculation of sum');
WriteLn;
odd := 0;
even := 0;
Write('Enter value(s)');
WHILE x > 0 DO BEGIN
IF x mod 2:= 0 THEN BEGIN
even := even x;
ELSE
odd := odd x;
ReadLn(x);
END;
WriteLn;
WriteLn('Even sum is = ', even);
WriteLn('Odd sum is =', odd);
END.
Я использую freepascal.org компилятор, и я получаю эту ошибку :
SYNTAX error THEN expected but := found
И я просто не вижу проблемы с этим кодом.
Комментарии:
1. Последний раз я писал на Pascal в 1983 году, но вы уверены, что после этого вам нужно ключевое слово BEGIN ? Я помню, что BEGIN вводит блок инструкций, подобный { does в C / C / Java / C # .
2. @EricJ. Я думаю, так вики. freepascal.org/IF
Ответ №1:
В Pascal :=
это оператор присваивания. Замените его =
на в строке, которая читается IF x mod 2:= 0 THEN BEGIN
.
Кроме того, удалите BEGIN
. Результат должен выглядеть следующим образом:
IF x mod 2 = 0 THEN
Ответ №2:
Это здесь:
IF x mod 2:= 0 THEN BEGIN
Используется :=
для присваивания, используйте ‘=’ или ‘==’ для сравнения.
(С моей точки зрения, я не знаю, использует ли Pascal ‘=’, ‘==’ или оба для сравнения. Один из них должен сделать свое дело).
Ответ №3:
Если я не ошибаюсь, :=
используется для объявления и присвоения значения. Для условия вы должны использовать =
.
изменить x mod 2:= 0
на x mod 2 = 0
Ответ №4:
Вы могли бы сказать:
x mod 2 > 0 then writeln(x);
При этом будут выведены все нечетные числа.