• Publicidad

Definir una función que sume números introducidos

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Definir una función que sume números introducidos

Notapor alexclipse » 2012-04-21 09:30 @437

Es un ejercicio muy sencillo y debo de estar fallando en alguna tontería pero el programa que he elaborado me devuelve como resultado el último valor introducido. ¿En qué me falla?

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. print "Introduzca la cantidad de números a sumar: ";
  2. my $a = <STDIN>;
  3. chomp($a);
  4. while ( $a <= 0 ) {
  5.     print "Introduzca un número mayor de 0:";
  6.     my $a = <STDIN>;
  7.     chomp($a);
  8. }
  9. if ( $a > 0 ) {
  10.     my $n = 0;
  11.     while ( $n < $a ) {
  12.         print "Introduzca los números: ";
  13.         my $b = <STDIN>;
  14.         chomp($b);
  15.         push @numeros, $b;
  16.         $n++;
  17.     }
  18. }
  19.  
  20. my $suma = total(@numeros);
  21. print "La suma es: $suma\n";
  22.  
  23. sub total {
  24.     my $sumatorio = 0;
  25.     foreach $valor (@numeros) {
  26.         $resultado = +$valor;
  27.     }
  28.     return ($resultado)
  29.  
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
Última edición por explorer el 2012-04-21 09:36 @441, editado 1 vez en total
Razón: Formateado de código con Perltidy y poner marcas Perl
alexclipse
Perlero nuevo
Perlero nuevo
 
Mensajes: 43
Registrado: 2012-03-27 11:17 @511

Publicidad

Re: Definir una función que sume números introducidos

Notapor alexclipse » 2012-04-21 09:39 @444

Cierro el tema porque lo he re-re-revisado y he visto el error. Puse '=+' en lugar de '+='.
alexclipse
Perlero nuevo
Perlero nuevo
 
Mensajes: 43
Registrado: 2012-03-27 11:17 @511

Re: Definir una función que sume números introducidos

Notapor explorer » 2012-04-21 09:41 @445

Aparte de que faltan algunas tildes, lo que veo es:

  • Línea 24: defines $sumatorio, pero no lo usas luego para nada
  • Línea 20: le pasas a la función total() todos los @numeros, pero luego, esta función, no los recoge
  • Línea 26: en lugar de hacer la suma, lo que haces es guardar cada valor de @numero en $resultado, así que es normal que te devuelva siempre el último valor
  • Línea 28 y 29: faltan un ';' y una '}' al final.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Definir una función que sume números introducidos

Notapor alexclipse » 2012-04-21 10:07 @463

Lo de $sumatorio sí que es cierto. El ';' y '}' finales se debe a que no los he seleccionado al copiar pero sí que los he puesto en el programa. En cuanto a que me devuelva el último número corrigiendo lo que dije en mi segundo mensaje funciona perfectamente.
alexclipse
Perlero nuevo
Perlero nuevo
 
Mensajes: 43
Registrado: 2012-03-27 11:17 @511


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 19 invitados