Как бы выглядели телефонные номера в России, если бы использовали старорусские цифры?
Современные телефонные номера в России состоят из десяти цифр, включая код оператора и сам номер абонента. Однако представьте, что мы до сих пор использовали старорусскую систему чисел, состоящую из буквенных обозначений вместо привычных арабских цифр.
Старорусская система счисления
До введения арабских цифр в России использовались кириллические буквы с числовыми значениями. Например:
1 — А
5 — Е
10 — І
100 — Р
1000 — Ѡ
Числа формировались по аналогии с римскими: комбинацией знаков с соответствующими значениями.
Если бы номера телефонов оформлялись по старорусской системе, они выглядели бы совсем иначе. Например, номер мог бы выглядеть так:
ѲАІ ВЕЅ-ЗѮѲ
Такая запись выглядела бы экзотично, но была бы понятна людям, знакомым с допетровской системой записи чисел.
Этапы создания программы конвертации номеров
Для перевода современного номера в старорусские цифры можно написать простую программу на 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: '҉'
}
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")
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 веке.
история
старорусскиецифры
программирование
python
технологии
ностальгия
цифры