Всё-таки сишники безнадёжны
Их логика потеряла всякую связь с реальностью (=математикой).
Voennich>2. Что бы знать каков будет результат операции A / B нужно для начала ОПРЕДЕЛИТЬ оператор /
Вот он и определен! В Паскале / выполняет обычное математическое деление, при котором даже при делении целых может получаться дробное (удивлены, да?
).
Какие-нибудь первобытные люди вот тоже знали только натуральные числа, но вот операция деления
вынудила перейти к рациональным. Иначе говоря,
операция деления, в общем случае,
невыполнима на множестве целых чисел! Это закон природы (=математики), и нечего тут упираться. То, что Си все-таки ее делает (причем без уведомления программиста!) - источник ошибок. Надо бы хотя бы предупреждать, что вот здесь вот будет выполнено "ненастоящее" деление, будьте осторожны!
=KRoN=>Если мы оперируем целыми числами, то мы не знаем ничего про рациональные. Мы просто не знаем нецелых.
Вот-вот, т.е. находимся на уровне первобытных людей, чего-то не знающих и потому допускающих
ошибки =KRoN=>Так же, как мы не можем извлекать корень квадратный из отрицательных чисел не переходя к комплексным.
Вот и не извлекайте! И, соответственно, не делите целые числа, не переходя к действительным!
А то
=KRoN=>При делении целых получится целое, при делении рациональных - рациональное и т.д.
- вот это и называется женская логика
Voennich>или говоря другими словами Компилятор Паскаля приводит за вас результат к нужному Вам типу, в то время как С чесно делает только то что его попросили..
Паскаль не к "нужному мне" виду, а к наиболее естественному и правильному. К какому - строго описано в документации. Например, если вы делаете а + с, где а - целое, а с - дробное, то результат будет дробный, т.к. только он полностью описывает, скажем так, сложность результата. Так же и с делением. А если вы попытаетесь присвоить результат к "более простой" (целой) переменной, будет выдана ошибка
компиляции.
А вообще - понятное дело, что все делают то, "что их попросили", с учетом определения операций. Обе логики имеют право на существование. Дело только в том, что паскалевская логика позволяет избежать многих ошибок, не заметных с первого взгляда на Си.
Mне кажется, я всё сказал по этой теме, так что тоже, вслед за КРоНом, прекращаю ее.
P.S. Вот у меня вопрос ко всем сишникам: откуда пошла эта ужасная мода на символ подчеркивания перед словами? А то и два или три. Вот мы как-то обходимся, и ничего...