Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2014, 20:15   #1
irradiator
Пользователь
 
Регистрация: 03.12.2013
Сообщений: 14
По умолчанию Умножение элементов массива

Господа ! Подскажите, пожалуйста.
Имеется массив volt: array [0..1] of Double;
имеется переменная M: Double;
при перемножении элементов массива
M:=volt[0]*volt[1]
Получается нереальное число.
Как умножить элементы массива ? (M тоже должна быть массивом ?).
irradiator вне форума Ответить с цитированием
Старый 25.08.2014, 20:20   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А чего в том массиве и что за нереальность получается?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.08.2014, 20:28   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
что за нереальность получается?
Наверное элементы массива локальны и неинициализированы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.08.2014, 20:57   #4
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Цитата:
Сообщение от irradiator Посмотреть сообщение
.. Получается нереальное число..
Я знаю в Delphi только одно нереальное число - NaN
Все остальные - реальные. Из тех, что получаются перемножением двух реальных.

А если слишком большое получится, то будет ошибка, аварийный выход - "Floating point overflow"
type_Oleg вне форума Ответить с цитированием
Старый 25.08.2014, 22:00   #5
irradiator
Пользователь
 
Регистрация: 03.12.2013
Сообщений: 14
По умолчанию

умножается 0,0044 на 0,0039 и в M получается аж 1,69e-313. (ну просто нереальное число).
irradiator вне форума Ответить с цитированием
Старый 25.08.2014, 22:18   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
умножается 0,0044 на 0,0039 и в M получается аж 1,69e-313. (ну просто нереальное число).
Это практически невероятно.
Ищите ошибку у себя в коде.
Реально, Вы, скорее всего, просто забыли какую-то переменную иницилизировать.
Код:
var
 volt: array [0..1] of Double;
 M: Double;
begin
  volt[0] := 0.0044;
  volt[1] := 0.0039;
  M:=volt[0]*volt[1];
  ShowMessage(' M = ' + FloatToStr(M))
end;
delphi1.jpg


Кстати, приведите ваш код полностью.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.09.2014, 18:10   #7
irradiator
Пользователь
 
Регистрация: 03.12.2013
Сообщений: 14
По умолчанию

type_Oleg, Serge_Bliznykov спасибо большое за советы. Буду внимательнее. Код очень большой, поэтому не привожу. Но, теперь ошибку исправил. Спасибо.
irradiator вне форума Ответить с цитированием
Старый 01.09.2014, 19:46   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

irradiator, не за что, всегда рад помочь!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод элементов массива.Изменение элементов массива. Vesnushka18 Помощь студентам 6 09.06.2011 13:05
ПАСКАЛЬ! умножение k-ой строки исходной матрицы на сумму элементов главной диагонали wrmarw Помощь студентам 5 08.05.2010 12:05
Умножение массива на число (Java) Folly Помощь студентам 4 14.03.2009 11:35
Как выполнить умножение массива? valerij Microsoft Office Excel 10 23.09.2008 15:27