Составить программу для перевода арабских чисел в римские - VB
Формулировка задачи:
Составить программу для перевода арабских чисел в римские и для обратной операции. Например, 255=CCLV=сто+сто+пятьдесят+пять. Замечание. Подобными алгоритмами перевода чисел из одной системы в другую мы пользуемся по нескольку раз на дню, когда ведем денежные расчеты. Сумма денег- это арабское число, которому соответствует определенный набор банкнот и монет (аналоги римских цифр).
Решение задачи: «Составить программу для перевода арабских чисел в римские»
textual
Листинг программы
Function NumToRom(iNum As Integer) As String 'Функция возвращает число в виде римских цифр 'Для записи целых чисел в римской нумерации используются семь основных чисел: 'i = 1 'V = 5 'X = 10 'L = 50 'C = 100 'D = 500 'M = 1000 'При этом некоторые из цифр (I, X, C, M) могут повторяться, но не более трех раз, таким образом с их помощью можно записать любое целое число не более 3999 (MMMCMXCIX) If iNum = 0 Or iNum > 3999 Then NumToRom = "OVF": Exit Function Dim arrRom, arrWeight, iTmp As Integer, kNum As Integer, i As Integer, sStr As String arrRom = Array("M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I") arrWeight = Array(1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1) Do iTmp = Len(CStr(iNum)) - 1 kNum = iNum Mod 10 ^ iTmp iNum = iNum - kNum While iNum > 0 If arrWeight(i) <= iNum Then sStr = sStr & arrRom(i) iNum = iNum - arrWeight(i) i = i - 1 End If i = i + 1 Wend iNum = kNum Loop While iNum > 0 NumToRom = sStr End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д