Перевод арабских чисел в римские и обратно - VB

Узнай цену своей работы

Формулировка задачи:

Составить программу для перевода арабских чисел в римские и для обратного перевода. Например 255 = CCLV Даже начать с чего не знаю ...

Решение задачи: «Перевод арабских чисел в римские и обратно»

textual
Листинг программы
  1. Function NumToRom(iNum As Integer) As String
  2. 'ÔóГ*êöèÿ âîçâðГ*Г№Г*ГҐГІ ÷èñëî Гў âèäå ðèìñêèõ öèôð
  3. 'Äëÿ Г§Г*ГЇГЁГ±ГЁ öåëûõ Г·ГЁГ±ГҐГ« Гў ðèìñêîé Г*óìåðГ*öèè èñïîëüçóþòñÿ ñåìü îñГ*îâГ*ûõ Г·ГЁГ±ГҐГ«:
  4. 'i = 1
  5. 'V = 5
  6. 'X = 10
  7. 'L = 50
  8. 'C = 100
  9. 'D = 500
  10. 'M = 1000
  11. 'Ïðè ýòîì Г*åêîòîðûå ГЁГ§ öèôð (I, X, C, M) ìîãóò ïîâòîðÿòüñÿ, Г*Г® Г*ГҐ áîëåå òðåõ Г°Г*Г§, ГІГ*ГЄГЁГ¬ îáðГ*çîì Г± ГЁГµ ïîìîùüþ ìîæГ*Г® Г§Г*ГЇГЁГ±Г*ГІГј ëþáîå öåëîå ÷èñëî Г*ГҐ áîëåå 3999 (MMMCMXCIX)
  12. If iNum = 0 Or iNum > 3999 Then NumToRom = "OVF": Exit Function
  13. Dim arrRom, arrWeight, iTmp As Integer, kNum As Integer, i As Integer, sStr As String
  14. arrRom = Array("M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I")
  15. arrWeight = Array(1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1)
  16. Do
  17.     iTmp = Len(CStr(iNum)) - 1
  18.     kNum = iNum Mod 10 ^ iTmp
  19.     iNum = iNum - kNum
  20.     While iNum > 0
  21.         If arrWeight(i) <= iNum Then
  22.             sStr = sStr & arrRom(i)
  23.             iNum = iNum - arrWeight(i)
  24.             i = i - 1
  25.         End If
  26.         i = i + 1
  27.     Wend
  28.     iNum = kNum
  29. Loop While iNum > 0
  30. NumToRom = sStr
  31. End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы