Найти в Дзене
Время кода

Как бы выглядели телефонные номера в России, если бы использовали старорусские цифры?

Современные телефонные номера в России состоят из десяти цифр, включая код оператора и сам номер абонента. Однако представьте, что мы до сих пор использовали старорусскую систему чисел, состоящую из буквенных обозначений вместо привычных арабских цифр. До введения арабских цифр в России использовались кириллические буквы с числовыми значениями. Например: Числа формировались по аналогии с римскими: комбинацией знаков с соответствующими значениями. Если бы номера телефонов оформлялись по старорусской системе, они выглядели бы совсем иначе. Например, номер +7 (921) 456-7890 мог бы выглядеть так: ѲАІ ВЕЅ-ЗѮѲ Такая запись выглядела бы экзотично, но была бы понятна людям, знакомым с допетровской системой записи чисел. Для перевода современного номера в старорусские цифры можно написать простую программу на Python с графическим интерфейсом на Tkinter. Сначала создаем словарь, в котором каждому числу от 1 до 1000 соответствует старорусская буква: old_russian_numerals = {
1: 'А', 2: 'В',
Оглавление

Современные телефонные номера в России состоят из десяти цифр, включая код оператора и сам номер абонента. Однако представьте, что мы до сих пор использовали старорусскую систему чисел, состоящую из буквенных обозначений вместо привычных арабских цифр.

Старорусская система счисления

До введения арабских цифр в России использовались кириллические буквы с числовыми значениями. Например:

  • 1 — А
  • 5 — Е
  • 10 — І
  • 100 — Р
  • 1000 — Ѡ

Числа формировались по аналогии с римскими: комбинацией знаков с соответствующими значениями.

Если бы номера телефонов оформлялись по старорусской системе, они выглядели бы совсем иначе. Например, номер +7 (921) 456-7890 мог бы выглядеть так:

ѲАІ ВЕЅ-ЗѮѲ

Такая запись выглядела бы экзотично, но была бы понятна людям, знакомым с допетровской системой записи чисел.

Этапы создания программы конвертации номеров

Для перевода современного номера в старорусские цифры можно написать простую программу на Python с графическим интерфейсом на Tkinter.

1. Определение соответствий

Сначала создаем словарь, в котором каждому числу от 1 до 1000 соответствует старорусская буква:

old_russian_numerals = {
1: 'А', 2: 'В', 3: 'Г', 4: 'Д', 5: 'Е', 6: 'Ѕ', 7: 'З', 8: 'И', 9: 'Ѳ',
10: 'І', 20: 'К', 30: 'Л', 40: 'М', 50: 'Н', 60: 'Ѯ', 70: 'О', 80: 'П', 90: 'Ч',
100: 'Р', 200: 'С', 300: 'Т', 400: 'У', 500: 'Ф', 600: 'Х', 700: 'Ѱ', 800: 'Ѿ', 900: 'Ц',
1000: 'Ѡ', 2000: '҂', 3000: '҈', 4000: '҉'
}

2. Функция преобразования числа

Программа должна разбирать число на тысячи, сотни, десятки и единицы, а затем собирать строку, используя наш словарь:

def arabic_to_old_russian(number):
if not (1 <= number <= 9999):
return "?"

result = ""
thousands = (number // 1000) * 1000
hundreds = (number % 1000 // 100) * 100
tens = (number % 100 // 10) * 10
units = number % 10

if thousands:
result += old_russian_numerals.get(thousands, '')
if hundreds:
result += old_russian_numerals.get(hundreds, '')
if tens:
result += old_russian_numerals.get(tens, '')
if units:
result += old_russian_numerals.get(units, '')

return result

3. Разделение номера телефона на части

Так как телефонный номер состоит из 10 цифр, удобно разбить его на три группы: первые четыре цифры, следующие четыре и последние две:

def convert_phone_number():
phone_number = entry.get()
if len(phone_number) != 10 or not phone_number.isdigit():
messagebox.showerror("Ошибка", "Номер должен содержать 10 цифр")
return

part1 = int(phone_number[:4])
part2 = int(phone_number[4:8])
part3 = int(phone_number[8:])

result1 = arabic_to_old_russian(part1)
result2 = arabic_to_old_russian(part2)
result3 = arabic_to_old_russian(part3)

result_label.config(text=f"{result1} {result2} {result3}")

4. Интерфейс Tkinter

Используем библиотеку Tkinter для создания графического окна:

root = tk.Tk()
root.title("Конвертер номера в старорусские цифры")
root.geometry("400x200")

tk.Label(root, text="Введите 10-значный номер телефона:").pack(pady=10)
entry = tk.Entry(root)
entry.pack()

convert_button = tk.Button(root, text="Конвертировать", command=convert_phone_number)
convert_button.pack(pady=10)

result_label = tk.Label(root, text="")
result_label.pack()

root.mainloop()

Итог

Если бы телефонные номера в России писались в старорусской системе, их внешний вид был бы крайне необычным и непривычным для современных пользователей. Однако с помощью приведенной программы можно поиграть с таким форматом и увидеть, как могли бы выглядеть телефонные номера на кириллице в 17 веке.

поддержать автора