Перевод систем счисления (включая перевод римских чисел)

14.05.10

Разработка - Математика и алгоритмы

В обработке реализованы алгоритмы (функции) перевода средствами 1С целых и дробных чисел из одной позиционной системы счисления с неотрицательными целочисленными основаниями в другую. При переводе отрицательных чисел знак сохраняется. Диапазон возможных систем счисления от 2-х до 36-ти. Также реализован перевод в римскую систему счисления из арабской (10-ричная) и обратно (галка «Вкл. римские числа» на форме обработки). Перевод из/в римскую систему счисления реализован только для целых неотрицательных чисел. «Расширенные римские цифры» также не поддерживаются.

Скачать файлы

Наименование Файл Версия Размер
NumberSystems.zip
.zip 25,05Kb
134
.zip 25,05Kb 134 Скачать

Для бесконечных периодических дробей в результате, есть возможность указания точности выводимого дробного числа. По умолчанию - "0" знаков после запятой. Цифры выше 9-ти обозначаются латинскими буквами от A до Z. Регистр вводимого символа значения не имеет. В итоговом числе символы отображаются в верхнем регистре. Дробная часть отделяется от целой как точкой, так и запятой.

Перед переводом производится проверка на корректность вводимого числа, т.е. на допустимость символов и цифр для данной системы счисления или присутствия более одной точки/запятой или более одного знака «минус» перед числом. Так, например, цифры 5 не может быть в 4-ричной системе счисления, а символа «R» в 20-ричной системе.

Возможна проверка в виде обратного перевода - кнопка «Обратно». Направление последнего перевода показывается стрелкой, расположенной слева на форме.

Объявления реализованных в обработке функций для перевода:

//-------------------------------------------------------
Функция глПереводИзДесятичнойВПроизвольнуюСистемуСчисления(Знач ЧислоДляПеревода, Знач ОснованиеРезультата=2,Знач Погрешность=0) Экспорт Далее
Функция
глПереводИзПроизвольнойСистемыСчисленияВДесятичную(Знач СтрокаДляПеревода, Знач ОснованиеЧисла=2, Знач Погрешность=0) Экспорт Далее
Функция
глПереводПроизвольныхСистемСчисления(Знач СтрокаДляПеревода, Знач ОснованиеЧисла=10, Знач ОснованиеРезультата=2, Знач Погрешность=0) Экспорт Далее
Функция
глПроверитьСтрокуПоПроизвольнойСистемеСчисления(Знач СтрокаДляПеревода, Знач Основание) Экспорт Далее

Функция
глПереводИзДесятичнойВРимскуюСистемуСчисления(Знач ЧислоДляПеревода) Экспорт Далее
Функция
глПереводИзРимскойВДесятичнуюСистемуСчисления(Знач СтрокаДляПеревода) Экспорт Далее
Функция
глПроверитьСтрокуПоРимскойСистемеСчисления(Знач СтрокаДляПеревода) Экспорт Далее
//-------------------------------------------------------

См. также

Библиотека процедур и функций для технологической платформы "1С: Предприятие 7.7"

Универсальные функции Платформа 1С v7.7 Россия Абонемент ($m)

В библиотеку собраны различные функции по работе с документами, журналами, типами данных, строками, датой и временем, таблицами значений, Excel, файлами, XML, JSON, Http-сервисами, SMTP серверами и т.п.

1 стартмани

22.12.2023    631    8    user706545_kseg1971    0    

4

1С 7.7 и новый 1С:Контрагент

Универсальные функции Платформа 1С v7.7 Конфигурации 1cv7 Россия Бесплатно (free)

Получение реквизитов контрагентов из 1С:Контрагент для старых конфигураций под 1с 7.7.

25.04.2022    1802    zhenyat    7    

6

Печать таблицы значений в 1С 7.7 при отладке

Универсальные функции Платформа 1С v7.7 Россия Бесплатно (free)

Функция выводит таблицу значений в табличный документ. (v7.7) Особенно полезно при отладке. Не нужно вносить изменения в код, вызываем функцию как вычисляемое выражение при останове. Если таблица обрабатывается в несколько этапов, можно вывести её после каждого и визуально проследить эволюцию.

30.06.2021    4371    Zoltan_Black    11    

2

Установка принтера по умолчанию для 1С 7.7

Универсальные функции Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Установка принтера по умолчанию в 1С 7.7. Обработка может быть полезна в том случае, когда нужно установить принтер по умолчанию, а доступа к рабочему столу нет (например, терминальный режим без рабочего стола или remoteApp)

1 стартмани

13.02.2019    13259    4    alsen    3    

3

Формирование строки json в 1С: 7.7

Универсальные функции Платформа 1С v7.7 Конфигурации 1cv7 1С:Комплексная 7.7 Абонемент ($m)

Предлагается набор функций 1с 7.7 для формирования строки json стандартными средствами.

1 стартмани

10.12.2018    10045    malovandrey    1    

17

Как создать индикатор в 1С:Предприятии 7.7

Универсальные функции Работа с интерфейсом Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

В статье дано описание создания индикатора на форме в среде разработки 1С:Предприятие 7.7 исключительно типовыми средствами.

1 стартмани

27.09.2016    18658    2    HAMMER_59    6    

2
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. venger 2121 14.05.10 13:45 Сейчас в теме
(0) Кому надо, выдергиваете функции из обработки в глобальник к себе и пользуетесь. Эта обработка просто демонстрация их использования...
2. venger 2121 14.05.10 14:18 Сейчас в теме
(0) Обновил файл, маленькую описку исправил;-) Тестируем, теперь вроде все должно быть нормуль;-)
3. YAN 1373 14.05.10 15:10 Сейчас в теме
А практическое применение возможно и где если не секрет?
4. venger 2121 14.05.10 15:17 Сейчас в теме
(3) Как минимум мне понадобилось для работы со стилями контролов FormEx. Это 10 в 2 и обратно. Потом можно использовать для нумерации чего-нить римскими цифрами. Это пока с ходу, что пришло в голову...
6. venger 2121 14.05.10 16:01 Сейчас в теме
(5) Тоже гуд, только для целых по-моему, без учета знака и без римских;-)

Но что понравилось это вариант определения по символу числа, у меня это отдельная функция, а там красивее, вот так:
Найти("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",Сред(Значение,Х,1))-1
7. Ёпрст 1063 14.05.10 16:07 Сейчас в теме
(6) Ну.. це же Рупор делал.... мозг!

:)
8. Поручик 4670 14.05.10 21:46 Сейчас в теме
Что бы мы делали без web.archive.org? :(
9. Armando 1399 15.05.10 15:26 Сейчас в теме
Мне перевод в другие системы счисления пригодился для "упаковки" guid ссылки в восьмерке, только там использовал, скажем так, 95ричную систему)
10. arithmometr 152 16.05.10 19:14 Сейчас в теме
С римскими числами не все гуд.
Будет полезно почитать:
http://forum.algolist.ru/algorithm-maths-mathematical/663-rimskie-chisla.html
http://ru.wikipedia.org/wiki/Римские_цифры
А также Help по функции РИМСКОЕ() в MS Excel или Roman() в OpenOffice.org Calc
11. venger 2121 17.05.10 11:30 Сейчас в теме
(10) Примерчик не корректного перевода можно
12. arithmometr 152 17.05.10 17:32 Сейчас в теме
(11) Максимальное число, которое можно записать в римской системе = 3999
Возможные варианты записи этого числа:
MMMCMXCIX
MMMLMVLIV
MMMXMIX
MMMVMIV
MMMIM
Для вариантов с 2 по 5 обработка выдает предупреждение о некоректности
15. Арчибальд 2706 18.05.10 09:25 Сейчас в теме
(12) Если возможна запись CM, то никакие LM, XM, VM, IM уже некорректны. Так же как некорректно писать LC вместо L.
16. arithmometr 152 18.05.10 20:27 Сейчас в теме
(15)
Существует «сокращённый способ» для записи больших чисел, таких как 1999. Он не рекомендуется, но иногда используется для упрощения. Отличие состоит в том, что для уменьшения цифры слева от неё может писаться любая цифра:

* 999. Тысяча (M), вычтем 1 (I), получим 999 (IM) вместо CMXCIX. Следствие: 1999 — MIM вместо MCMXCIX
* 95. Сто ©, вычтем 5 (V), получим 95 (VC) вместо XCV
* 1950: Тысяча (M), вычтем 50 (L), получим 950 (LM). Следствие: 1950 — MLM вместо MCML

http://ru.wikipedia.org/wiki/Римский_счёт
18. venger 2121 18.05.10 23:11 Сейчас в теме
17. arithmometr 152 18.05.10 20:30 Сейчас в теме
(15) Рекомендую прочитать Help по функции РИМСКОЕ() в MS Excel. И поэкспериментировать со вторым параметром.
13. O-Planet 6431 17.05.10 20:39 Сейчас в теме
Мдя, и чем не аля перенумератор ;)
19. GSoft 2235 19.05.10 09:53 Сейчас в теме
ребят а кто подскажет - может встречали подобное на 7ке но для систем шифрования паролей

есть справочник пользовательские логины - и уж очень не хочется хранить там пароли в открытом виде
20. spkvxnet 19.09.11 15:44 Сейчас в теме
Полезная обработка. Не нужно самому "выдумывать велосипед"...
21. fixin 4252 28.05.12 11:17 Сейчас в теме
готовые отлаженные функции по переводу в/из систем счисления можно взять в моей "Библиотеке продвинутых функций" также. ;-)
Оставьте свое сообщение