Недопустимая операция с плавоющей точкой в Pascal

  • Автор темы black_voron
  • Дата начала
Статус
Закрыто для дальнейших ответов.
B

black_voron

#1
Здравствуйте професионалы. Есть следующая проблема:
Есть программа которая должна вычислять вероятности появления букв в тексте и подсчитывать энтропию (средняя величина неопределенности состояния источника сообщения; является обьективной характеристикой источника сообщений, и, если известна статистика сообщений, может быть определена априорно, т.е до получения сообщений). Так вот, программа компилируется без проблем, сообщений об ошибках не выдается, а вот при запуске - высвечивается ошибка 207 в строке с формулой:
h:=-(ln(a/count)/ln(2));
типы переменных: h:real; a:array[0..255] of word; count:word.

В чом может быть проблема?

Зарание спасибо за помощь.
 
S

Shader88

#2
Доброго времени суток! :D

Проблема заключается в следующем:

Встечается случай когда a у тебя принимает значение 0.
Я думаю не надо объяснять в чем проблема. :D
А если не понятно попробуй посчитать ln(0), например на калькуляторе :D.

Вот и все!
 
B

black_voron

#3
Спасибо, разобрался в проблеме. Оказалось что у меня первые 15 букв алфавита вообще не подсчитываются, счетчики остаются на нулях.
 
Статус
Закрыто для дальнейших ответов.