делайте так:
Ctrl+F
/
Enter
Enter
Enter
...
делайте так:
Ctrl+F
/
Enter
Enter
Enter
...
У меня каждый блок закомментирован, а в блоке все переменные и результаты, плюс особо хитровыделанные моменты не только закомментированы но и объяснены, т.к. имею свойство через 1-2 месяца забывать что там наваял... И это при том, что комментарии кодом не считаю - это я про объем...
Представляете СКОЛЬКО он мне / найдет?!
А вы предварительно удалите комментарии из текста :)
Не знаю, на мой взгляд, 2т строк это не так уж и много. У меня, например, сейчас открыто с десяток индикаторов/советников объемом 500-1000 строк каждый.
Если вы так уж боитесь просмотреть эти 2т строк вручную, пришлите мне ваш код, постараюсь найти баг - уже лет 15 подобной работой занимаюсь)))
У меня каждый блок закомментирован, а в блоке все переменные и результаты, плюс особо хитровыделанные моменты не только закомментированы но и объяснены, т.к. имею свойство через 1-2 месяца забывать что там наваял... И это при том, что комментарии кодом не считаю - это я про объем...
Представляете СКОЛЬКО он мне / найдет?!
Чтобы не возникало подобных проблем, каждую арифметическую операцию обрамляйте пробелами:
double a = b * c - d / e + f;
тогда поиск операций деления будет произвести просто - по тегу " / ".
Кстати, в этом случае код читается легче.
Представляете СКОЛЬКО он мне / найдет?!
кончено:) вы думаете вы первый кто столкнулся с таким?
если не хотите - то
- или сидите и думайте где
- но лучше воспользоваться тогда Print, расставляя сначала на больших блоках, потом постепенно локализуя место итд
Print(1)
Print(2)
Print(3)
// тут будет /0, значит 4 и 5 в журнал не попадет. значит между 3 и 4 баг
Print(4)
Print(5)
А вы предварительно удалите комментарии из текста :)
Не знаю, на мой взгляд, 2т строк это не так уж и много. У меня, например, сейчас открыто с десяток индикаторов/советников объемом 500-1000 строк каждый.
Если вы так уж боитесь просмотреть эти 2т строк вручную, пришлите мне ваш код, постараюсь найти баг - уже лет 15 подобной работой занимаюсь)))
Про удалить комментарий - идея кстати толковая...
Сделаю копию и ее буду насиловать... там и найду! Спасибо!
А про "выслать код" - где тут смайлик с кукишем? Что-то найти не могу...
Чтобы не возникало подобных проблем, каждую арифметическую операцию обрамляйте пробелами:
тогда поиск операций деления будет произвести просто - по тегу " / ".
Кстати, в этом случае код читается легче.
Да, пожалуй на будущее это надо использовать, спасибо!
кончено:) вы думаете вы первый кто столкнулся с таким?
если не хотите - то
- или сидите и думайте где
- но лучше воспользоваться тогда Print, расставляя сначала на больших блоках, потом постепенно локализуя место итд
Print(1)
Print(2)
Print(3)
// тут будет /0, значит 4 и 5 в журнал не попадет. значит между 3 и 4 баг
Print(4)
Print(5)
да, об этом я и думал, но тоскливо очень... (((
да, об этом я и думал, но тоскливо очень... (((
хватит тут на форуме околачиваться.
займитесь уже поиском бага. :)
Я всегда делаю так: если еще на этапе написания кода есть хоть малейшее подозрение, что делитель может быть нулем, то
if(c!=0) a=b/c; else {сообщение об ошибке}
Возьмите за привычку, и Zero divide вас отпустит) Потраченное время на 10 лишних строчек << потраченного времени на поиск нуля на этапе выполнения.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день господа!
Есть проблема - советник, написанный мной, чуть менее 2т строк чистого сложноразветвленного кода в терминале работает без проблем, но в тестере выдает "Zero divide", деление на ноль.
Вопрос - есть ли у кого опыт локализации данной ошибки? Если не затруднит - поделитесь!
Есть ли какие-либо упрощенные способы в метаэдиторе или сторонними разработками найти эту ошибку?
P.S. Методы исключения отдельных блоков, глушения функций, установки Print() перед всеми делениями (О_о) мне известны, но крайне трудозатратны или мало эффективны.
P.P.S. Если нет - считайте это криком души... Все равно найду... )))