Hola. Estoy teniendo problemas con éste ejercicio:
http://www.mclibre.org/consultar/php/examenes/13-14/letra_t.html
No consigo dar con ello para que me salga todo bien, unas veces la parte de arriba sale bien, pero el 'palito' no, tengo que usar el carácter '-' por que si pongo el espacio en blanco, los espacios me los imprime todos a la derecha y se deforma...en fin, aquí el código:
-El formulario
<html>
<head>
<title>Letra T(formulario)</title>
</head>
<body>
<h1><center>Letra T(formulario)</center></h1>
<form action="resultado.php" method="POST">
<fieldset>
<legend>Formulario</legend>
<p>Indique el grosor del trazo de la letra(mayor que cero y menor que cinco) y su altura(menor que 20) y se mostrara una letra
T hecha con estrellas de acuerdo con los valores indicados. Ademas ambos valores pueden ser pares o impares simultaneamente.</p>
<b>Grosor:</b><input type="text" name="grosor" size=5>
<b>Alto:</b><input type="text" name="alto" size=5><br>
<input type="submit" value="Dibujar">
<input type="reset" value="Borrar">
</fieldset>
</form>
</body>
</html>
El resultado:
<html>
<head>
<title>Letra T (Resultado)</title>
</head>
<body>
<?php
$grosor=$_REQUEST['grosor'];
$alto=$_REQUEST['alto'];
if($grosor<0||$grosor>5||$grosor==""){
echo "<p><font color='red'>No ha escrito el grosor</font></p>";
}
if($alto<0||$alto>20||$alto==""){
echo "<p><font color='red'>No ha escrito la altura como numero entero positivo</font></p>";
return false;
}
if(!($grosor%2==0 && $alto%2==0 || $grosor%2!=0 && $alto%2!=0)){
echo "<p><font color='red'>Grososr y altura deben ser ambos pares o ambos impares</font></p>";
return false;
}
for($r=0 ;$r<$grosor; $r++){
for($t=0; $t<$alto; $t++){
echo "* ";
}
echo "<br>";
}
$resta=$grosor-1;
$menos=$grosor+3;
for($d=0; $d<$menos;$d++){
for($i=0; $i<$resta; $i++){
echo "- ";
}
for($l=0; $l<$grosor; $l++){
echo "* ";
}
echo "<br>";
}
?>
</body>
</html>
Creo que algo asi es lo que buscas. Fijate que para que te escriba los espacios debes usar su codigo html " " y no el caracter " ".
Saludos
Alfonso
<html>
<head>
<title>Letra T (Resultado)</title>
</head>
<body>
<?php
$grosor=5;
$alto=13;
if($grosor<0||$grosor>5||$grosor==""){
echo "<p><font color='red'>No ha escrito el grosor</font></p>";
}
if($alto<0||$alto>20||$alto==""){
echo "<p><font color='red'>No ha escrito la altura como numero entero positivo</font></p>";
return false;
}
if(!($grosor%2==0 && $alto%2==0 || $grosor%2!=0 && $alto%2!=0)){
echo "<p><font color='red'>Grososr y altura deben ser ambos pares o ambos impares</font></p>";
return false;
}
for ($h=0 ; $h<$grosor; $h++){
for($i=0;$i<$alto;$i++){
echo "*";
}
echo "<br>";
}
for ($h=0; $h<$alto-$grosor; $h++){
for ($i=0;$i<(($alto -$grosor)/2);$i++){
echo " ";
}
for ($i=0;$i<$grosor;$i++){
echo "*";
}
echo "<br>";
}
?>
</body>
</html>
Si, ahora funciona ;D, lo del ' ' era lo importante, gracias, sobre todo por que hay otros ejercicios parecidos con los que tenía la misma problemática.