вычисления значение функции с использованием операторов case и if.. почему ошибка?

Program Phunkciya;
Uses crt;
var b,n,x : integer;
Begin
Clrscr;
write('Vvedite n,x :');
readln(n,x);
case n of
1 : b:=x+1;
2 : b:=ln(x+n);
3 : if n<>3 then b:=cos(x-1);
else if not b in [1,2,3] then b:=cos(x-1);
end;
writeln('b= ',b);
readln;

end.

Все индусские кодеры так начинали 🙂

if (flag = false) then
begin
if (false = true) then exit; //на всякий случай
...
end;

b := ln(x+n);

ln(x+n) - real
b - integer

вот в чем ошибка

нельзя присвоить результат функции ln целой переменной b
нельзя присвоить результат функции cos целой переменной b
в выражении not b in [1,2,3] не хватает скобок вокруг b in [1,2,3], да и сама эта проверка лишняя, потому что она уже в ветке else

Другие вопросы из категории «Компьютеры, Связь»

+1