Comments 11
Извините, можно узнать, что за обои у вас? Там что-то интересное :)
m[n-1] в первой итерации — какое-то совершенно неизвестное и непонятное число, хранившееся в памяти, которую занял массив до выполнения программы. Хотя вообще код — сделайте меня развидеть это :) Может проще в Excel'e (или в Calc'e) посчитать?
Да все правильно, только странно что никто не ругнулся при компиляции, видимо так был настроен компилятор на машине.
Настроен — еще хорошо сказано :)
Ну вообще говоря ошибка чисто ваша, делфи дает возможность контроля и управления выводом ошибок, и бывают случаи когда делфи говорит об ошибках, которые таковыми не являются, вот тогда можно настраивать компилятор. Эх были времена, пока учился часто приходилось писать на делфи.
Спасибо, замечание понял.
Просто реализовалось все на коленке по только что выведенному на бумаге уравнению.
Просто реализовалось все на коленке по только что выведенному на бумаге уравнению.
Ну это не странность Делфи. Странно, что вы обращаетесь к не инициализированному m[0]. А дома вам видимо повезло и в m[0] память была нулями забита.
А делфи при компиляции ругается на выход индекса за пределы массива только для константных индексов.
Еще есть опция Range Checking при которой генерируется дополнительный код для проверки возможного выхода значений переменных за границы диапазона. Программа, откомпилированная с активной опцией, занимает несколько больший объем памяти и исполняется медленнее, зато дает возможность контролировать выход индексов за пределы, определенные в описании массивов. По умолчанию эта опция выключена.
А делфи при компиляции ругается на выход индекса за пределы массива только для константных индексов.
Еще есть опция Range Checking при которой генерируется дополнительный код для проверки возможного выхода значений переменных за границы диапазона. Программа, откомпилированная с активной опцией, занимает несколько больший объем памяти и исполняется медленнее, зато дает возможность контролировать выход индексов за пределы, определенные в описании массивов. По умолчанию эта опция выключена.
Да, про m[n-1] итерацию писали чуть выше — основную свою ошибку я понял. Как я уже сказал, код писался в спешке и… да, позор, но ошибки не заметил. С остальными машинами тоже повезло (не только домашней).
Смутило меня:
1) правильные значения (правда, последнее не посчитал)
2) непонятное выполнение программы (наоборот)
За опцию Range Checking — отдельное спасибо. Буду в курсе.
Смутило меня:
1) правильные значения (правда, последнее не посчитал)
2) непонятное выполнение программы (наоборот)
За опцию Range Checking — отдельное спасибо. Буду в курсе.
Sign up to leave a comment.
Странности в Delphi 7