Duda programacion basica (for)

Iniciado por quiensabe, 30 Noviembre 2013, 00:14 AM

0 Miembros y 3 Visitantes están viendo este tema.

quiensabe

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

<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>


<?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);   
   
   
   
   
   
?>

dainodaibouken

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.

quiensabe

Cita de: dainodaibouken en 30 Noviembre 2013, 01:15 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

fran800m

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.

quiensabe

Cita de: 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.

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