Деление на ноль

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Деление на ноль

Сообщение Ramzes » 12.10.2006 (Чт) 16:16

какой язык программирование не сгенерирует исключение (ошибку) при делениии на ноль, короче говоря, в каком языке это есть?

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 12.10.2006 (Чт) 16:25

?!

Что ты ждешь в результате деления на ноль?
Быть... или не быть. Вот. В чём вопрос?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 12.10.2006 (Чт) 16:28


Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 12.10.2006 (Чт) 16:30

Если в некоторых языках (большинстве, на самом деле) есть предопределенное значение для отсутствия значения (NULL), то почему бы не быть языкам с аналогичными предопределениями для +/- бесконечности?

Я лично не слышал, но я и не особо интересовался всякими ЯВУ, заточенными под матрасчеты - Ada, Eiffel и т.д. Возможно, в них есть...

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 12.10.2006 (Чт) 16:48

Что-то сомнительна мне польза от введения такой операции... Ну, может, кому-то оно и нужно реально. :roll:
Быть... или не быть. Вот. В чём вопрос?

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 12.10.2006 (Чт) 17:02

JavaScript дает значение Infinity. Ошибки операция не вызывает.
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

mdx
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 169
Зарегистрирован: 06.01.2006 (Пт) 18:13
Откуда: I'm from Russia!

Сообщение mdx » 12.10.2006 (Чт) 17:22

VB .NET
This posting is provided "AS IS" with no warranties, and confers no rights.

Изображение

Денис Победря
Мегобойанист
Мегобойанист
 
Сообщения: 1037
Зарегистрирован: 03.01.2005 (Пн) 21:29
Откуда: Из Москвы

Сообщение Денис Победря » 12.10.2006 (Чт) 17:53

SmallTalk
[Место cдаётся]

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 12.10.2006 (Чт) 17:57

mdx писал(а):VB .NET

Код: Выделить всё
Module Module1

    Sub Main()
        Dim I As Integer = 10
        Dim zero As Integer = 0
        Try
            Dim result As Double = I / zero
            Console.WriteLine(result)
        Catch ex As Exception
            Console.ForegroundColor = ConsoleColor.DarkRed
            Console.WriteLine(ex.Message)
        Finally
            Console.Read()
        End Try
    End Sub

End Module


:shock: а я и не знал, а можно как-тот это отключить,
шоб exception генерировался?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 12.10.2006 (Чт) 20:16

MatLab
Lasciate ogni speranza, voi ch'entrate.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 13.10.2006 (Пт) 10:20

Можно сразу с примерами кода, так интреснее будет :)

_ae_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 165
Зарегистрирован: 08.10.2006 (Вс) 14:37

Сообщение _ae_ » 13.10.2006 (Пт) 10:46

Assebmler :)

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 13.10.2006 (Пт) 10:51

Приведите лучше пример задачи, где такое деление может пригодиться - мне уже интересно стало :)

Задачи типа if (a/b)=infty then debug.print "Ошибка! Деление на ноль!" не предлагать! :lol:
Быть... или не быть. Вот. В чём вопрос?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 13.10.2006 (Пт) 10:52

В математических программах это обычная ситуация.
Lasciate ogni speranza, voi ch'entrate.

_ae_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 165
Зарегистрирован: 08.10.2006 (Вс) 14:37

Сообщение _ae_ » 13.10.2006 (Пт) 10:56

alibek
А как обяснить такую глупость, что в VB Infinity-Infinity=NaN ?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 13.10.2006 (Пт) 11:02

А в чем глупость?
Lasciate ogni speranza, voi ch'entrate.

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 13.10.2006 (Пт) 11:31

И все-таки: вот получил ты бесконечность в качестве результата деления на 0. Что ты с ним дальше будешь делать? Умножать на 0? Вычитать другую бесконечность?

Я пока не могу придумать задачу, в которой результат деления на 0 не является каким-то исключительным случаем. А если он таки исключительный, почему нельзя проверить перед операцией, что делитель не 0?
Быть... или не быть. Вот. В чём вопрос?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 13.10.2006 (Пт) 11:37

Построение графиков функций, вычисление пределов, итерационные методы. Задач, где нужна бесконечность, есть.
Lasciate ogni speranza, voi ch'entrate.

_ae_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 165
Зарегистрирован: 08.10.2006 (Вс) 14:37

Сообщение _ae_ » 13.10.2006 (Пт) 12:03

alibek
Бесконечность - математический символ. Такого числа нет.
Используется этот символ для того что бы описать некоторые приделы функций.
Например чиcлового придела функции y=1/x при x стремящемся к нулю не существует. Ну скажем, у функции дирехле при x->1 например то же нет придела. Но эти случаи принципиально отличны.
По этому дабы отличать случаи, когда функция просто "неограниченно стремится вверх"(образно говоря), от тех случаев, когда придела нету в принципе, решили обозначать приедлые некоторых функций за символ бесконечности.
В таких терминах, у функции 1/x при x->0 придел все таки есть И он равен символу ∞.
Это я к тому, что не надо думать, будто ∞ - некоторый элемент множества вещественных чисел.
Теперь о разнице бесконечностей.
Положим есть две функции, 1/x и 2/x. Приделы обоих функций равны ∞(при x->0). Если теперь посчитать придел разности этих функций, то легко убедится что lim(2/x-1/x)=lim(1/x)=∞ (при x->0).
То есть как видишь, ∞ - ∞ тут вовсе не ноль.
Так же можно привести примеры функций, каждая из который бесконечна в приделе, но придел разницы может быть равен нулю, либо какой то константе.
К чему это я? Да все к одному. Нету такого числа. И в прниципе запись ∞-∞ столь же ирроциональна с точки зрения математики как запись Вася+Маша. ∞ - символ значение которого меняется в зависимости от контекста. Запись lim(f(x))=∞ имеет некий совершенно иной смысл, нежели запись lim(f(x))=a, где a - число. И в хороших учбениках по матану даются разные определения для этих двух понятий(или хотя бы объясняется что есть окрестности точки ∞).
Запись, 5/0=∞ обозначает именно придел функции f(x)=5/x при x=0. Для кого то это окажеться новостью. Операция деления как таковая(в арифметике а не в матане) деления на нуль не поддреживает в принципе. В начальной школе приводят объяснение, очень правльное, почему так.
Теперь объясните мне, почему в MS вдруг решили, что Infinity - Infinity = NaN(кстати, что это?) а не скажем, 5 или 15?

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 13.10.2006 (Пт) 12:19

alibek, пожалуй, соглашусь про построение графиков и даже, может быть, про итерационные методы. Про пределы - нет, я же спрашивал конкретно про "бесконечность в результате деления на 0", а не просто бесконечность (которая, действительно, может пригодится, и в куда более широком классе задач).

_ae_, во-первых, "предел" (сорри, просто глаз режет). Во-вторых, NaN обозначает "не определено", и это действительно так (что твои примеры и показывают).

ЗЫ Смутно что-то помню из продвинутого школьного мат. анализа про то, что где-то все-таки используется множество действительных чисел + точка "бесконечность". Вспоминаются слова "прямая с бесконечно удаленной точкой", "закольцованная прямая", но к чему все это - совершенно не помню :D
Быть... или не быть. Вот. В чём вопрос?

_ae_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 165
Зарегистрирован: 08.10.2006 (Вс) 14:37

Сообщение _ae_ » 13.10.2006 (Пт) 12:25

uhm
Ну тогда еще ладно, я то думал что NaN это типа нуля что-то...
Смутно что-то помню из продвинутого школьного мат. анализа про то, что где-то все-таки используется множество действительных чисел + точка "бесконечность".

Применение этому найти можно, но это уже будет вовсе не та бесконечность, о которой я писал.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 13.10.2006 (Пт) 14:23

NaN -- это не ноль, это неопределенность (Not available Number).
Lasciate ogni speranza, voi ch'entrate.

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 13.10.2006 (Пт) 16:16

В одном из справочников по JScipt NaN расшифровывают, как Not a Number. Корректно ли это? И самое интересное, что сравнение NaN==NaN даст результат false. :shock:
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 13.10.2006 (Пт) 17:06

Oxygen писал(а):В одном из справочников по JScipt NaN расшифровывают, как Not a Number. Корректно ли это? И самое интересное, что сравнение NaN==NaN даст результат false. :shock:

null == null дает тот-же результат, ничего странного в этом не вижу, как может быть ничего равно ничего? или не число равно не числу?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 13.10.2006 (Пт) 17:09

_ae_ писал(а):uhm
Ну тогда еще ладно, я то думал что NaN это типа нуля что-то...
Смутно что-то помню из продвинутого школьного мат. анализа про то, что где-то все-таки используется множество действительных чисел + точка "бесконечность".

Применение этому найти можно, но это уже будет вовсе не та бесконечность, о которой я писал.

Было что-то такое в ТФКП. Использовалось для расчёта интегралов по незамкнутому (в R^2) контуру. Только это была не "+∞" и не "-∞", а именно "точка бесконечность" в придачу к плоскости.

2all: NaN = "not a number" (только что сверился с MSDN)
именно поэтому буква "a" маленькая.
alibek-у низачот ;-)
Изображение

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 13.10.2006 (Пт) 17:42

tyomitch писал(а):2all: NaN = "not a number" (только что сверился с MSDN)
именно поэтому буква "a" маленькая.

Почему-то решил свериться с Googlom и Yandexom
NaN - Not a Number
таки Алибеку низачет :(

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 13.10.2006 (Пт) 18:00

Но все-таки два из трех (not, number) угадал, так что зачет :)
Lasciate ogni speranza, voi ch'entrate.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 13.10.2006 (Пт) 19:06

tyomitch, это была "бесконечно удаленная точка", верно? :)
Точка, которая находится на бесконечно большом расстоянии от плоскости по нормали.


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 125

    TopList  
cron