Pginas con informacin: http://www.webestilo.com/php - Tutorial basico http://www.php.net/manual/es - Manual en espaol (Checar la seccin II)
Formularios
</BODY> </HTML>
Campos de entrada
type="" Indicar el tipo de variable a introducir. text Indica que el campo a introducir ser un texto. Sus atributos: maxlenght="" Seguido de un valor que limitar el nmero mximo de carcteres a introducir en ese campo. size="" Seguido de un valor que limitar el numero de carcteres a mostrar en pantalla. value="" Indica que no hay valor inicial del campo. Password Indica que el campo a introducir ser una palabra de paso. Mostrar asteriscos en lugar de letras escritas. Sus atributos sern los mismos que para text. Checkbox El campo se elegir marcando de entre varias opciones una casilla cuadrada. value="" Entre comillas se indicar el valor de la casilla. checked La casilla aparecer marcada por defecto.
Radio El campo se elegir marcando de entre varias opciones una casilla circular. value="" Entre comillas se indicar el valor de la casilla. Image El campo contendr el valor en coordenadas del punto de la imagen que haya pinchado. Atributo obligatorio: src="" Entre comillas escribiremos el nombre del archivo de imagen.
hidden El visitante no puede modificar su valor ya que no est visible. Se manda siempre junto al atributo value= seguido de su valor entre comillas.
Botones
type="" Seguido de submit para enviar los datos del formulario y seguido de reset para borrar los datos que se han introducido. Value="" Indica el texto que incorporaran los botones. Normalmente, enviar y borrar
Un formulario
1)
<html>
2) 3) 4) 5) 6) 7) 8) 9) 10)
11)
12) 13)
<head> <title>Ejemplo1 de PHP</title> </head> <body> <H1>Ejemplo de procesado de formularios</H1> <FORM ACTION="ejemplo1.php" METHOD="GET"> Introduzca su nombre:<INPUT TYPE="text" NAME="nombre"><BR> Introduzca sus apellidos:<INPUT TYPE="text" NAME="apellidos"><BR> <INPUT TYPE="submit" VALUE="Enviar"> </FORM> </body> </html>
<html> <head> <title>Ejemplo1 de PHP</title> </head> <body> <?php if(strlen( $nombre)==0) { $nombre=$_GET['nombre']; $apellidos=$_GET['apellidos']; } echo " Nombre: $nombre <br>" ; echo " Apellidos: $apellidos <br>" ; ?> </body> </html>
Problema 1. Tomar 2 nmeros fraccionarios (numerador y denominador) y mostrar (usando tablas) su suma, resta, divisin y multiplicacin. No mostrar los resultados en decimales. Tambin debern reducir la fraccin a su mnima expresin, por ejemplo 100/50 se puede reducir a 2 2/1 1. function reduce_fraccion($num,$den) 2. { $num=(int)$num; 3. $den=(int)$den;
4. 5. 6.
7.
8. 9. 10. 11. 12. 13. 14. 15. 16. }
for($i=2; $i<=$num && $i<=$den;) { if($num %$i==0 && $den %$i==0 ) { $num=$num/$i; $den=$den/$i; } else $i++; } $arreglo[0]=$num; $arreglo[1]=$den; return $arreglo;
1. 2. 3. 4. 5.
echo "Los datos originales son: $n1/$d1 y $n2 / $d2 <br><br>"; if($d1==0 || $d2==0 || $n2==0) { echo "Se est tratando de hacer una divisin por cero<br><br>"; die("<a href=\"prob1.html\">Introducir datos otra vez</a>" ); } $sn=$d2*$n1+$d1*$n2; $sd=$d1*$d2; $arreglo=reduce_fraccion($sn,$sd); echo "La suma es: $sn / $sd = $arreglo[0]/$arreglo[1]<br><br>";
6. 7. 8.
9.
Problema 2. Tomar cualquier cantidad de nmeros nmeros y mostrar el mayor, el menor y su promedio. Sugerencia: usar un TEXTAREA para adquirir los nmeros.
1.
2. 3. 4. 5. 6.
$nums=split("\n",$numeros); for($i=0; $i<count($nums); $i++) { $nums[$i]=chop($nums[$i]); } $numeros=join(",",$nums); echo "Datos originales: ".$numeros."<br>";
$suma=$min=$max=$nums[0]; for($i=1;$i<count($nums); $i++) { if($nums[$i]>$max) $max=$nums[$i]; if($nums[$i]<$min) $min=$nums[$i]; $suma+=$nums[$i]; } $suma=$suma/count($nums);
16.
17. 18.
echo "<br>El mximo es $max <br><br>"; echo "El minimo es $min <br><br>"; echo "El promedio es $suma <br><br>";
Problema 3. Tomar un nmero y mostrarlo y junto con sus factores primos en una tabla. Por ejemplo: de 15, sus factores primos son: 3 y 5. De 12 son 2, 2 y 3.
1. 2. 3.
echo "El nmero que me diste fue $num. <br> <br> Sus factores primos son:<br><br>"; echo "<table bgcolor=dddddd align=center>"; echo "<tr><td><font color=black> Nmero </td><td><font color=black>Factor</td><tr>"; for($i=2; $i<=$num;) { if($num%$i==0) { echo "<tr><td><font color=black> $num </td><td><font color=black><b>$i</b>"; $num=$num/$i; echo "</td><tr>"; }else $i++;
4. 5. 6. 7. 8. 9. 10.
"</table>";
Problema 4. Obtener el factorial de un nmero n y mostrar el proceso de obtencin en una tabla. 1. echo "El nmero que me diste fue $num. <br> <br> El factorial es<br><br>"; 2. echo "<table bgcolor=dddddd align=center>"; 3. echo "<tr><td><font color=black> Fact(x)</td><td><font color=black>Valor</td><tr>"; 4. for($i=1,$prod=1; $i<=$num;$i++) 5. { echo "<tr><td><font color=black>f($i)</td><td><font color=black><b>f(".($i-1).") * $i";
6. 7. 8. 9.
} 10. echo "</table>"; 11. echo "<br><br>El factorial de $num es: $prod " ;
Problema 5. Mostrar
2.
echo "El nmero que me diste fue $num. <br> <br> Su tabla de multiplicar es<br><br>"; echo "<table bgcolor=dddddd align=center>"; for($i=1,$prod=$num; $i<=10;$i++, $prod+=$num) { echo "<tr><td align=right><font color=black>$i x </td>"; echo " <td align=center><font color=black>$num = </td>"; echo " <td align=center><font color=black>$prod </td>";} echo "</table>";
3. 4. 5. 6. 7.
Problema 6. Mostrar n y el resultado de la siguiente suma: 1+2+3+...+n usando ciclos. As como su proceso de obtencin en una tabla (anlogo al problema 4). Mostrar el resultado usando tambin la formula de Gauss.
echo "El nmero que me diste fue $num. <br> <br> La sumatoria es<br><br>"; 2. echo "<table bgcolor=dddddd align=center>"; 3. echo "<tr><td><font color=black> Suma(x)</td><td><font color=black>Valor</td><tr>"; 4. echo "S(0)=0<br>"; 5. for($i=1,$prod=0; $i<=$num;$i++) 6. { echo "<tr><td><font color=black>S($i)</td><td><font color=black><b>S(".($i1).") + $i"; 7. $prod+=$i; 8. echo "=$prod</b>"; 9. echo "</td><tr>"; 10. } 11. echo "</table>"; 12. echo "<br><br>La sumatoria de 1 + 2 + ... + $num = $prod " ; 13. echo "<br><br>Usando la formula de Gauss: ($num)*($num+1)/2=($num*".($num+1).")/2=".($num*($num+1)/2) ;
1.
1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
for($i=$num1; $i<=$num2;$i++) { if(primo($i)==1) { echo "<tr><td><font color=black>$i</td><td><font color=black><b>"; echo "primo</b>"; echo "</td><tr>"; } else { if(strcmp($soloPrimos,"on")!=0) { echo "<tr><td><font color=black>$i</td><td><font color=black><b>";
echo "compuesto</b>"; echo "</td><tr>"; } } } echo "</table>";
echo "El nmero que me diste fue $num. <br> <br> Su serie de Fibonacci es<br><br>"; echo "<table bgcolor=dddddd align=center>"; echo "<tr><td><font color=black> Fib (x)</td><td><font color=black>Valor</td><tr>"; $val1=0; $val2=1; if($num>=1) { echo "<tr><td><font color=black>f(0)</td>"; echo " <td><font color=black>0"; echo " } </td><tr>";
4. 5. 6. 7. 8. 9. 10. 11.
1. 2. 3. 4.
if($num>=2) { echo "<tr><td><font color=black>f(1)</td>"; echo " <td><font color=black>1"; echo " } for($i=2; $i<$num;$i++) { echo "<tr><td><font color=black>f($i)</td>"; echo " <td><font color=black>f(".($i-1).") + f(".($i-2).")=".($val1+$val2); echo " </td><tr>"; $temp=$val1+$val2; $val1=$val2; $val2=$temp; } echo "</table>"; </td><tr>";
5. 6.
7. 8. 9.
$tnum=$num=(int)$num; $base=(int)$base;
echo "El nmero que me diste fue $num. <br> <br> Su equivalente en base $base es: <br><br>"; echo "<table bgcolor=dddddd align=center>"; echo "<tr><td><font color=black> Nmero </td><td><font color=black>Residuo <br>entre $base</td><tr>"; $resultado="<sub>$base</sub>"; for( ;$num>0;) { $residuo=$num%$base; echo "<tr><td><font color=black>$num</td><td><font color=black><b>".($residuo);
Problema 10. Tomar un nmero cualquiera (de preferencia pequeo para que
converga ms rpido) la siguiente serie converge a uno siempre (criterio de paro) si se siguen las siguientes reglas: - Si el nmero n es par, reemplazarlo por n/2 (es decir hacer n=n/2) - Si el nmero es impar, reemplazarlo por 3*n+1 Mostrar el nmero inicial y todos los que le siguen hasta que la serie converja a 1.
1. 2. 3.
4. 5.
6. 7. 8.
$num=(int)$num; $lim=280; echo "El nmero que me diste fue $num. <br> <br> La serie es <br>(configurada a un mximo de $lim elementos)<br><br>"; echo "<table bgcolor=dddddd align=center>"; echo "<tr><td><font color=black> Valor </td><td><font color=black> Siguiente <br>Valor</td><td><font color=black> Barra</td><tr>"; $i=0; $temp=$num; $max=$num;
1. 2. 3. 4. 5. 6.
7.
8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
23.
24.
while($num!=1 && $i<$lim) { if($num%2==0) $num=$num/2; else $num=$num*3+1; $i++; if($num>$max) $max=$num; } $num=$temp; $i=0; while($num!=1 && $i<$lim) { echo "<tr><td><font color=black>$num</td>"; if($num%2==0) $num=$num/2; else $num=$num*3+1; echo "<td><font color=black> $num"; echo "</td>"; echo "<td><img src=\"./img/barra.jpg\" height=10 width=".((int)($num*400/$max)).">"; echo "</td><tr>"; $i++; } echo "</table>";
Tablero ajedrez
1. 2. 3. 4. 5. 6.
7. 8.
9. 10.
$n=5; for($i=1; $i<=$n; $i++) { echo "\n <tr>"; for($j=1; $j<=$n; $j++) { if(($i+$j)%2==0 && $i>=$j) echo "\n <td bgcolor=white align=center><font color=black>$i+$j=".($j+$i)."</td>"; else echo "\n <td bgcolor=black align=center><font color=white>$i+$j=".($j+$i)."</td>"; } }
serie
function fact($num) 2. {if($num>1) 3. return $num*fact($num-1); 4. else 5. return 1; 6. } 7. function expo($num, $nter) 8. { if($nter>1) 9. return potencia($num,$nter-1)/fact($nter1)+expo($num,$nter-1); 10. else 11. return 1; 12. } 13. $n=10; 14. echo fact($n)."<br>"; 15. for($i=1; $i<=$n; $i++) 16. echo "<b>".expo(1,$i)." - $i</b> <br>";
1.
1-1 2-2 2.5 - 3 2.6666666666667 - 4 2.7083333333333 - 5 2.7166666666667 - 6 2.7180555555556 - 7 2.718253968254 - 8 2.7182787698413 - 9 2.7182815255732 - 10