Respuesta: Otro Arreglo mas Amigos Rubinos,
Me salio las dos ultimas tests me salio bien, cuando es F esta saliendo mal , y cuando es punto(.) quiere decir que salio bien. ahora bien he llegado hasta la cantidad de poblacion es mayor en el primer test, lo unico que no logro es que la cantidad de poblacion pertenece a un pais que le debe llamar o deber el resultado. y el otro test es lo mismo pero de menor a mayor, ahora lo que no puedo encontrar la solucion que la cantidad de poblacion es de menor a mayor sea en una cadena de paises. le paso la solucion de un avance, si algunos de ustedes tenga la voluntad de indicarme en que me he fallado o indicarme que me falta.
Código ruby:
Ver original#encoding:UTF-8 def paisConMasPoblacion(muestras) muestra = muestras.collect {|x,y| y} mas_poblacion = muestra.sort.reverse poblaciones = mas_poblacion[0] indice = 0 for i in 0...muestras.size if poblaciones < muestra[i] poblaciones = muestra[i] indice = i end end #puts poblaciones paises = muestras.sort {|x,y| x <=> y} #puts paises puts paises.reverse[indice][0] #return paises[indice][0] end def ordenarPorPoblacion(muestras) muestra = muestras.collect {|x,y| y} menos_poblacion = muestra.sort poblaciones = menos_poblacion[0] indice = 0 for i,j in 0...muestras.size if poblaciones > muestra[i] poblaciones = muestra[i] i = i + 1 indice = i end end paises = muestras.sort {|x,y| x <=> y} end def poblacionPromedio(muestras) total = 0.0 cantidad = muestras.collect {|x,y| y} for i in 0...muestras.size total = total + cantidad[i] end return (total / muestras.size).round(2) end def desviacionEstandar(muestras) promedio = poblacionPromedio(muestras) bessel = muestras.size - 1 cantidad = muestras.collect {|x,y| y} suma_total = 0.0 for i in 0...muestras.size suma_total = suma_total + (cantidad[i] - promedio.round(2)) ** 2 end return (Math.sqrt(suma_total / bessel)).round(2) # el comando de raiz cuadrada end #--- zona de test ---- def test_paisConMasPoblacion muestra1 = [['Albania',28750],['Andorra',72766],['Austria',8023244],['Belarus',10415973],['Belgium',10170241],['Bosnia and Herzegovina',2656240]] muestra2 = [['Bulgaria',8612757],['Croatia',5004112],['Czech Republic',10321120],['Denmark',5249632],['Estonia',1459428],['Faroe Islands',43857]] muestra3 = [['Finland',5105230],['France',58317450],['Germany',83536115],['Gibraltar',28765],['Greece',10538594],['Hungary',10002541]] print validate('Belarus', paisConMasPoblacion(muestra1)) print validate('Czech Republic', paisConMasPoblacion(muestra2)) print validate('Germany', paisConMasPoblacion(muestra3)) end def test_ordenarPorPoblacion muestra1 = [['Albania',28750],['Andorra',72766],['Austria',8023244],['Belarus',10415973],['Belgium',10170241],['Bosnia and Herzegovina',2656240]] muestra2 = [['Bulgaria',8612757],['Croatia',5004112],['Czech Republic',10321120],['Denmark',5249632],['Estonia',1459428],['Faroe Islands',43857]] muestra3 = [['Finland',5105230],['France',58317450],['Germany',83536115],['Gibraltar',28765],['Greece',10538594],['Hungary',10002541]] print validate(['Albania','Andorra','Austria','Bosnia and Herzegovina','Belgium','Belarus'], ordenarPorPoblacion(muestra1)) print validate(['Faroe Islands','Estonia','Croatia','Denmark','Bulgaria','Czech Republic'], ordenarPorPoblacion(muestra2)) print validate(['Gibraltar','Finland','Hungary','Greece','France','Germany'], ordenarPorPoblacion(muestra3)) end def test_poblacionPromedio muestra1 = [['Albania',28750],['Andorra',72766],['Austria',8023244],['Belarus',10415973],['Belgium',10170241],['Bosnia and Herzegovina',2656240]] muestra2 = [['Bulgaria',8612757],['Croatia',5004112],['Czech Republic',10321120],['Denmark',5249632],['Estonia',1459428],['Faroe Islands',43857]] muestra3 = [['Finland',5105230],['France',58317450],['Germany',83536115],['Gibraltar',28765],['Greece',10538594],['Hungary',10002541]] print validate(5227869.0, poblacionPromedio(muestra1)) print validate(5115151.0, poblacionPromedio(muestra2)) print validate(27921449.17, poblacionPromedio(muestra3)) end def test_desviacionEstandar muestra1 = [['Albania',28750],['Andorra',72766],['Austria',8023244],['Belarus',10415973],['Belgium',10170241],['Bosnia and Herzegovina',2656240]] muestra2 = [['Bulgaria',8612757],['Croatia',5004112],['Czech Republic',10321120],['Denmark',5249632],['Estonia',1459428],['Faroe Islands',43857]] muestra3 = [['Finland',5105230],['France',58317450],['Germany',83536115],['Gibraltar',28765],['Greece',10538594],['Hungary',10002541]] print validate(4886241.63, desviacionEstandar(muestra1)) print validate(3961012.73, desviacionEstandar(muestra2)) print validate(34463721.6, desviacionEstandar(muestra3)) end def validate (expected, value) expected == value ? "." : "F" end def test puts "Test de prueba del programa" puts "---------------------------" test_paisConMasPoblacion test_ordenarPorPoblacion test_poblacionPromedio test_desviacionEstandar puts " " end test
|