|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.01.2009, 21:49 | #1 |
Пользователь
Регистрация: 16.10.2008
Сообщений: 20
|
Как при постройке графика избежать диления на 0
В общем в тебе сам проблема написана. Обычные графики типа sin(x) работают, а вот 1/x пишут ошибку.
Кто знает как сделать чтоб строилось, и пропускало 0? |
11.01.2009, 21:59 | #2 |
Форумчанин
Регистрация: 02.01.2009
Сообщений: 340
|
просто из цикла прорисовки нужно убрать значение 0
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=) Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
|
11.01.2009, 22:42 | #3 |
Форумчанин
Регистрация: 15.12.2007
Сообщений: 226
|
Да точно вот отрывок как можно убрать ноль из цикла (из книги библия дельфи)
Это очень простое решение для маленьких и простых программ. Но если твой цикл большой и выполняет много действий, то такое решение будет как минимум неудобно и может потеряться читабельность кода. В худшем случае, вообще может ничего не получиться. Вот тут на помощь приходит оператор 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 и начать выполнение цикла со следующим значением». |
12.01.2009, 16:19 | #4 |
Пользователь
Регистрация: 16.10.2008
Сообщений: 20
|
Ха. Хорошо если график не будет существовать при значении x=0
А если график 1/(х-1) тогда 0 - вполне подхродит. Не подходит 1. Кто знает как обратится к ошибкам? |
12.01.2009, 16:22 | #5 |
Форумчанин
Регистрация: 02.01.2009
Сообщений: 340
|
хмм... а нельзя ли исключать не именно для Х=0, а для выражения в знаменателе? например if (x-1) = 0 then... ?
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=) Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
|
12.01.2009, 16:33 | #6 |
Пользователь
Регистрация: 16.10.2008
Сообщений: 20
|
Хи.
так фишка в том, что у меня выражения будут менятся. Программа через синтаксический анализатор работать будет. Тоисть ехе файл, но туда каждый может писать функцию, которая ему нужна. |
12.01.2009, 16:41 | #7 |
Форумчанин
Регистрация: 02.01.2009
Сообщений: 340
|
хмм... ну а через синтаксический анализатор ты знаменатель выделить не можешь?
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=) Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
|
12.01.2009, 17:29 | #8 |
Пользователь
Регистрация: 16.10.2008
Сообщений: 20
|
не знаю. Лишний текст, которого очень много.
Я слышал что как то можно с ерорами связатся. Никто не в курсе как? |
12.01.2009, 17:49 | #9 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
try
... except ... end; Прогламеры, японский городовой... В хэлп научитесь заглядывать. Да и книжки умные почитать тоже полезно... Последний раз редактировалось mihali4; 12.01.2009 в 20:59. |
12.01.2009, 18:02 | #10 |
Пользователь
Регистрация: 16.10.2008
Сообщений: 20
|
mihali4
Уважаю! Спасибо! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как избавиться от мерцания при передвижении 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 |