Regresar a la página www.ComoCrearTuWeb.com
Resultados 1 al 13 de 13

Tema: ¿como convertir nº romanos a arabigos?

  1. #1
    Esto empieza a ser un vicio... Habitante Avatar de gjulian
    Fecha de Ingreso
    29 ene, 09
    Ubicación
    Sevilla
    Mensajes
    558
    Poder de Reputación
    15

    ¿como convertir nº romanos a arabigos?

    Nuevamente recurro a los expertos en php por si pueden echarme una manita. Por que la teoría no me entra tan bien como la practica.
    Ahora he de convertir nº romanos a arabigos ó decimales. Para ello renombro cada caracter romano con 'str_replace' con su valor decimal. Hasta aqui Bien. El problema es que no se como sumar cada caracter romano renombrado para que me de el resultado correcto.
    Os dejo el code:
    <?php

    if (!isset ($_POST ["romano"]) && empty ($_POST ["romano"]) or isset ($_POST ["romano"])) {
    echo "<br/><p>Introduce un nº romano<br/></p>";
    }
    if (isset ($_POST ["romano"]) && !empty ($_POST ["romano"])){
    $romano = $_POST["romano"];
    $romano=str_replace("I","1",$romano);
    $romano=str_replace("V","5",$romano);
    $romano=str_replace("X","10",$romano);
    $romano=str_replace("L","50",$romano);
    $romano=str_replace("C","100",$romano);
    $romano=str_replace("D","500",$romano);
    $romano=str_replace("M","1000",$romano);
    $max=(strlen("$romano"));
    for($i=0;$i<$max;$i++);
    $parcial=substr($romano,$i,1);
    echo $romano;
    }



    ?>
    <form action="tema04_Ej3.php" method="post">
    <input type="text" name="romano" size="40" value="<? if (isset ($_POST ['romano'])){echo $_POST['romano'];}?>" />
    <input type="submit" name="submit" value="enviar" />
    </form>
    Última edición por gjulian; 22/03/2011 a las 09:20
    Lo mejor de caerse al tropezar, es volverse a levantar.

  2. #2
    Esto empieza a ser un vicio... Habitante Avatar de victor5atodogas
    Fecha de Ingreso
    19 abr, 10
    Ubicación
    Zaragoza (España)
    Mensajes
    1,658
    Poder de Reputación
    20
    Que conste que no es por hacer competencia a otras webs, pero si lo tienen ya resuelto con muchos ejemplos, entonces lo digo:

    http://www.forosdelweb.com/f18/codig...omanos-835322/

    Espero que no os moleste.

    Un saludo a todos.
    Tienda de Productos de mascotas (perros, gatos, roedores, reptiles, pajaros, peces, tarjetas regalo, cestas...) a los mejores precios El Universo del perro Sigue a El Universo del Perro en Facebook

    Si quieres montar tu tienda con Prestashop y necesitas que te ayude puedes preguntarme, tambien ofrezco buenos precios para instalacion, configuracion, etc para tu nueva tienda.

  3. #3
    Esto empieza a ser un vicio... Habitante Avatar de gjulian
    Fecha de Ingreso
    29 ene, 09
    Ubicación
    Sevilla
    Mensajes
    558
    Poder de Reputación
    15
    El caso es que lo he repasao, que se yo cuantas veces, pero no me entero.
    ¿Podias ponerle comentario a las lineas del code de Hidek1; osea este:
    1.
    <?php
    2.
    function romanNumber($number){
    3.
    $a=array('I','V','X','L','C','D','M');
    4.
    for($x='',$v=0;(int)$number;$number/=10){
    5.
    $n=++$v*2-1;
    6.
    $r=$number%10;
    7.
    $x=$r==4||$r==9?$a[$n-1].$a[$r<5?$n:$n+1].$x:
    8.
    ($r>4?$a[$n]:'').str_repeat($a[$n-1],$r<4?$r:$r-5).$x;
    9.
    }
    10.
    return$x;
    11.
    }
    12.

    13.
    function romanNumber($number){
    14.
    static$a=array('I','V','X','L','C','D','M');
    15.
    for($x='',$v=0;(int)$number;$number/=10){
    16.
    $n=++$v*2-1;
    17.
    $r=$number%10;
    18.
    $x=$r==4||$r==9?$a[$n-1].$a[$r<5?$n:$n+1].$x:
    19.
    ($r>4?$a[$n]:'').str_repeat($a[$n-1],$r<4?$r:$r-5).$x;
    20.
    }
    21.
    return$x;
    22.
    }
    23.
    ?>
    Lo mejor de caerse al tropezar, es volverse a levantar.

  4. #4
    Esto empieza a ser un vicio... Habitante Avatar de victor5atodogas
    Fecha de Ingreso
    19 abr, 10
    Ubicación
    Zaragoza (España)
    Mensajes
    1,658
    Poder de Reputación
    20
    La verdad es que parece que es el mejor, o el que mas currado esta; pero la verdad, no tengo ni idea de como lo hace, ya que hay funciones y cosas que no habia oido en la vida; y al fin y al cabo lo que se pretende en esos casos de concursos es dar el lenguaje mas alto de PHP; yo te aconsejo que lo uses sin saber lo que hace, o que uses el de: "silvanha" que se entiende bastante bien.

    Un saludo.
    Tienda de Productos de mascotas (perros, gatos, roedores, reptiles, pajaros, peces, tarjetas regalo, cestas...) a los mejores precios El Universo del perro Sigue a El Universo del Perro en Facebook

    Si quieres montar tu tienda con Prestashop y necesitas que te ayude puedes preguntarme, tambien ofrezco buenos precios para instalacion, configuracion, etc para tu nueva tienda.

  5. #5
    Esto empieza a ser un vicio... Habitante Avatar de gjulian
    Fecha de Ingreso
    29 ene, 09
    Ubicación
    Sevilla
    Mensajes
    558
    Poder de Reputación
    15
    Hombre victor, yo trato de aprehender, sino me voy a llevar toda la vida copiando y pegando sin entender nada.
    De modo que si alguien me lo pudiera comentar, se lo agradecería.
    Lo mejor de caerse al tropezar, es volverse a levantar.

  6. #6
    Esto empieza a ser un vicio... Habitante Avatar de victor5atodogas
    Fecha de Ingreso
    19 abr, 10
    Ubicación
    Zaragoza (España)
    Mensajes
    1,658
    Poder de Reputación
    20
    No te preocupes, entiendo que lo quieres entender, y lo necesites comentado; pero como te digo, el de Hidek1, usa un codigo PHP desde mi punto de vista bastante avanzado, y yo no lo se, x ello no puedo comentartelo xk no lo entiendo!jejeje

    Saludos
    Tienda de Productos de mascotas (perros, gatos, roedores, reptiles, pajaros, peces, tarjetas regalo, cestas...) a los mejores precios El Universo del perro Sigue a El Universo del Perro en Facebook

    Si quieres montar tu tienda con Prestashop y necesitas que te ayude puedes preguntarme, tambien ofrezco buenos precios para instalacion, configuracion, etc para tu nueva tienda.

  7. #7
    Esto empieza a ser un vicio... Habitante Avatar de gjulian
    Fecha de Ingreso
    29 ene, 09
    Ubicación
    Sevilla
    Mensajes
    558
    Poder de Reputación
    15
    Estoy como loco ¿Podriais echarle un vistazo a este code aver en que estoy equivocado?
    <?php
    if (!isset ($_POST ["romano"]) && empty ($_POST ["romano"]) or isset ($_POST ["romano"])) {
    echo "<br/><p>Introduce un nº romano<br/></p>";
    }
    if (isset ($_POST ["romano"]) && !empty ($_POST ["romano"])){
    $romano = $_POST["romano"];

    $caracteres=array("I"=>1,"V"=>5,"X"=>10,"L"=>50,"C "=>100,"D"=>500,"M"=>1000);
    $caracterAnte=1001;
    $mideRomano=strlen($romano);
    for($i=0; $i<$mideRomano; $i++) {
    $caracter=substr($romano,$i,1);
    $caracter=$caracteres($caracterNue);
    $numero=$numero+$caracter;
    if ($caracterAnte<$caracter) {
    echo "Este es su valor decimal " .$numero=($numero+$caracter)-(2*$caracterAnte);
    }

    else {
    echo $caracterAnte=$caracter;
    }
    }
    }
    ?>

    Gracias
    Lo mejor de caerse al tropezar, es volverse a levantar.

  8. #8
    Esto empieza a ser un vicio... Habitante Avatar de victor5atodogas
    Fecha de Ingreso
    19 abr, 10
    Ubicación
    Zaragoza (España)
    Mensajes
    1,658
    Poder de Reputación
    20
    Ahora lo miro y te digo los fallos o lo que no entiendo.
    Tienda de Productos de mascotas (perros, gatos, roedores, reptiles, pajaros, peces, tarjetas regalo, cestas...) a los mejores precios El Universo del perro Sigue a El Universo del Perro en Facebook

    Si quieres montar tu tienda con Prestashop y necesitas que te ayude puedes preguntarme, tambien ofrezco buenos precios para instalacion, configuracion, etc para tu nueva tienda.

  9. #9
    Esto empieza a ser un vicio... Habitante Avatar de victor5atodogas
    Fecha de Ingreso
    19 abr, 10
    Ubicación
    Zaragoza (España)
    Mensajes
    1,658
    Poder de Reputación
    20
    $caracteres=array("I"=>1,"V"=>5,"X"=>10,"L"=>50,"C "=>100,"D"=>500,"M"=>1000);
    En eso da un error, aunque no se porque ya que esta todo bien
    Error: "Fatal error: Function name must be a string in .....
    echo "<br/><p>Introduce un nº romano<br/></p>";
    Esto debes sustituirlo por esto para poder introducir el valor:

    ?>
    <FORM METHOD="post" ACTION="romanos.php">
    <p>Introduce un nº romano<input type="text" name="romano" size="30"></p>
    <p><input type="submit" value="Enviar datos" name="enviar">
    </FORM>
    <?php

    Y luego caracterAnte y caracterNue no se para que los usas.
    Tienda de Productos de mascotas (perros, gatos, roedores, reptiles, pajaros, peces, tarjetas regalo, cestas...) a los mejores precios El Universo del perro Sigue a El Universo del Perro en Facebook

    Si quieres montar tu tienda con Prestashop y necesitas que te ayude puedes preguntarme, tambien ofrezco buenos precios para instalacion, configuracion, etc para tu nueva tienda.

  10. #10
    Esto empieza a ser un vicio... Habitante Avatar de gjulian
    Fecha de Ingreso
    29 ene, 09
    Ubicación
    Sevilla
    Mensajes
    558
    Poder de Reputación
    15
    ?>
    <FORM METHOD="post" ACTION="romanos.php">
    <p>Introduce un nº romano<input type="text" name="romano" size="30"></p>
    <p><input type="submit" value="Enviar datos" name="enviar">
    </FORM>
    <?php

    Y luego caracterAnte y caracterNue no se para que los usas.[/QUOTE]

    El form está, disculpa por no ponerlo.
    Este es el error que me da a mi Fatal error: Function name must be a string in C:\wamp\www\PHP\tema04_Ej3.php on line 52
    La linea 52 es: $caracter=$caracteres($caracterNue); Aqui está el fallo y no lo veo.
    El $caracterAnte, lo pongo como nº maximo.
    Y el $caracterNue, se supone que debe ser el caracter siguinte de $i. Ya dudo de todo.
    Última edición por gjulian; 23/03/2011 a las 20:10
    Lo mejor de caerse al tropezar, es volverse a levantar.

  11. #11
    Esto empieza a ser un vicio... Habitante Avatar de victor5atodogas
    Fecha de Ingreso
    19 abr, 10
    Ubicación
    Zaragoza (España)
    Mensajes
    1,658
    Poder de Reputación
    20
    La cosa es que esto:

    $caracter=$caracteres($caracterNue);
    Se pondria asi:

    $caracter=$caracteres[$caracterNue];

    y una pregunta, si caracterNue es el caracter actual, ¿Porque no usas i?

    $caracter=$caracteres[$i];

    Espero que al final funcione!jejeje
    Tienda de Productos de mascotas (perros, gatos, roedores, reptiles, pajaros, peces, tarjetas regalo, cestas...) a los mejores precios El Universo del perro Sigue a El Universo del Perro en Facebook

    Si quieres montar tu tienda con Prestashop y necesitas que te ayude puedes preguntarme, tambien ofrezco buenos precios para instalacion, configuracion, etc para tu nueva tienda.

  12. #12
    Esto empieza a ser un vicio... Habitante Avatar de gjulian
    Fecha de Ingreso
    29 ene, 09
    Ubicación
    Sevilla
    Mensajes
    558
    Poder de Reputación
    15
    Bueno por fin lo he solucionao.
    De modo que lo voy a postear por si le sirve a alguien
    <?php
    if (!isset ($_POST ["romano"]) && empty ($_POST ["romano"])) {
    echo "<br/><p>Introduce un nº romano<br/></p>";
    }
    else {
    $romano = $_POST["romano"];
    $caracteres=array("I"=>1,"V"=>5,"X"=>10,"L"=>50,"C "=>100,"D"=>500,"M"=>1000);
    $caracterAnte=1001;
    $mideRomano=strlen($romano);
    for($i=0; $i<$mideRomano; $i++) {
    $caracter=substr($romano,$i,1);
    $caracter=$caracteres[$caracter];
    $numero=$numero+$caracter;
    if ($caracterAnte<$caracter) {
    $numero=$numero-2*$caracterAnte;
    }
    $caracterAnte=$caracter;
    }
    echo "El numero es: ".$numero;
    }

    ?>

    <form action="tema04_Ej3.php" method="post">
    <input type="text" name="romano" size="40" value="<? if (isset ($_POST ['romano'])){echo $_POST['romano'];}?>" />
    <input type="submit" name="submit" value="enviar" />
    </form>
    Lo mejor de caerse al tropezar, es volverse a levantar.

  13. #13
    Esto empieza a ser un vicio... Habitante Avatar de victor5atodogas
    Fecha de Ingreso
    19 abr, 10
    Ubicación
    Zaragoza (España)
    Mensajes
    1,658
    Poder de Reputación
    20
    Enhorabuena, me alegro de que x fin te funcione!!!

    Un saludo
    Tienda de Productos de mascotas (perros, gatos, roedores, reptiles, pajaros, peces, tarjetas regalo, cestas...) a los mejores precios El Universo del perro Sigue a El Universo del Perro en Facebook

    Si quieres montar tu tienda con Prestashop y necesitas que te ayude puedes preguntarme, tambien ofrezco buenos precios para instalacion, configuracion, etc para tu nueva tienda.

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •