• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Недопустимая операция с плавоющей точкой в 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 букв алфавита вообще не подсчитываются, счетчики остаются на нулях.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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