elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Ruby] Sumar elementos de un array
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Ruby] Sumar elementos de un array  (Leído 8,855 veces)
ka0s


Desconectado Desconectado

Mensajes: 308


Ver Perfil
[Ruby] Sumar elementos de un array
« en: 25 Noviembre 2013, 19:39 pm »

Hola, desde ya muchas gracias por leer.
Estoy aprendiendo Ruby y no puedo creer que me estoy volviendo loco y no encuentro el error o lo que pasa con esto.
Quiero sumar los elementos de una array para probar EACH pero me arroja error.

Este es mi código:

Código
  1. puts "Ingrese 5 numeros separados por un espacio"
  2. numeros = gets.chomp
  3. numeros = numeros.split (" ")
  4. suma = 0
  5. numeros.each do |num|
  6. suma = suma + num
  7. puts suma
  8. end

Me estoy volviendo loco, probé de mil maneras distintas, incluso poniendo += para hacer más corto el código pero no encuentro como hacerlo.
Lo que me arroja el intérprete es:

Citar
D:/Users/Administrador/Desktop/probando.rb:6:in `+': String can't be coerced int
o Fixnum (TypeError)
        from D:/Users/Administrador/Desktop/probando.rb:6:in `block in <main>'
        from D:/Users/Administrador/Desktop/probando.rb:5:in `each'
        from D:/Users/Administrador/Desktop/probando.rb:5:in `<main>'

Es una tontería seguro, pero no puedo aprender ni seguir adelante :(.

Desde ya muchas gracias!!


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: [Ruby] Sumar elementos de un array
« Respuesta #1 en: 25 Noviembre 2013, 20:00 pm »

Es porque cuando pides el ingreso de los números,
Código
  1. numeros = gets.chomp

Los toma como si fuera string, tienes que convertir los valores a enteros,..., por ejemplo:
Código
  1. #!/usr/local/bin/ruby -w
  2.  
  3.  puts "Ingrese 5 numeros separados por un espacio"
  4.  numeros = "1 2 3 4 5 6 7 8 9"
  5.  numeros = numeros.split(" ")
  6.  suma = 0
  7.  numeros.each do |num|
  8.    suma += num.to_i
  9.  end
  10.  
  11.  puts suma


« Última modificación: 25 Noviembre 2013, 20:05 pm por @shellroot » En línea

Te vendería mi talento por poder dormir tranquilo.
ka0s


Desconectado Desconectado

Mensajes: 308


Ver Perfil
Re: [Ruby] Sumar elementos de un array
« Respuesta #2 en: 25 Noviembre 2013, 20:32 pm »

Es porque cuando pides el ingreso de los números,
Código
  1. numeros = gets.chomp

Los toma como si fuera string, tienes que convertir los valores a enteros,..., por ejemplo:
Código
  1. #!/usr/local/bin/ruby -w
  2.  
  3.  puts "Ingrese 5 numeros separados por un espacio"
  4.  numeros = "1 2 3 4 5 6 7 8 9"
  5.  numeros = numeros.split(" ")
  6.  suma = 0
  7.  numeros.each do |num|
  8.    suma += num.to_i
  9.  end
  10.  
  11.  puts suma

Ufff, que tontería era!!!
MUCHISIMAS GRACIAS POR RESPONDER Y POR LA RÁPIDEZ!!

Saludos!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines