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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Ruby] Dónde está el fallo.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Ruby] Dónde está el fallo.  (Leído 3,438 veces)
Saito_25

Desconectado Desconectado

Mensajes: 83


Ver Perfil
[Ruby] Dónde está el fallo.
« en: 4 Abril 2015, 21:29 pm »

Lo primero, etiqueta GeSHi, que sino se me olvida:

Código
  1. class Numeros_Infernales
  2. def initialize
  3. num = 0
  4. numeros = []
  5. salir = "no"
  6. while salir != "Exit"
  7. palabra_ingresada = gets.chomp
  8. if palabra_ingresada != "Exit"
  9. palabra_ingresada = palabra_ingresada.to_f
  10. if palabra_ingresada <= 0 || palabra_ingresada >= 0
  11. numeros.push(palabra_ingresada)
  12. else
  13. puts "No has introducido un valor válido"
  14. end
  15. else
  16. salir = "Exit"
  17. end
  18. end
  19. end
  20. end
  21. objeto = Numeros_Infernales.new()
  22. gets


Bien, el problema: No tengo ni idea.

Me da error y creo que es en el segundo condicional, este:

Código
  1. if palabra_ingresada <= 0 || palabra_ingresada >= 0
  2. numeros.push(palabra_ingresada)
  3. else
  4. puts "No has introducido un valor válido"
  5. end


Sencillamente quiero que el usuario pueda ingresar valores hasta que ponga "Exit", entonces, cuando ese valor se ha ingresado, transferirlo a un arreglo, vector, array, cómo quiera que se llame, y más a delante haré cálculos con esos números, pero por ahora, consigo ingresar los valores sin que me salgan 1000 fallos por línea de código que pongo.  :rolleyes:

Gracias por vuestra ayuda.


« Última modificación: 4 Abril 2015, 23:42 pm por Saito_25 » En línea

Slava_TZD
Wiki

Desconectado Desconectado

Mensajes: 1.466

♪ [8675309] ♪


Ver Perfil WWW
Re: [Ruby] Dónde está el fallo.
« Respuesta #1 en: 4 Abril 2015, 21:42 pm »

Lo primero, etiqueta GeSHi, que sino se me olvida:


class Numeros_Infernales
   def initialize
      num = 0
      numeros = []
      salir = "no"
      while salir != "Exit"
         palabra_ingresada = gets.chomp
         if palabra_ingresada != "Exit"
            palabra_ingresada = palabra_ingresada.to_f
            if palabra_ingresada <= 0 || palabra_ingresada >= 0
               numeros.push(palabra_ingresada)
            else
               puts "No has introducido un valor válido"
            end
         else
            salir = "Exit"
         end
      end
   end
end
objeto = Numeros_Infernales.new()
gets


Bien, el problema: No tengo ni idea.

Me da error y creo que es en el segundo condicional, este:

if palabra_ingresada <= 0 || palabra_ingresada >= 0
               numeros.push(palabra_ingresada)
            else
               puts "No has introducido un valor válido"
            end



El puto amo XDDDDDDDDDDD

Ahora en serio que manual, vídeo o tutorial estás siguiendo?


En línea


The fact is, even if you were to stop bombing us, imprisoning us, torturing us, vilifying us, and usurping our lands, we would continue to hate you because our primary reason for hating you will not cease to exist until you embrace Islam.
Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: [Ruby] Dónde está el fallo.
« Respuesta #2 en: 4 Abril 2015, 22:17 pm »

Código
  1. if palabra_ingresada <= 0 || palabra_ingresada >= 0
  2.               numeros.push(palabra_ingresada)

¿Estás intentando agregar números a un array siempre y cuando sea diferente a 0? Porque eso es lo que hace la condición anterior. Otra cosa, ¿podrías decir qué error te muestra? Si no estamos adivinando.
En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
Saito_25

Desconectado Desconectado

Mensajes: 83


Ver Perfil
Re: [Ruby] Dónde está el fallo.
« Respuesta #3 en: 4 Abril 2015, 22:40 pm »

Vamos por parte, estoy poniendo la etiqueta esa, GeSHi, pero no veo que funcione. Soy solo yo, ¿o vosotros tampoco la veis?

Ahora bien, manual, muchos. He seguido uno que me pasó un usuario de esta comunidad, que era online, y con lo que he sacado de ahí, lo estoy intentando hacer lo que me he propuesto. Seguro que tengo fallos en todas partes, y de todo tipo, seguro que se puede hacer mucho más simple y sin comerse tanto la cabeza, pero, mi cara actual es esta:  :huh: así que, ni de coña lo puedo hacer mejor.

Lo que yo quiero es agregar a un array un valor numérico introducido por un usuario. Ese valor puede ser 0. Por eso pongo menor o igual, mayor o igual. Para que si me da 0 o un número menor o mayor se agregue. Al menos creo que es así como se debe hacer, no lo sé.

Fallo recibido:
Desde Sublime Text 2, al pulsar f7:
C:/Users/Manuel/Documents/Ruby/nombre.rb:13: invalid multibyte char (US-ASCII)
C:/Users/Manuel/Documents/Ruby/nombre.rb:13: invalid multibyte char (US-ASCII)
C:/Users/Manuel/Documents/Ruby/nombre.rb:13: syntax error, unexpected $end, expecting keyword_end
               puts "No has introducido un valor válido"

Al ejecutar el archivo .rb no tengo ni idea de qué sale, ya que se cierra la ventana nada más abrirla...
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.813



Ver Perfil
Re: [Ruby] Dónde está el fallo.
« Respuesta #4 en: 4 Abril 2015, 22:46 pm »

Ni he leido la pregunta ni los comentarios

Saito_25, ¿que broma es esta ya?, ¿que motivo te impide respetar las normas del foro?, yo y otros compañeros ya te hemos avisado muchas veces.

Cualquier comentario que hagas sin usar las etiquetas geshi será eliminado, no bloqueado, y si la burla sigue se reportará la petición de baneo, no hay más que hablar.

Tema cerrado.

Tema reabierto a petición del OP.
« Última modificación: 4 Abril 2015, 23:43 pm por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.813



Ver Perfil
Re: [Ruby] Dónde está el fallo.
« Respuesta #5 en: 5 Abril 2015, 00:02 am »

Trata de mostrar el error que tengas, cómo te han comentado no somos adivinos.

Deduzo que te da un error del tipo Invalid multibyte char (UTF-8) en esta linea:
Citar
Código
  1. puts "No has introducido un valor válido"
la á.

Si ese es el error al que te refieres, el motivo es porque estás utilizando un set de caracteres incompatible con al set de caracteres de la codificación que tengas declarada en la cabecera de tú script,
cómo no tienes ninguna codificación declarada en el script que has mostrado, por defecto Ruby 2.x utiliza la codificación UTF-8 (en Ruby 1.x es ASCII).

Añade esto en la cabecera del script:
Código
  1. # -*- coding: WINDOWS-1252 -*-

Saludos
« Última modificación: 5 Abril 2015, 00:10 am por Eleкtro » En línea

Saito_25

Desconectado Desconectado

Mensajes: 83


Ver Perfil
Re: [Ruby] Dónde está el fallo.
« Respuesta #6 en: 5 Abril 2015, 00:07 am »

Intenté buscar entre los iconos alguna cara que expresara la mía, pero... no pude encontrarla, supongo que esta es la que más se le acerca   :-X.

Bueno, hace poco bajé de la versión de Ruby 2.no sé que a la 1.9 En la versión 2.no sé que, parece que si se puede poner tildes... Si no me lo llegas a decir, estoy liado con esto años.

Bien, disculpad las molestias.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.813



Ver Perfil
Re: [Ruby] Dónde está el fallo.
« Respuesta #7 en: 5 Abril 2015, 00:11 am »

No me ha quedado del todo claro jeje, ¿entonces ese era el error al que te referías?

Saludos!
En línea

Saito_25

Desconectado Desconectado

Mensajes: 83


Ver Perfil
Re: [Ruby] Dónde está el fallo.
« Respuesta #8 en: 5 Abril 2015, 00:18 am »

Yo antes tenía la última versión de Ruby, en esa puedes agregarle tildes a las palabras sin ningún problema. Es más, después en la consola te las muestra.

Pero como quiero crear juegos, me bajé a la versión 1.9 y en esa, por lo visto, no se puede agregar tildes.

En fin, le quité la tilde al string, ya que aunque con tu código me sirvió el programa, las tildes se mostraban... de una forma muy rara, y ya funcionó perfectamente. Quedó esto:

Código
  1. class Numeros_Infernales
  2. def initialize
  3. numeros = []
  4. salir = "no"
  5. while salir != "Exit"
  6. pal = gets.chomp
  7. if pal != "Exit"
  8. pal = pal.to_f
  9. if pal > 0 || pal < 0
  10. numeros.push(pal)
  11. end
  12. else
  13. salir = "Exit"
  14. end
  15. end
  16. numeros.each {|numero| puts numero ** 2}
  17. end
  18. end
  19. objeto = Numeros_Infernales.new()
  20. gets
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Donde esta el fallo?
Software
stars 1 1,537 Último mensaje 31 Diciembre 2004, 12:59 pm
por fffher
backtrack4 ¿donde está el fallo?
Wireless en Linux
jomafusan 2 2,108 Último mensaje 18 Septiembre 2010, 00:24 am
por zydas
Donde esta el fallo? :S
Análisis y Diseño de Malware
RaGGa_Hax 2 2,617 Último mensaje 26 Septiembre 2010, 01:14 am
por [L]ord [R]NA
Formulario de contacto..... Donde está el fallo?????? « 1 2 »
Desarrollo Web
WiseHidden 10 4,986 Último mensaje 3 Octubre 2011, 21:27 pm
por WiseHidden
(solucionado) [Ruby] Comprobar si un archivo está abierto por un proceso ???
Scripting
Eleкtro 6 7,884 Último mensaje 6 Marzo 2012, 22:53 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines