Форум » Циклы и ветвления » Остаток от отрицательного числа в Pascal » Ответить

Остаток от отрицательного числа в Pascal

Wally: Здравствуйте, столкнулся с такой строкой в задании 24: -3 mod 2. Объясните, пожалуйста, почему результат этой операции -1, а не 1? P.S. А здесь что будет: -1 mod 2? Заранее спасибо.

Ответов - 8

cabanov.alexey: Любопытно, как у вас такое получилось. Тут вот какое дело. Результат операции зависит от компилятора. Алгоритмы нахождения остатка могут отличаться. Например в PascalABC -1 mod 2 = -1, в Python 3.x -1 % 2 = 1, в C++ -1 % 2 = -1, в Кумире mod(-1, 2) = 1.

Wally: const n=4; var i, a, count: integer; begin count:=0; for i:=1 to n do begin read(a); if a mod 2 > 0 then count:=count+a end; writeln(count) end. Напишите, пожалуйста, что выведет программа при вводе чисел -1 1 -3 5.

cabanov.alexey: Важно. Говорим только про Pascal. С другими языками тут может быть другой ответ. Программа выведет 6.


Wally: А на ЕГЭ такое задание может попасться? А вдруг я захочу на python'е эту 24 задачу решить? Тогда ответ будет -2?

cabanov.alexey: Я так понимаю, что эта задача "неофициальная". Нет, такого на экзамене не будет. Программы в 24 задаче таковы, что не зависят от конкретных реализаций языков программирования. PS Нет, в Python будет просто 2.

Wally: cabanov.alexey, благодарствую.

OlgaChe1: На экзамене может быть, но в условии будет четко сказано: на вход программы подается последовательность НАТУРАЛЬНЫХ чисел. И ответ одинаковый для всех языков.

cabanov.alexey: Тут весь изюм в остатке от отрицательного числа. И на экзамене не будет задачи с нахождением остатка от отрицательного числа. Сам по себе остаток от деления встречается чуть ли не в каждой задаче. Но таким образом, что результат не зависит от реализации ЯП.



полная версия страницы