Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2009, 12:45   #1
DAV88
 
Регистрация: 25.04.2009
Сообщений: 9
По умолчанию Построение графика разрывнойй функции

Помогите пожалуста идеей. В общем, написал программу в Delphi,которая строит графики функций,но когда попадается точка,в которой вылезает деление на ноль,то прога естественно вылетает и график не строит. Дак вот можно ли как-нибудь отследить когда программа выдает такую ошибку и при появлении такой ошибки,допустим просто пропустить эту точку?Подскажите пожалуста
DAV88 вне форума Ответить с цитированием
Старый 07.05.2009, 13:12   #2
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

Для отлова исключений есть блок try ... except

Но это редко так получается. Когда строишь график, допустим, тангенса, деления на ноль не происходит, вместо этого можно лишь наблюдать большой скачок, когда график уходит в одну сторону и вдруг продолжается с другой стороны.
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/
OCTAGRAM вне форума Ответить с цитированием
Старый 07.05.2009, 13:48   #3
DAV88
 
Регистрация: 25.04.2009
Сообщений: 9
По умолчанию

А как же тогда быть то?как построить нормальный график то?
DAV88 вне форума Ответить с цитированием
Старый 07.05.2009, 14:14   #4
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

Если было исключение типа переполнение или деление на ноль (EMathError у них общий класс, кажется), то не рисовать отрезок.

Если предыдущая точка была очень низко, а следующая очень высоко, то не рисовать отрезок.

Если предыдущая точка была очень высоко, а следующая очень низко, то не рисовать отрезок.
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/
OCTAGRAM вне форума Ответить с цитированием
Старый 07.05.2009, 14:25   #5
DAV88
 
Регистрация: 25.04.2009
Сообщений: 9
По умолчанию

Спасибо большущее,просто выручаешь меня.Слушай,неохота тебя напрягать,но не подскажешь вкратце как это описать,а то у меня сроки ваще горят некогда в этом разбираться
DAV88 вне форума Ответить с цитированием
Старый 08.05.2009, 09:40   #6
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

У меня была программа на Паскале INFFF2.PAS, там нужный участок выглядит так:

Код:
    y := Round(239.5 - vy * k);
    if x = 0 then
      MoveTo(x, y)
    else
    if (y > 479) and (GetY < 0) then
      MoveTo(x, y)
    else
    if (y < 0) and (GetY > 479) then
      MoveTo(x, y)
    else
      LineTo(x, y);
Но в этой программе деления на ноль не возникало. Большие разрывы были, а деления на ноль не было. Если учитывать исключения, то понадобится завести ещё одну логическую переменную WasException, которая будет True, если на предыдущем шаге было исключение. Если на текущем шаге или на предыдущем было исключение, то не рисовать отрезок (т. к. один из его концов неизвестен)
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/
OCTAGRAM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Построение графика функции на QBasic artemon999 Помощь студентам 2 30.03.2009 15:16
Построение графика функции Java Folly Общие вопросы по Java, Java SE, Kotlin 3 19.03.2009 11:16
Построение графика функции (Паскаль) Scream of the soul Помощь студентам 4 16.03.2009 02:57
Построение графика функции Жека:) Общие вопросы C/C++ 5 11.11.2008 19:05
Графика. Построение функции AngelOfDeath Общие вопросы Delphi 2 14.10.2008 13:44