PascalABC, обучение [закрыт]
Вопросы с просьбами помочь с отладкой («почему этот код не работает?») должны включать желаемое поведение, конкретную проблему или ошибку и минимальный код для её воспроизведения прямо в вопросе. Вопросы без явного описания проблемы бесполезны для остальных посетителей. См. Как создать минимальный, самодостаточный и воспроизводимый пример.
Закрыт 7 лет назад .
Даны электронные часы, и нужно сделать так, чтобы пользователь мог забить время самостоятельно, на часах есть 7 подсвеченных индикаторов.
не знаю, где ошибка. При запуске
Program1.pas(37) : Встречено ‘procedure’, а ожидался оператор
![]()
Основная ошибка в том, что определены процедуры, но не определено тело основной программы, а именно нет конструкции
Судя по всему в ней должен был осуществляться ввод параметров, следовательно этот код как раз и должен был быть основной программой
Далее, нет ни одного вызова описанных процедур, следовательно после ввода программа просто завершится и ничего не выведет.
Для решения, нужно добавить вызовы этих процедур в основную программу. Следующая ошибка:
В условиях идет попытка сравнения булевской переменной и целого числа, но при этом вы получаете следующую ошибку
Операция ‘=’ не применима к типам boolean и integer
Чтобы избежать этого можно опустить сравнение, так как переменные и так имеют тип boolean, для проверки что переменная true — достаточно использовать саму переменную, а для проверки что она false — нужно использовать оператор not . Таким образом приведенное выше выражение приобретет вид
Аналогично следует преобразовать оставшиеся условия.
Но при этом придется вводить не просто 1 , 0 , а именно true , false .
Вместо этого можно просто поменять тип переменных на Integer
конструкция if. then подразумевает что после then идет единственное выражение, таким образом для следующего кода
условие будет влиять только на первый writeln , остальные будут выполняться всегда.
Чтобы этого избежать необходимо использовать составной оператор begin. end; таким образом
несовместимые типы данных: boolean и int
Если результат имеет тип int, возникает ошибка, поскольку (результат) && (found_list[i] !=0) является логическим выражением. Также (результат) будет неправильным. Какой тип результата? — Hernan Velasquez
Boolean — это тип данных, который принимает только два значения: Galaxin
4 ответы
Вы пытаетесь сравнить found_list[i] типа boolean to 0 типа int

Поскольку found_list[] является логическим массивом, вы не можете сравнивать его со значением int. (found_list[i] !=0) неправильно.
Способ сделать это:
В отличие от языков c, c++ и многих других, 0 & 1 не false & true в java.
Это распространенная ошибка. Кроме того, проверка чего-то вроде boolean != false точно так же, как проверка, если boolean правда. то есть
Итак, вы можете сделать

Boolean принимает в качестве значений только True или False и ничего больше, как другие типы данных, такие как int, long, double, short и т. д.
Следовательно, если результат является логическим значением, значение, которое вы в нем храните, также должно быть логическим значением, которое равно True или False.
Ссылка на (результат) либо True, либо False.Если вы только что инициализировали его и оставили как
Тогда значение здесь равно false. В противном случае, если вы изменили его где-то до этого, это будет соответствующее значение.
Теперь (found_list[i] !=0); это неправильный способ кодирования. Если found_list[] является логическим значением, вы не можете сравнить его со значением int (в данном случае 0).
То, что вы или пытаетесь сделать здесь, является истинным/ложным!=0, что нельзя сравнивать.
Следовательно, вы получаете эту ошибку. Вместо этого вы можете изменить ее на
Почему пишет, что операция ‘=’ не применима к типу boolean в программе?
Ошибка здесь: if ((x=1) or (y=1)) then
Вся программа:
program pr1;
function _Xor (x, y:boolean): boolean;
begin
if ((x=1) or (y=1)) then
_Xor:=1
else
_Xor:=0;
end;
begin
readln (x, y);
writeln (_Xor(x, y));
end.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Используя знания исторических фактов, объясните, как природно-климатические условия повлияли на занятия жителей этой страны?
Оператор ‘& & ‘не может быть применен к операнду типа ‘bool’ и ‘int’
У меня есть оператор if elseif для проверки меток и оценки меток в соответствии с условием.
однако, когда я скомпилировать его, я получил
оператор ‘&&’ не может быть применена к операнду типа ‘bool’ и типа ‘int’
помогите мне исправить это.Спасибо заранее.
4 ответов
другие ответы дали понять, что основная проблема заключается в том, что !> не является оператором.
Я хотел бы предложить это, так как вы тестируете, есть ли marks лежит в определенных диапазонах, которые вы делаете дополнительный шаг для форматирования условных выражений, чтобы использовать следующий шаблон:
Это простое и, возможно, тонкое изменение, но я думаю, что это делает намерение проверки диапазона гораздо более ясным.
это не настоящий оператор:
не больше, чем было бы <= (меньше или равно)
EDIT: то, что вы пытаетесь сказать, может быть также выражено с помощью ! оператор. Но это было бы