{"id":1308,"date":"2014-07-03T13:25:58","date_gmt":"2014-07-03T18:25:58","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/icm00794\/?p=1308"},"modified":"2026-04-05T18:14:39","modified_gmt":"2026-04-05T23:14:39","slug":"s2eva2011ti_t4-numeros-romanos-a-decimal","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-s2eva20\/s2eva2011ti_t4-numeros-romanos-a-decimal\/","title":{"rendered":"s2Eva2011TI_T4 N\u00fameros Romanos a Decimal"},"content":{"rendered":"\n<p><em><strong>Ejercicio<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/fp-2eva20\/2eva2011ti_t4-numeros-romanos-a-decimal\/\" data-type=\"post\" data-id=\"2973\">2Eva2011TI_T4 N\u00fameros Romanos a decimal<\/a><\/p>\n\n\n\n<p>Par convertir un n\u00famero decimal a un n\u00famero romano, se usa equivalencias entre la cadena \u201c<code>romano<\/code>\u201d y la lista \u201c<code>decimal<\/code>\u201d, ambas son del mismo tama\u00f1o para tener una relaci\u00f3n uno a uno.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>romano  = <span style=\"color: #008000\">'IVXLCDM'<\/span>\ndecimal = &#091;1,5,10,50,100,500,1000]<\/code><\/pre>\n\n\n\n<p>Por ejemplo \"X\" de n\u00famero romano tiene&nbsp;\u00edndice 2 en la cadena \"<code>romano<\/code>\", con el \u00edndice se busca el equivalente en la lista \"<code>decimal<\/code>\" y se obtiene el valor de 10. As\u00ed de traduce cada letra del n\u00famero romano y se almacena en una nueva lista de resultado, denominada \"<code>equivale<\/code>\".<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Romano: CLXIII<\/td><td>&nbsp;<\/td><td>C<\/td><td>L<\/td><td>X<\/td><td>I<\/td><td>I<\/td><td>I<\/td><\/tr><tr><td>Decimal: 163<\/td><td>&nbsp;<\/td><td>+100<\/td><td>+50<\/td><td>+10<\/td><td>+1<\/td><td>+1<\/td><td>+1<\/td><\/tr><tr><td>&nbsp;<\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><\/tr><tr><td>Romano: CXLIX<\/td><td>&nbsp;<\/td><td>C<\/td><td>X<\/td><td>L<\/td><td>I<\/td><td>X<\/td><td>&nbsp;<\/td><\/tr><tr><td>Decimal: 149<\/td><td>&nbsp;<\/td><td>+100<\/td><td>-10<\/td><td>+50<\/td><td>-1<\/td><td>+10<\/td><td>&nbsp;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Antes de acumular los valores de <code>equivale<\/code>, se revisa cada valor de <code>decimal<\/code>, si el valor posterior a cada posici\u00f3n o \u00edndice resulta que es mayor, la operaci\u00f3n es de tipo resta.<\/p>\n\n\n\n<p>Finalmente, con los signos incluidos, se acumulan los valores de la lista de equivalentes para mostrar el valor en decimal.<\/p>\n\n\n\n<p><em><strong>Tarea<\/strong><\/em>: Implementar la tercera regla, que no se repita una letra m\u00e1s de tres veces.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Algoritmo en Python<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# ICM00794-Fundamentos de Computaci\u00f3n - FCNM-ESPOL\n# 2Eva_IT2011_T4 N\u00fameros Romanos a Decimal\n# propuesta: edelros@espol.edu.ec\n\n# INGRESO\ncadena = input('numero en romano: ')\n\n# PROCEDIMIENTO\nromano  = 'IVXLCDM'\ndecimal = &#x5B;1,5,10,50,100,500,1000]\ncadena  = cadena.upper()\nn = len(cadena)\n\n#cambia a equivalentes decimales\nequivale = &#x5B;]\ni = 0\nwhile (i&lt;n):\n\n    #busca en romano\n    j = 0\n    while (j&lt;7):\n        if (cadena&#x5B;i]==romano&#x5B;j]):\n            equivale.append(decimal&#x5B;j])\n        j = j + 1\n    i = i + 1\n    \n#Revisa signos y acumula\nsuma = 0\ni = 0\nwhile (i&lt;(n-1)):\n    if (equivale&#x5B;i]&lt;equivale&#x5B;i+1]):\n        equivale&#x5B;i] = -equivale&#x5B;i]\n    suma = suma + equivale&#x5B;i]\n    i = i + 1\nsuma = suma + equivale&#x5B;n-1]\n\nprint(suma)\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 2Eva2011TI_T4 N\u00fameros Romanos a decimal Par convertir un n\u00famero decimal a un n\u00famero romano, se usa equivalencias entre la cadena \u201cromano\u201d y la lista \u201cdecimal\u201d, ambas son del mismo tama\u00f1o para tener una relaci\u00f3n uno a uno. Por ejemplo \"X\" de n\u00famero romano tiene&nbsp;\u00edndice 2 en la cadena \"romano\", con el \u00edndice se busca [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-fp-ejemplos","format":"standard","meta":{"footnotes":""},"categories":[136],"tags":[58,157],"class_list":["post-1308","post","type-post","status-publish","format-standard","hentry","category-fp-s2eva20","tag-ejemplos-python","tag-fundamentos-programacion"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1308","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/comments?post=1308"}],"version-history":[{"count":4,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1308\/revisions"}],"predecessor-version":[{"id":23709,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/1308\/revisions\/23709"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=1308"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=1308"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=1308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}