|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.04.2013, 09:15 | #11 | ||
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Цитата:
Нет такого следствия. Цитата:
Но практический опыт подсказывает, что из неверного предположения обычно следуют только неверные выводы. |
||
14.04.2013, 17:22 | #12 |
Пользователь
Регистрация: 26.08.2010
Сообщений: 51
|
А в данном случае почему ошибка Floating point division by zero
var n:integer; i:real; i:=5; n:=0; while i<100 do begin n:=n+1; Frequency[n]:=i; i:=i+0.001; end; for n:=1 to 100000 do begin ff1:=2*pi*Frequency[n]*Mei; ff2:=(power(fp,3)*Me)/Frequency[n]; // здесь if abs(ff2-ff1)<=0.001 then begin FF:=Frequency[n]; break; end; end; |
14.04.2013, 18:00 | #13 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А ты отладчиком проходил? Смотрел чем заполняется массив Frequency?
I'm learning to live...
|
14.04.2013, 18:09 | #14 |
Пользователь
Регистрация: 26.08.2010
Сообщений: 51
|
Прошелся. Нулями заполняется. Но я не врубаюсь почему он нулями заполняется.
|
14.04.2013, 18:21 | #15 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,289
|
Зачем вообще заполнять массив?
Вы не можете "на лету" вычислять текущую рассматриваемую частоту?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
14.04.2013, 18:27 | #16 |
Форумчанин
Регистрация: 11.03.2011
Сообщений: 426
|
Лукавите? если
Код:
Код:
|
14.04.2013, 18:58 | #17 |
Пользователь
Регистрация: 26.08.2010
Сообщений: 51
|
Тогда допустим так
i:=5; while i<10000 do begin ff1:=2*pi*i*Mei; ff2:=(power(fp,3)*Me)/i; i:=i+0.1; if abs(ff2-ff1)<=0.1 then begin FF:=i-0.1; break; end; end; В результате тоже 0. |
14.04.2013, 19:09 | #18 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,289
|
Дайте начальные значения mei, me, fp, а то, например, у меня ff1 и ff2 расходятся, и получается, что нет такого значения частоты, при котором они пересекаются, а так как FF объявлена глобально, то инициализирована компилятором нулем.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
14.04.2013, 19:25 | #19 |
Пользователь
Регистрация: 26.08.2010
Сообщений: 51
|
mei, me, fp считаются по формулам. ну в итоге, и у меня получается, что они не пересекаются. я прям в тупике
|
14.04.2013, 20:33 | #20 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Потому, что Вы делите на ноль.
Цитата:
Сформулируйте задачу. У меня стойкое впечатление, что Вы пытаетесь решить ее совершенно неправильно, в частности, массив частот здесь вообще не нужен. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Деление на ноль происходит без ошибок | Dim4 | Общие вопросы Delphi | 9 | 28.05.2012 23:22 |
Деление на ноль и запрет ввода букв | sunnyws | Microsoft Office Word | 2 | 10.06.2011 14:20 |
Деление на ноль | Bearw08 | Свободное общение | 26 | 18.03.2009 18:39 |
Деление на ноль! | Hacker19_90 | Паскаль, Turbo Pascal, PascalABC.NET | 7 | 01.10.2008 22:59 |