Вопрос задан 05.08.2026 в 18:18.
Предмет Информатика.
Спрашивает Маковський Влад.
var a,b,c,x,y:integer;
begin
read(a,b,c);
x:=a;
y:=b;
if ((a*x+b*y)/c) mod c=0 then writeln('yes') else('no');
end.
Ссылается на ошибку в конце на mod c=0, говоря, что операция неприменима к операндам этого типа. В чём дело?
Ответы на вопрос
Отвечает Лучин Максим.
Ошибка из-за знака /. В Паскале операция / всегда даёт вещественное число, даже если делятся целые числа. А mod можно применять только к целым числам.
То есть выражение ((a*x+b*y)/c) имеет вещественный тип, поэтому mod c к нему неприменим.
Если нужно целочисленное деление, используй div:
\[ ((a \cdot x + b \cdot y) \; div \; c) \; mod \; c = 0 \]
В коде:
if (((a*x+b*y) div c) mod c = 0) then writeln('yes') else writeln('no');
Ещё одна ошибка в конце: должно быть else writeln('no'), а не else('no').
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

