Расскажите про особые (см. далее) ошибки в коде, которые вы допускали. Ошибка должна отвечать двум качествам: она проста*, но трудноуловима**.
* - т.е. её возникновение не результат неоднозначного портирования, не следствие артефактов уровня аппаратного интерфейса, не результат ошибок в упрощении громоздких условий или вычислении констант, не итог запутывания в простыне кода, который в принципе невозможно удержать в голове. Ошибка вовсе не кажется таковой, т.к. в некотором смысле действительно описывает реализацию алгоритма, и, если тот не был, заранее продуман, то прочтённый ошибочный код увлекает, затуманив восприятие своей простотой.
** - в силу вышесказанного, ошибка раз за разом ускользает при чтении, отводя подозрения от своего простого окружения на более сложные конструкции.
Давно хотел создать этот тред, и поместить в нём старенький участок кода:
Dim DataTable$(0,0)
;...
Function GetMinInCol#(ID%)
Local MinV#=DataTable(1,ID)
Local i%
For i=2 To DataTableRows
If DataTable(i,ID)<MinV
MinV=DataTable(i,ID)
EndIf
Next
Return MinV
End Function
Код в своё время менялся там сям, пока не стал вот таким. Ошибок синтаксических нет - работает странно (не так, как ожидается, исходя из имени функции).
//старожилы помнят, что я как-то уже упоминал об этой ловушке
прим: команда dim от n выделит память под (n+1) элемент массива, и позволяет индексировать их как с нуля, так и с единицы (как будет принято в соглашении). Так что - ошибка не в индексах.