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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2009, 21:49   #1
Zerony
Пользователь
 
Аватар для Zerony
 
Регистрация: 16.10.2008
Сообщений: 20
По умолчанию Как при постройке графика избежать диления на 0

В общем в тебе сам проблема написана. Обычные графики типа sin(x) работают, а вот 1/x пишут ошибку.

Кто знает как сделать чтоб строилось, и пропускало 0?
Zerony вне форума Ответить с цитированием
Старый 11.01.2009, 21:59   #2
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

просто из цикла прорисовки нужно убрать значение 0
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 11.01.2009, 22:42   #3
xakkkkker
Форумчанин
 
Аватар для xakkkkker
 
Регистрация: 15.12.2007
Сообщений: 226
По умолчанию

Цитата:
Сообщение от goblinyara Посмотреть сообщение
просто из цикла прорисовки нужно убрать значение 0
Да точно вот отрывок как можно убрать ноль из цикла (из книги библия дельфи)

Это очень простое решение для маленьких и простых программ. Но если твой цикл
большой и выполняет много действий, то такое решение будет как минимум неудобно и
может потеряться читабельность кода. В худшем случае, вообще может ничего не
получиться. Вот тут на помощь приходит оператор continue:


procedure TForm1.CalculateButtonClick(Sender: TObject);
var
i, r:Integer;
begin
for i:=-3 to 3 do
begin // Это начало для оператора for

if I=0 then
begin // Это начало для оператора if
ListBox1.Items.Add(‘На ноль делить нельзя’);
Continue;
end;// Этот end для оператора if

r:=round(10/i);
ListBox1.Items.Add(‘10/’+IntToStr(i)+’=’+IntToStr(r));
end; // Этот end для оператора for
end;


В этом примере я так же проверяю на каждом этапе значение переменной i. Если оно
равно нулю, то я вывожу сообщение в ListBox1 о том, что на ноль делить нельзя и
выполняю оператор continue. Как только программа встречает такой оператор, то она
сразу прерывает дальнейшее выполнение цикла и переходит на следующий шаг. Это то же
самое, что выполнить команду: «Остановиться дальнейшее выполнение программы,
увеличить значение переменной i и начать выполнение цикла со следующим значением».
xakkkkker вне форума Ответить с цитированием
Старый 12.01.2009, 16:19   #4
Zerony
Пользователь
 
Аватар для Zerony
 
Регистрация: 16.10.2008
Сообщений: 20
По умолчанию

Ха. Хорошо если график не будет существовать при значении x=0

А если график 1/(х-1) тогда 0 - вполне подхродит. Не подходит 1.

Кто знает как обратится к ошибкам?
Zerony вне форума Ответить с цитированием
Старый 12.01.2009, 16:22   #5
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

хмм... а нельзя ли исключать не именно для Х=0, а для выражения в знаменателе? например if (x-1) = 0 then... ?
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 12.01.2009, 16:33   #6
Zerony
Пользователь
 
Аватар для Zerony
 
Регистрация: 16.10.2008
Сообщений: 20
По умолчанию

Хи.

так фишка в том, что у меня выражения будут менятся.
Программа через синтаксический анализатор работать будет.
Тоисть ехе файл, но туда каждый может писать функцию, которая ему нужна.
Zerony вне форума Ответить с цитированием
Старый 12.01.2009, 16:41   #7
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

хмм... ну а через синтаксический анализатор ты знаменатель выделить не можешь?
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 12.01.2009, 17:29   #8
Zerony
Пользователь
 
Аватар для Zerony
 
Регистрация: 16.10.2008
Сообщений: 20
По умолчанию

не знаю. Лишний текст, которого очень много.

Я слышал что как то можно с ерорами связатся. Никто не в курсе как?
Zerony вне форума Ответить с цитированием
Старый 12.01.2009, 17:49   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

try
...
except
...
end;
Прогламеры, японский городовой... В хэлп научитесь заглядывать. Да и книжки умные почитать тоже полезно...

Последний раз редактировалось mihali4; 12.01.2009 в 20:59.
mihali4 вне форума Ответить с цитированием
Старый 12.01.2009, 18:02   #10
Zerony
Пользователь
 
Аватар для Zerony
 
Регистрация: 16.10.2008
Сообщений: 20
По умолчанию

mihali4

Уважаю! Спасибо!
Zerony вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как избавиться от мерцания при передвижении Timages. jocry Помощь студентам 13 22.07.2012 09:46
Как сделать так чтобы моя программа при включении отображалась в панели задач, как например часы Window ? asked86 Win Api 1 15.12.2008 08:42
Как создать квадрат??? (графика!) diznt Помощь студентам 2 17.08.2008 21:51
Программирование под Windows (ошибка), как избежать ошибки Unresolved external '_main' referenced fro DeLure Общие вопросы C/C++ 2 02.03.2008 01:35
как разбить таблицу при копировании StasSv Microsoft Office Excel 3 11.02.2008 10:23