| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [Pascal]массивами |
| Автор: AntonPavlov 23.4.2011, 02:17 | ||
Нужно сделать следующую вещь: пройтись по элементам массива, каждый возвести в квадрат, и перемножать их (элементы). Так делаю
Выдает нулевой результат...в чем проблема? |
| Автор: v4v4n 23.4.2011, 10:12 | ||
Попробуй так
|
| Автор: AntonPavlov 23.4.2011, 10:48 |
| Все, спасибо большое, вопрос решен!Но вот только почему же не работал мой код? Все же одно и тоже, по сути-то.... |
| Автор: leniviy 23.4.2011, 11:28 |
| потому что при передаче в функцию не передаётся, что он стартует с единицы. "array of real" это по умолчанию "array[0..?]" of real; arr[0] = 1, arr[3] = 4, а arr[4] был по случайности равен 0. |
| Автор: volvo877 23.4.2011, 11:37 |
| Твой код работал, но не выдавал правильный результат. А все потому, что ты не зашел в опции компилятора и не включил там Range Check. Тогда бы программа действительно не работала. Поверь, лучше получить вылет по ошибке, и, зная, что она есть, определить место ее возникновения (и компилятор тебе в этом помогает, показывает точное место ошибки), чем получить какой-то результат, возможно, при одних запусках правильный (по счастливой случайности arr[4]=1), а при других - нет. Не отключай никогда контроль границ, переполнения и стека. Программа должна отлаживаться, когда эти опции во включенном состоянии. |