Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: dlm91 en 10 Noviembre 2012, 20:55 pm



Título: AYUDA EJERCICIOS FUNCIONES PHP
Publicado por: dlm91 en 10 Noviembre 2012, 20:55 pm
Código
  1.  
Función lógica que reciba un carácter y determine si éste es un dígito entre ‘0’ a ‘9’.

Tengo que hacer la función he echo un código tengo que ponerlo bien ¿como lo arreglo?
Código
  1. </html>
  2.  
  3. <html><body>
  4. <?php
  5. echo "<form action='funciones.php' method='post'>
  6. <h1>Numero entre 0 y 9</h1>
  7. <hr>
  8. escriba numero: <input type='text' name='num' value=' '><input type='submit' name='number' value='Ver'></form>";
  9. function es_numerico($number) {
  10. if(is_int($number) && ($number >= 0 || $number <= 9)){
  11. echo'El valor '.$number.' es un número que está entre 0 y 9).';
  12. else
  13. echo'El valor '.$number.' no cumple con los requisitos';
  14. }
  15.  
  16. ?>
  17. </body>
  18. </html>
  19.  

los demás ejercicios son:

2-Función lógica que reciba un carácter y retorne si éste es una vocal.
3-Función que reciba como parámetro una cadena y un carácter. La función devolverá la posición de la primera ocurrencia del carácter en la cadena y -1 en caso de error.
4-Función que reciba como parámetro una cadena y un carácter. La función devolverá el número de ocurrencias de dicho carácter en la cadena y -1 en caso de error.
5-Función que reciba un vector de números y devuelva (en variables pasadas por referencia) su media, mediana, moda y varianza.


Título: Re: AYUDA EJERCICIOS FUNCIONES PHP
Publicado por: ‭lipman en 11 Noviembre 2012, 01:43 am
Aquí no se resuelven ejercicios, solo dudas.

Con respecto a tu código, ponlo usando GeSHi para que se vea mejor en el foro.
No lo he probado, pero cuando uses ifs con varios parámetros a comprobar, usar paréntesis.

Prueba:

Código
  1. if(is_int($number) && ($number >= 0 || $number <= 9))


Título: Re: AYUDA EJERCICIOS FUNCIONES PHP
Publicado por: dlm91 en 11 Noviembre 2012, 02:04 am
ok gracias pero...¿ como se hace eso con una funcion?


Título: Re: AYUDA EJERCICIOS FUNCIONES PHP
Publicado por: ‭lipman en 11 Noviembre 2012, 11:00 am
Te recomendaria que aprendieses algo más sobre HTML y PHP, porque si no, no vas a entender lo poco que hagas.

En tu caso, en el action del form, indicas que los datos se van a enviar por el método POST a funciones.php

En esa página es donde recoges el valor del número que has enviado mediante $_POST['num']

Finalmente, desde ahí lanzas la función que has creado pasándole como parámetro ese número.

Si lo que quieres es hacerlo todo en la misma página, aunque podrías hacerlo también con PHP creo que lo normal sería hacerlo con javascript.

Un saludo.


Título: Re: AYUDA EJERCICIOS FUNCIONES PHP
Publicado por: dlm91 en 11 Noviembre 2012, 15:51 pm
Perdona lo del formulario no es necesario solo con recibir un parámetro en el mismo documento ya vale
las dos primeras funciones las hice así:

Código
  1.    //Función lógica que reciba un carácter y determine si éste es un dígito entre ‘0’ a ‘9’.
  2.    function digito ($num) {
  3.        if ($num < 0 || $num > 9) {
  4.            echo "El número introducido no es un número entre 0 y 9";
  5.        }
  6.        else
  7.            echo "El número introducido es un número entre 0 y 9";
  8.    }
  9.  
  10.    //Función lógica que reciba un carácter y retorne si éste es una vocal.
  11.    function vocal ($voc) {
  12.        if (strlen($voc) == 1) {
  13.            if ($voc == a || $voc == e || $voc == i || $voc == o || $voc == u) {
  14.                echo "El carácter introducido es una vocal";
  15.            }
  16.            else
  17.                echo "El carácter introducido no es una vocal";
  18.        }
  19.        else
  20.            echo "No se ha introducido solo un carácter";
  21.    }

Lo ves Bien¿? y muchas gracias por todo


Título: Re: AYUDA EJERCICIOS FUNCIONES PHP
Publicado por: ‭lipman en 11 Noviembre 2012, 17:09 pm
En la primera función, mete también la otra condición, por si acaso:

Código
  1. if(is_int($number) && ($number >= 0 || $number <= 9))

Así te aseguras que es integer.

Con respecto a la segunda función, te animo a que la reescribas con una función llamada in_array. De esta manera, metes las vocales en un array, y lo recorres para saber si lo que has recogido es correcto o no.

Qué ventaja tiene esto? escalabilidad: si en un futuro quisieras añadir más letras u otras cosas, es más fácil y no tendrias que estar metiendo condicionales en el or.

Un saludo.