0

В лоб не понимаю, почему паскаль ругается на выражение str[i] <> ' ':

Нельзя преобразовать тип char к boolean

program pr;
var str, str_new: string;
var i: integer;
begin
  writeln('введите строку с пробелами');
  readln(str);

  for i:= 0 to length(str) do begin
    if str[i] <> ' ' AND not (str[i] in ['а','о','е','ё','ю','я','э','ы','у','и']) then begin
      str_new := str_new + str[i];
    end;
  end;

  writeln(str_new);
end.

1 ответ 1

2

Он ругается, потому что скобки забыты. Правильно условие записывается так

if (str[i] <> ' ') AND not (str[i] in ['а','о','е','ё','ю','я','э','ы','у','и'])

причина проста - AND более приоритетный, чем <>.

1
  • Ах эти приоритеты. Спасибо.
    – lampa
    24 окт 2014 в 9:41

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.