Перевод арабских чисел в римские и обратно - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д