Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Oberon
Перезагрузить страницу В чем логика функций MOD и DIV в Обероне
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
kesha kesha вне форума
Member
 
Сообщений: 19
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 20.04.2004
По умолчанию В чем логика функций MOD и DIV в Обероне - 11.05.2004, 23:59


Народ, объясните мне плз. В чем логика функций MOD и DIV в Обероне
Почему, напремер, нельзя делить на отицательное, почему остаток всегда положительный? Почему все на как в большинстве других языков? Пасибочки, если ответите.
Ответить с цитированием
  (#2 (permalink)) Старый
S.Yu.Gubanov S.Yu.Gubanov вне форума
Member
 
Сообщений: 587
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.12.2002
По умолчанию Re: MOD & DIV - 12.05.2004, 10:51

Цитата:
Originally posted by kesha
[b]
Народ, объясните мне плз. В чем логика функций MOD и DIV в Обероне
Почему, напремер, нельзя делить на отицательное, почему остаток всегда положительный? Почему все на как в большинстве других языков? Пасибочки, если ответите.
Вопрос конечно интересный. В каком именно Обероне? В том, который Component Pascal, по крайней мере дела обстоят так:

Цитата:
Originally posted by Сообщение о языке Компонентный Паскаль
[b]Операции DIV и MOD применимы только к целым операндам. Они связаны следующими формулами:

x = (x DIV y) * y + (x MOD y)
0 <= (x MOD y) < y или 0 >= (x MOD y) > y

Заметим, что: x DIV y = ENTIER(x / y)

Примеры:
Код:
 x  y    x DIV y    x MOD y
 5  3    1    2
-5  3   -2    1
 5    -3   -2   -1
-5    -3    1   -2
Заметим, что:
(-5) DIV 3 = -2
но
-5 DIV 3 = -(5 DIV 3) = -1
Ответить с цитированием
  (#3 (permalink)) Старый
kesha kesha вне форума
Member
 
Сообщений: 19
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 20.04.2004
По умолчанию 12.05.2004, 23:13

Вообще говоря, я имел в виду стандартный Оберон, такой каким его описал Н. Вирт. А там делить на отрицательный нельзя. И остаток там всегда положительный.
Код:
x    y    x DIV y   x MOD y
5    3   1            2
-5    3  -2                1
Ответить с цитированием
  (#4 (permalink)) Старый
PROnya PROnya вне форума
Member
 
Сообщений: 37
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.12.2003
По умолчанию 13.05.2004, 11:00

Элементарную теорию чисел почитайте. Остаток никогда не бывает отрицательным.
Ответить с цитированием
  (#5 (permalink)) Старый
Trurl Trurl вне форума
Member
 
Сообщений: 108
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.08.2004
По умолчанию 18.10.2004, 18:40

Цитата:
Originally posted by kesha+-->
Цитата:
Вообще говоря, я имел в виду стандартный Оберон, такой каким его описал Н. Вирт. А там делить на отрицательный нельзя. И остаток там всегда положительный.
<!--QuoteBegin- Вирт

[b]The operators DIV and MOD apply to integer operands only. They are related by the following formulas defined for any dividend x and positive divisors y:

x = (x DIV y) * y + (x MOD y)
0 <= (x MOD y) < y
Как видно, делить на отрицательные вполне можно, а остаток, действительно, всегда положительный. Собственно так и определяется целочисленное деление в математике. Но некоторые производители процессоров придумали свою собственную операцию деления, а некоторые создатели языков пошли у них на поводу.
Ответить с цитированием
Ads.
Ads
  (#6 (permalink)) Старый
Trurl Trurl вне форума
Member
 
Сообщений: 108
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.08.2004
По умолчанию 18.10.2004, 18:40

Цитата:
Originally posted by kesha+-->
Цитата:
Вообще говоря, я имел в виду стандартный Оберон, такой каким его описал Н. Вирт. А там делить на отрицательный нельзя. И остаток там всегда положительный.
<!--QuoteBegin- Вирт

[b]The operators DIV and MOD apply to integer operands only. They are related by the following formulas defined for any dividend x and positive divisors y:

x = (x DIV y) * y + (x MOD y)
0 <= (x MOD y) < y
Как видно, делить на отрицательные вполне можно, а остаток, действительно, всегда положительный. Собственно так и определяется целочисленное деление в математике. Но некоторые производители процессоров придумали свою собственную операцию деления, а некоторые создатели языков пошли у них на поводу.
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
График функций. Стася Pascal 1 10.05.2011 22:30
Логика предикатов. Исчисление предикатов Tribi Информационные технологии 0 23.11.2010 21:48
Логика предикатов как составить массив irina03 Информационные технологии 1 14.11.2010 13:49
логика капут))) aag Prolog 22 19.10.2009 19:04
логика король Prolog 3 19.05.2009 23:32
Соглашение функций и вызов функций rudeman Visual C++ 3 29.11.2007 16:42
Можно ли в Обероне и ББ в частности сделать полностью свои окна и контролы Крыс Oberon 2 02.11.2005 18:25
Можно ли использовать COM объекты в обероне Phinc Oberon 2 23.03.2005 18:50
Как работать с asm-ом в Обероне DeepFinder Oberon 9 24.02.2005 06:08
Требуется программа по алгебре логика Kris Prolog 3 26.05.2004 19:28
Объявление функций 4you Visual Basic 1 23.04.2004 00:27
Экспорт функций из dll Anonymous WinAPI 1 27.08.2003 11:46



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов