Подсчет разрядности числа.

Пользовательские блоки дополняющие возможности стандартных блоков из разделов Математика и Алгебра, а так-же различные цифровые фильтры
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
aidar_i
Полковник
Сообщения: 3126
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

Подсчет разрядности числа.

#1

Сообщение aidar_i » 03.03.2023{, 20:25}

Считает количество цифр в числе без использования в коде строк. Может пригодится.
Разрядность числа.flp
(90.73 КБ) 44 скачивания

Stranger
Рядовой
Сообщения: 48
Зарегистрирован: 08.02.2021{, 08:35}
Репутация: 11
Имя: Дмитрий

Подсчет разрядности числа.

#2

Сообщение Stranger » 03.03.2023{, 22:17}

Спасибо. Как раз необходимо для работы ключей активации

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Подсчет разрядности числа.

#3

Сообщение Dryundel » 04.03.2023{, 10:45}

Задумка не плохая.
Вот только....
aidar_i, а попробуйте ка все то же самое пихнуть в новый редактор. :)
И вылезут все ваши ошибки.

Отправлено спустя 1 минуту 47 секунд:
Ну и вообще не дело с функциями в старый редактор.
Ибо в старом редакторе с функциями не комильфо.
Каждый экземпляр создает свою функцию.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Подсчет разрядности числа.

#4

Сообщение Sancho » 04.03.2023{, 12:50}

Типа так делать нужно...
Вложения
Разрядность числа_.flp
(124.82 КБ) 16 скачиваний
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Подсчет разрядности числа.

#5

Сообщение rw6cm » 04.03.2023{, 12:52}

aidar_i,
В вашем блоке есть ошибки.
Вы подаете на вход UL, а в функции int
результат не предсказуем.
Введите например число 45454545 и ответ вместо 8 будет 5
Да и алгоритм не очень удачный, если цифры будут отрицательные, или с плавающей точкой.
Мое предпочтение в другом алгоритме.
кол_цифр.png
Количество целых цифр в числе.flp
(586.08 КБ) 16 скачиваний
Win10-64, FLProg (portable)

Аватара пользователя
Phazz
Полковник
Сообщения: 2559
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Подсчет разрядности числа.

#6

Сообщение Phazz » 04.03.2023{, 13:01}

Подскажите пожалуйста, а где это применяете?

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Подсчет разрядности числа.

#7

Сообщение rw6cm » 04.03.2023{, 13:08}

Sancho,
Сань не прокатит,
В функции внутри выход заложен как глобальная переменная, следовательно к нему не прописывается индивидуальный индефикатор
надо функцию изменять.
как то так
Разрядность числа_1.flp
(136.99 КБ) 16 скачиваний
Win10-64, FLProg (portable)

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Подсчет разрядности числа.

#8

Сообщение Dryundel » 04.03.2023{, 13:23}

Sancho писал(а):
04.03.2023{, 12:50}
Типа так делать нужно...
Типа - Пора, брат, пора!...
Пора изучать новый редактор! :smile38:

aidar_i
Полковник
Сообщения: 3126
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

Подсчет разрядности числа.

#9

Сообщение aidar_i » 04.03.2023{, 13:56}

Phazz писал(а):
04.03.2023{, 13:01}
Подскажите пожалуйста, а где это применяете?
Мне понадобился для 7 сегментного индикатора для STM8S, в штатном подсчет ведется с помощью строки.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Подсчет разрядности числа.

#10

Сообщение Dryundel » 04.03.2023{, 14:02}

rw6cm писал(а):
04.03.2023{, 12:52}
Мое предпочтение в другом алгоритме.
rw6cm, десятичный логарифм для float отработает только целую часть. Пример не совсем корректен.
.
.
Кароч. Как не крути, а String самый корректный универсальный инструмент в данном вопросе. :)

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Подсчет разрядности числа.

#11

Сообщение Sancho » 04.03.2023{, 14:09}

rw6cm писал(а):
04.03.2023{, 13:08}
Sancho,
Сань не прокатит,
В функции внутри выход заложен как глобальная переменная, следовательно к нему не прописывается индивидуальный индефикатор
надо функцию изменять.
rw6cm, Dryundel, Уважаемые коллеги.
А нажать на кнопку и посмотреть полученный код - не, не судьба?

Отправлено спустя 3 минуты 11 секунд:
Сорян, результат функции не объявил тип.

Отправлено спустя 36 секунд:
int DigitCountGeniusIgnat(int number)
{
int result = 0; ///////////////////////////// int
while (number != 0)
{
number /= 10;
result++;
}
return result;
}
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Подсчет разрядности числа.

#12

Сообщение Dryundel » 04.03.2023{, 14:15}

aidar_i, соглашусь, есть случаи, такие как с STM8S String не уместен. Но по функции для каждого экземпляра, тоже не айс. Ну и как правильно заметил rw6cm, использование в функции глобальной переменной далеко не всегда обосновано. Может не хорошо откликнуться. Тем более, что функция у тебя ничего не возвращает. Точней возвращает но в никуда. Можно было return из нее вообще выкинуть. Но еще раз - такой вариант не корректен.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Подсчет разрядности числа.

#13

Сообщение Sancho » 04.03.2023{, 14:17}

О типе подаваемого на вход речь не вёл.
Идея была для
Dryundel писал(а):
04.03.2023{, 10:47}
Каждый экземпляр создает свою функцию.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Подсчет разрядности числа.

#14

Сообщение Dryundel » 04.03.2023{, 14:18}

Sancho писал(а):
04.03.2023{, 14:13}
А нажать на кнопку и посмотреть полученный код - не, не судьба?
Да кто бы сомневался. Работать будет. Но нафига два блока вместо одного? :) Редактор PRO - сила!

aidar_i
Полковник
Сообщения: 3126
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

Подсчет разрядности числа.

#15

Сообщение aidar_i » 04.03.2023{, 14:26}

Я и не планировал использовать более одного блока. Хотел в штатный вставить ,заменить , но не получился.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Подсчет разрядности числа.

#16

Сообщение rw6cm » 04.03.2023{, 14:34}

Dryundel писал(а):
04.03.2023{, 14:02}
rw6cm, десятичный логарифм для float отработает только целую часть. Пример не совсем корректен.
Здесь имелось ввиду что можно через float считать 38 разрядные целые числа.
Win10-64, FLProg (portable)

Аватара пользователя
Nikan
Майор
Сообщения: 1194
Зарегистрирован: 29.12.2016{, 00:49}
Репутация: 100
Откуда: москва

Подсчет разрядности числа.

#17

Сообщение Nikan » 04.03.2023{, 14:40}

.
Последний раз редактировалось Nikan 24.03.2023{, 02:46}, всего редактировалось 1 раз.

aidar_i
Полковник
Сообщения: 3126
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 676
Откуда: Уфа
Имя: Айдар
Контактная информация:

Подсчет разрядности числа.

#18

Сообщение aidar_i » 04.03.2023{, 14:41}

Nikan писал(а):
04.03.2023{, 14:40}
aidar_i писал(а):
04.03.2023{, 13:56}
Phazz писал(а):
04.03.2023{, 13:01}
Подскажите пожалуйста, а где это применяете?
Мне понадобился для 7 сегментного индикатора для STM8S, в штатном подсчет ведется с помощью строки.
а нафига для 7ми сегментника вообще считать разрядность ? - разбил переменную на ед\десятки\сотни\тысячи... и познаково вывел на дисплей
Я хотел штатный блок изменить, там идёт подсчёт разрядность.

Аватара пользователя
Nikan
Майор
Сообщения: 1194
Зарегистрирован: 29.12.2016{, 00:49}
Репутация: 100
Откуда: москва

Подсчет разрядности числа.

#19

Сообщение Nikan » 04.03.2023{, 14:56}

.
Последний раз редактировалось Nikan 24.03.2023{, 02:46}, всего редактировалось 1 раз.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Подсчет разрядности числа.

#20

Сообщение rw6cm » 04.03.2023{, 15:05}

Sancho писал(а):
04.03.2023{, 14:13}
Отправлено спустя 36 секунд:
int DigitCountGeniusIgnat(int number)
Тип параметра функции тоже надо менять на UL
Айдар сделал имена параметров и переменных в функции одинаковыми с объявленными переменными.
Флпрог естественно вставил глобальные переменные напрямую в функции. Это прокатило.
Но стоит сделать блок в его примере выполняемый только раз в проекте (должно все работать т.к. блок в примере один)
и он не правильно начинает считать ))
Win10-64, FLProg (portable)

Ответить

Вернуться в «Блоки для рассчетов и цифровые фильтры»