Squeak.ru - шаблоны программирования

фатально: попытка деления на ноль

всякий раз, когда я пытаюсь рассчитать среднее значение и стандартное отклонение с помощью awk, я получаю сообщение об ошибке «awk: fatal: попытка деления на ноль».

моя команда

BEGIN{
recvs = 0;
routing_packets = 0;
}
{
state       =   $1;
layer       =   $3;
tipe_data   =   $6;
}
{
if (state == "r" && tipe_data == "tcp" && layer=="AGT") recvs++;
if (state == "s"  && layer == "AGT" && tipe_data =="AODV") routing_packets++;   
}

END{
printf("##################################################################################\n");

printf("\n");

printf("                       Normalized Routing Load = %.3f\n", routing_packets/recvs);

printf("\n");

printf("##################################################################################\n");
} 

Благодарность

awk
02.07.2014

  • Один tipe data, вероятно, должен быть tipe_data. Но это не имеет ничего общего с делением на ноль, я полагаю... 02.07.2014
  • Попробуйте напечатать state, layer и tipe_data, убедитесь, что они содержат то, что вы ожидаете... Прежде чем делить, напечатайте также routing_packets и recvs. 02.07.2014

Ответы:


1

Да, значения, присвоенные переменным recvs и routing_packets, равны нулю.

recvs = 0;
routing_packets = 0;

А вы пытаетесь его разделить. То есть,

routing_packets/recvs

Что приводит к,

awk: fatal: division by zero attempted" error
02.07.2014

2

Если это, если проверка никогда не будет успешной, значение recvs будет равно 0

if (state == "r" && tipe_data == "tcp" && layer=="AGT") recvs++;

Тем не менее, ваша программа продолжит работу и попадет в эту строку routing_packets/recvs. Вы должны обрабатывать сценарий, в котором recvs равен 0, в зависимости от ваших требований.

02.07.2014

3

Изменить эту строку

printf("                       Normalized Routing Load = %.3f\n", routing_packets/recvs);

to

if (recvs)printf("                       Normalized Routing Load = %.3f\n", routing_packets/recvs);
02.07.2014
Новые материалы

Угловая структура архитектуры
Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

«Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

Создайте API с помощью Python FastAPI
Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

Веселье с прокси-сервером JavaScript
Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...