Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: xemnas en 8 Noviembre 2011, 19:39 pm



Título: problema con ejercicio array+function
Publicado por: xemnas en 8 Noviembre 2011, 19:39 pm

hola a tod@s, no consigo que me funcione la funcion para que me sume los numeros pares del array y el numero pares qe hay, alguien me puede ayudar? gracias
        $vector=array(1,4,9,5,2,6,98,23,-40,3,76,9,-8,3,1,4,7,0);
        $suma=0;
        $sumapares=0;
        $numpares=0;
     
         
       function execute($vector[$i]){
         suma_elementos_pares($vector[$i]);
         
      }
         
      
         function suma_elementos_pares($elemento){
            if(($elemento%2)==0) {
                $sumapares=$sumapares+$elemento;
                $numpares++;

         return $numpares; }
                     
          }
         
      
       while($i<count($vector)){
 
        execute($vector[$i]);
   
            $i++;
        }


Título: Re: problema con ejercicio array+function
Publicado por: Pablo Videla en 8 Noviembre 2011, 19:44 pm
Te sale algun error en especifico?


Título: Re: problema con ejercicio array+function
Publicado por: xemnas en 8 Noviembre 2011, 20:17 pm
no, en la consola de errores no sale ninguno error


Título: Re: problema con ejercicio array+function
Publicado por: Pablo Videla en 8 Noviembre 2011, 20:34 pm
Mejor lo reviso en la noche xD acabo de dar una respuesta estupida que acabo de eliminar  :xD :xD :xD


Título: Re: problema con ejercicio array+function
Publicado por: fran800m en 8 Noviembre 2011, 20:39 pm
Tabula y usa la etiqueta de código para que se pueda leer.


Título: Re: problema con ejercicio array+function
Publicado por: Pablo Videla en 8 Noviembre 2011, 20:44 pm
Para que se pueda leer bien...
Código
  1.  $vector=array(1,4,9,5,2,6,98,23,-40,3,76,9,-8,3,1,4,7,0);
  2.        $suma=0;
  3.        $sumapares=0;
  4.        $numpares=0;
  5.  
  6.  
  7.       function execute($vector[$i]){
  8.         suma_elementos_pares($vector[$i]);
  9.  
  10.      }
  11.  
  12.  
  13.         function suma_elementos_pares($elemento){
  14.            if(($elemento%2)==0) {
  15.                $sumapares=$sumapares+$elemento;
  16.                $numpares++;
  17.  
  18.         return $numpares; }
  19.  
  20.          }
  21.  
  22.  
  23.       while($i<count($vector)){
  24.  
  25.        execute($vector[$i]);
  26.  
  27.            $i++;
  28.        }


Título: Re: problema con ejercicio array+function
Publicado por: Pablo Videla en 8 Noviembre 2011, 20:45 pm
Porque no haces el ciclo en el metodo y sumas todo de una , en vez de recibir por parametro un elemento cada vez que se ejecuta el metodo, creo que es un problema de logica.


Título: Re: problema con ejercicio array+function
Publicado por: WHK en 9 Noviembre 2011, 01:26 am
Hola, tu código es php y esto deberia ir en el subforo de php porque acá no todos te van a descifrar que lenguaje estás usando porque no todos conocen de sintaxis php.

Código
  1. <?php
  2. echo 'Total: '.(int)suma(array(1,4,9,5,2,6,98,23,-40,3,76,9,-8,3,1,4,7,0));
  3.  
  4. function suma($vec){
  5. if((!isset($vec)) or (!is_array($vec)))
  6. return 0;
  7. $ex = array();
  8. foreach($vec as $sum){
  9. if(((int)$sum%2) == 0)
  10. $ex[] = (int)$sum;
  11. }
  12. if(count($ex) > 0){
  13. $ret = 0;
  14. foreach($ex as $do){
  15. $ret += (int)$do;
  16. }
  17. return (int)$ret;
  18. }else
  19. return 0;
  20. }
  21. ?>

Recuerda que un buén código no es el que hace el trabajo sino el que mejor controla cáda situación porque que tal si a la función tuya le paso un valor que no es un array? de seguro que me va a dar una exepción nativa de php y tendrás una falla de seguridad llamada path disclosure, y si no retorna un valor numérico?, etc.