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
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.
Cita de: Saito_25 en 4 Abril 2015, 21:29 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?
if palabra_ingresada <= 0 || palabra_ingresada >= 0
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.
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...
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.
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:
Citarputs "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:
# -*- coding: WINDOWS-1252 -*-
Saludos
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.
No me ha quedado del todo claro jeje, ¿entonces ese era el error al que te referías?
Saludos!
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:
class Numeros_Infernales
def initialize
numeros = []
salir = "no"
while salir != "Exit"
pal = gets.chomp
if pal != "Exit"
pal = pal.to_f
if pal > 0 || pal < 0
numeros.push(pal)
end
else
salir = "Exit"
end
end
numeros.each {|numero| puts numero ** 2}
end
end
objeto = Numeros_Infernales.new()
gets