• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

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

black_voron

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

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

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

Shader88

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

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

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

Вот и все!
 
B

black_voron

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!