![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 20.04.2009
Сообщений: 5
|
![]()
Всем доброго времени суток. Мне нужно произвести численное интегрирование. Прогу я написал и, что странно, она работает. Но работает с глюком. Глюк заключается в следующем: после ввода данных и нажатия заветной кнопки "Расчет", прога выдаёт верный результат, но при повторном нажатии (исходные данные неизменны) результат совершенно другой, при третьем - третий, и так N раз (обычно N не превышает 3).
Вот скриншоты: 1) Введены значения, выдан верный результат: ![]() 2) Кнопка "Расчет" нажата повторно, выдан неверный результат: ![]() Внимание вопрос: почему так происходит и как с этим бороться? Сама программа и программный код во вложенном архиве. P.S. Я - зелёный новичок-самоучка (за delphi взялся 2 недели назад), поэтому сильно не бейте. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 06.06.2007
Сообщений: 282
|
![]()
Полагаю, после первого расчета некоторые (или все) переменные не обнуляются.
Не важно, как часто вы падаете. Важно, как часто вы поднимаетесь. Винс Ломбарди.
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 20.04.2009
Сообщений: 5
|
![]()
Обнуляются перед каждым расчетом. Замечена странная закономерность: чем меньше полей вывода информации тем меньше вероятность ошибки, при многократном использовании функции "znachenie(f,x)" вероятность неправильного ответа существенно возрастает. Скорее всего глючит именно функция "znachenie(f,x)", но найти конкретную ошибку я не могу...
Наверное я забыл упомянуть о том, что результаты изменяются периодически с периодом N. Последний раз редактировалось Bazookин; 20.04.2009 в 20:12. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 06.06.2007
Сообщений: 282
|
![]()
Bazookин, вы пожалуйста не обижайтесь, но в вашем коде черт ногу сломит.
1. Все переменные должны иметь осмысленные названия, иначе крайне сложно улавливать закономерности между h, g, t, e, f, s, d... 2. Рекомендую придерживаться стандарта стилевого оформления кода (Яndex + Стандарт стилевого оформления исходного кода DELPHI). Это упростит кодинг и читабельность ваших исходников. Тогда ошибки искать куда проще будет, в том числе и вам самим.
Не важно, как часто вы падаете. Важно, как часто вы поднимаетесь. Винс Ломбарди.
|
![]() |
![]() |
![]() |
#5 | |
Регистрация: 20.04.2009
Сообщений: 5
|
![]() Цитата:
Код имеется во вложенном файле. Надеюсь так будет понятнее и поможет решить вышеописанную проблему. |
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 20.04.2009
Сообщений: 5
|
![]()
Проблема решена. Решение элементарно: надо было заменить строку f:=' '; на ту же строку забитую пробелами. Тему можно считать закрытой.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Глюки с указателями | _Инженер_ | Общие вопросы Delphi | 1 | 17.09.2008 20:20 |
Глюки Делфи | Killbrum | Помощь студентам | 9 | 20.05.2008 20:31 |
Глюки с программами для БД | ГОСЕАН | БД в Delphi | 2 | 06.07.2007 17:27 |
Глюки с массивами и бинарным поиском | nycmoma | Помощь студентам | 6 | 18.02.2007 10:44 |