Calculo de notas dentro de un arreglo de una manera especial (Ruby)

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: akodo, maiku

Responder
ExpLin_11
Forista Nuevo
Forista Nuevo
Mensajes: 34
Registrado: Dom Nov 13, 2011 10:28 pm

Calculo de notas dentro de un arreglo de una manera especial (Ruby)

Mensaje por ExpLin_11 » Jue Ago 30, 2012 10:06 pm

Hola a todos.

La problemática seria: Tengo un arreglo cargado con 10 notas en Ruby. Tengo que generar un segundo arreglo con el promedio de las notas pero de la siguiente manera: nota[0] con la nota[9], nota[1] con la nota[8] y asi sucesivamente no se si se entiende. Estuve trabajando en el programa, pero al hacer el ciclo los primeros números parece que los calcula bien, pero no los siguientes. Este es el código que estaba realizando:

Código: Seleccionar todo

srand

nota=[]
resultado=[]
n=10

for i in 0..n-1
	nota[i]=rand(10)+1
end

j=0
i=0

for i in 0..n-1
	for j in 0..n-1
		resultado[i]=(nota[i]+nota[j])/2
		j=j-1
                i=i+1
	end
end

puts "#{nota}"
puts "#{resultado}" 
Desde ya gracias.
Snark1994
Forista Menor
Forista Menor
Mensajes: 76
Registrado: Sab Abr 02, 2011 11:43 pm

Re: Calculo de notas dentro de un arreglo de una manera especial (Ruby)

Mensaje por Snark1994 » Dom Sep 02, 2012 7:26 pm

Es fácil ver donde está el error:

Código: Seleccionar todo

n=10

for i in 0..n-1
    for j in 0..n-1
        puts i.to_s + " " + j.to_s
        j = j-1 
        i = i+1 
    end 
end
¡Claro que no muestra "0 9, 1 8, 2 7, etc."! Querías decir:

Código: Seleccionar todo

nota=[]
resultado=[]
n=10

while nota.length < n 
    nota.push(rand(10)+1)
end

puts "#{nota}"

while nota.length > 0 
    #nota.first = la primera nota
    #nota.last = la última nota
    resultado.push((nota.first + nota.last)/2)
    nota.delete_at(0) #elimina la primera nota
    nota.delete_at(nota.length-1) #elimina la última nota
end

puts "#{resultado}" 
No soy hispanohablante - si he cometido un error con mi español, dime por favor :) me gustaría mejorarlo
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje