Страница 1 из 2
Подсчет разрядности числа.
Добавлено: 03 мар 2023, 20:25
aidar_i
Считает количество цифр в числе без использования в коде строк. Может пригодится.
Разрядность числа.flp
Подсчет разрядности числа.
Добавлено: 03 мар 2023, 22:17
Stranger
Спасибо. Как раз необходимо для работы ключей активации
Подсчет разрядности числа.
Добавлено: 04 мар 2023, 10:47
Dryundel
Задумка не плохая.
Вот только....
[ref=#ff8000]aidar_i[/ref], а попробуйте ка все то же самое пихнуть в новый редактор.

И вылезут все ваши ошибки.
Отправлено спустя 1 минуту 47 секунд:
Ну и вообще не дело с функциями в старый редактор.
Ибо в старом редакторе с функциями не комильфо.
Каждый экземпляр создает свою функцию.
Подсчет разрядности числа.
Добавлено: 04 мар 2023, 12:50
Sancho
Типа так делать нужно...
Подсчет разрядности числа.
Добавлено: 04 мар 2023, 12:52
rw6cm
[ref=#ff8000]aidar_i[/ref],
В вашем блоке есть ошибки.
Вы подаете на вход UL, а в функции int
результат не предсказуем.
Введите например число 45454545 и ответ вместо 8 будет 5
Да и алгоритм не очень удачный, если цифры будут отрицательные, или с плавающей точкой.
Мое предпочтение в другом алгоритме.
кол_цифр.png
Количество целых цифр в числе.flp
Подсчет разрядности числа.
Добавлено: 04 мар 2023, 13:01
Phazz
Подскажите пожалуйста, а где это применяете?
Подсчет разрядности числа.
Добавлено: 04 мар 2023, 13:08
rw6cm
[ref=#ff8000]Sancho[/ref],
Сань не прокатит,
В функции внутри выход заложен как глобальная переменная, следовательно к нему не прописывается индивидуальный индефикатор
надо функцию изменять.
как то так
Разрядность числа_1.flp
Подсчет разрядности числа.
Добавлено: 04 мар 2023, 13:23
Dryundel
Sancho писал(а): 04 мар 2023, 12:50
Типа так делать нужно...
Типа - Пора, брат, пора!...
Пора изучать новый редактор!

Подсчет разрядности числа.
Добавлено: 04 мар 2023, 13:56
aidar_i
Phazz писал(а): 04 мар 2023, 13:01
Подскажите пожалуйста, а где это применяете?
Мне понадобился для 7 сегментного индикатора для STM8S, в штатном подсчет ведется с помощью строки.
Подсчет разрядности числа.
Добавлено: 04 мар 2023, 14:02
Dryundel
rw6cm писал(а): 04 мар 2023, 12:52
Мое предпочтение в другом алгоритме.
[ref=#ff8000]rw6cm[/ref], десятичный логарифм для float отработает только целую часть. Пример не совсем корректен.
.
.
Кароч. Как не крути, а String самый корректный универсальный инструмент в данном вопросе.

Подсчет разрядности числа.
Добавлено: 04 мар 2023, 14:13
Sancho
rw6cm писал(а): 04 мар 2023, 13:08
Sancho,
Сань не прокатит,
В функции внутри выход заложен как глобальная переменная, следовательно к нему не прописывается индивидуальный индефикатор
надо функцию изменять.
[ref=#ff8000]rw6cm[/ref], [ref=#ff8000]Dryundel[/ref], Уважаемые коллеги.
А нажать на кнопку и посмотреть полученный код - не, не судьба?
Отправлено спустя 3 минуты 11 секунд:
Сорян, результат функции не объявил тип.
Отправлено спустя 36 секунд:
int DigitCountGeniusIgnat(int number)
{
int result = 0; ///////////////////////////// int
while (number != 0)
{
number /= 10;
result++;
}
return result;
}
Подсчет разрядности числа.
Добавлено: 04 мар 2023, 14:15
Dryundel
[ref=#ff8000]aidar_i[/ref], соглашусь, есть случаи, такие как с STM8S String не уместен. Но по функции для каждого экземпляра, тоже не айс. Ну и как правильно заметил [ref=#ff8000]rw6cm[/ref], использование в функции глобальной переменной далеко не всегда обосновано. Может не хорошо откликнуться. Тем более, что функция у тебя ничего не возвращает. Точней возвращает но в никуда. Можно было return из нее вообще выкинуть. Но еще раз - такой вариант не корректен.
Подсчет разрядности числа.
Добавлено: 04 мар 2023, 14:17
Sancho
О типе подаваемого на вход речь не вёл.
Идея была для
Dryundel писал(а): 04 мар 2023, 10:47
Каждый экземпляр создает свою функцию.
Подсчет разрядности числа.
Добавлено: 04 мар 2023, 14:18
Dryundel
Sancho писал(а): 04 мар 2023, 14:13
А нажать на кнопку и посмотреть полученный код - не, не судьба?
Да кто бы сомневался. Работать будет. Но нафига два блока вместо одного?

Редактор PRO - сила!
Подсчет разрядности числа.
Добавлено: 04 мар 2023, 14:26
aidar_i
Я и не планировал использовать более одного блока. Хотел в штатный вставить ,заменить , но не получился.
Подсчет разрядности числа.
Добавлено: 04 мар 2023, 14:34
rw6cm
Dryundel писал(а): 04 мар 2023, 14:02
rw6cm, десятичный логарифм для float отработает только целую часть. Пример не совсем корректен.
Здесь имелось ввиду что можно через float считать 38 разрядные целые числа.
Подсчет разрядности числа.
Добавлено: 04 мар 2023, 14:40
Nikan
.
Подсчет разрядности числа.
Добавлено: 04 мар 2023, 14:41
aidar_i
Nikan писал(а): 04 мар 2023, 14:40
aidar_i писал(а): 04 мар 2023, 13:56
Phazz писал(а): 04 мар 2023, 13:01
Подскажите пожалуйста, а где это применяете?
Мне понадобился для 7 сегментного индикатора для STM8S, в штатном подсчет ведется с помощью строки.
а нафига для 7ми сегментника вообще считать разрядность ? - разбил переменную на ед\десятки\сотни\тысячи... и познаково вывел на дисплей
Я хотел штатный блок изменить, там идёт подсчёт разрядность.
Подсчет разрядности числа.
Добавлено: 04 мар 2023, 14:56
Nikan
.
Подсчет разрядности числа.
Добавлено: 04 мар 2023, 15:05
rw6cm
Sancho писал(а): 04 мар 2023, 14:13
Отправлено спустя 36 секунд:
int DigitCountGeniusIgnat(int number)
Тип параметра функции тоже надо менять на UL
Айдар сделал имена параметров и переменных в функции одинаковыми с объявленными переменными.
Флпрог естественно вставил глобальные переменные напрямую в функции. Это прокатило.
Но стоит сделать блок в его примере выполняемый только раз в проекте (должно все работать т.к. блок в примере один)
и он не правильно начинает считать ))