Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: quiensabe en 30 Noviembre 2013, 00:14 am



Título: Duda programacion basica (for)
Publicado por: quiensabe en 30 Noviembre 2013, 00:14 am
Tengo que mostrar un cuadrado de x numeros que introduciermos en un formulario y del caracter que tambien introduzcamos en el formulario. La duda viene con los for del segundo codigo, que es el segundo fichero, me hace algo tal que asi

xxxxx
xxxxxxxxxx
xxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx

y yo querria

xxxxx
xxxxx
xxxxx
xxxxx
xxxxx


No se si sobra algun for, o algun incremento en los for :S

Código:
<html>
<head>
<meta charset="utf-8">
<title>Activitat 5 Repas</title>
</head>


<body>



 <form name="exercic3" method="post" action="repas5.2.php">

Files: <input type="text" name="files">
 <br>
Caracter: <input type="text" name="caracter">
  <input type="submit"><br>
 


</form>




</body>
</html>

Código:
<?php




function crear_piramide ($files, $caracter) {
    $cadena = null;



   for ($x=1; $x<=$files; $x++) {
        for ($a = 1 ; $a <= $files; $a++) {
            $cadena .= $caracter;
        }
        echo $cadena."<br />";
    }
}

crear_piramide ($files, $caracter);   
   
   
   
   
   
?>


Título: Re: Duda programacion basica (for)
Publicado por: dainodaibouken en 30 Noviembre 2013, 01:15 am
Citar
$cadena .= $caracter;

con estos estas concatenando. ese es tu error, si entra en el ciclo empieza a concatenar el string y en base a eso es por que te da ese resultado.


Título: Re: Duda programacion basica (for)
Publicado por: quiensabe en 30 Noviembre 2013, 10:18 am
con estos estas concatenando. ese es tu error, si entra en el ciclo empieza a concatenar el string y en base a eso es por que te da ese resultado.

eliminando eso no me imprime nada y si en el echo pongo caracter solo me imprime una columna, tal que asi, y tambien tendria que tener 5 filas de largo(o las que ponga)

x
x
x
x
x


Título: Re: Duda programacion basica (for)
Publicado por: fran800m en 30 Noviembre 2013, 19:33 pm
for ($x=1; $x<=$files; $x++)
{

        // ESTO ES LO FUNDAMENTAL QUE TE FALTA
       $cadena = '';



        for ($a = 1   ; $a <= $files; $a++)
       {
            $cadena .= $caracter;
        }
        echo $cadena."<br />";
}


Hay otra manera de hacerlo, también con 2 bucles, pero sin anidarlos, y por supuesto mucho más óptima.

Te recomiendo que le des una pensada.


Título: Re: Duda programacion basica (for)
Publicado por: quiensabe en 30 Noviembre 2013, 22:38 pm
for ($x=1; $x<=$files; $x++)
{

        // ESTO ES LO FUNDAMENTAL QUE TE FALTA
       $cadena = '';



        for ($a = 1   ; $a <= $files; $a++)
       {
            $cadena .= $caracter;
        }
        echo $cadena."<br />";
}


Hay otra manera de hacerlo, también con 2 bucles, pero sin anidarlos, y por supuesto mucho más óptima.

Te recomiendo que le des una pensada.

si, lo habia pensado, pero no sabia como hacerlo exactamente y reaproveche este egercicio de cuando ice programacion en C, gracias