![]() |
|
Модераторы: Poseidon |
![]()
|
|
| AntonPavlov |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 28.5.2010 Репутация: нет Всего: нет |
Нужно сделать следующую вещь: пройтись по элементам массива, каждый возвести в квадрат, и перемножать их (элементы). Так делаю
Выдает нулевой результат...в чем проблема? |
|||
|
||||
| v4v4n |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 26.9.2008 Репутация: 2 Всего: 4 |
Попробуй так
|
|||
|
||||
| AntonPavlov |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 28.5.2010 Репутация: нет Всего: нет |
Все, спасибо большое, вопрос решен!Но вот только почему же не работал мой код? Все же одно и тоже, по сути-то....
|
|||
|
||||
| leniviy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 552 Регистрация: 8.2.2003 Где: Спб Репутация: нет Всего: 5 |
потому что при передаче в функцию не передаётся, что он стартует с единицы.
"array of real" это по умолчанию "array[0..?]" of real; arr[0] = 1, arr[3] = 4, а arr[4] был по случайности равен 0. |
|||
|
||||
| volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 34 Всего: 116 |
Твой код работал, но не выдавал правильный результат. А все потому, что ты не зашел в опции компилятора и не включил там Range Check. Тогда бы программа действительно не работала. Поверь, лучше получить вылет по ошибке, и, зная, что она есть, определить место ее возникновения (и компилятор тебе в этом помогает, показывает точное место ошибки), чем получить какой-то результат, возможно, при одних запусках правильный (по счастливой случайности arr[4]=1), а при других - нет.
Не отключай никогда контроль границ, переполнения и стека. Программа должна отлаживаться, когда эти опции во включенном состоянии. |
|||
|
||||
| v4v4n |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 26.9.2008 Репутация: 2 Всего: 4 |
Потому что тип "массив в программе" не совпадает с типом "массив в функции". Их нужно описывать одинаково, иначе могут возникать несовпадения. Как, например, здесь были несовпадения диапазона индексов 1..4 и 0..3. То есть можно было исправить программу так
Или, как предлагали выше, положиться на компилятор - включить опцию Range Checking. |
||||
|
|||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |