Foros del Web » Programando para Internet » Ruby »

Otro Arreglo mas

Estas en el tema de Otro Arreglo mas en el foro de Ruby en Foros del Web. Amigos Rubinos, :) Estoy que rompo la cabeza que no me sale la solucion, estoy tratando de separar los nombres de los paises y numeros ...
  #1 (permalink)  
Antiguo 18/08/2014, 14:55
 
Fecha de Ingreso: agosto-2014
Mensajes: 68
Antigüedad: 9 años, 8 meses
Puntos: 1
Otro Arreglo mas

Amigos Rubinos, :)
Estoy que rompo la cabeza que no me sale la solucion, estoy tratando de separar los nombres de los paises y numeros en cada cadena. y ademas una orientacion en que esta mal.
le paso el ejercicio:
La Unión Europea ha creado un conjunto de datos basados en su estadísticas anuales y quiere obtener información de cada uno de ellos. Por tal razón se le solicita a usted lo siguiente:
a) Desarrollar un subprograma que permita determinar el pais con mayor población en un muestra dada.
b) Desarrollar un subprograma que permita ordernar de manera asc (de menor a mayor) los paises basados en su población.
c) Desarrollar un subprograma que permita determinar la población promedio en una muestra dada.
d) Desarrollar un subprograma que permita saber cual es la desviación estándar de las muestras.

Funciones:
Desviación estándar:
Código ruby:
Ver original
  1. #encoding:UTF-8
  2. def paisConMasPoblacion(muestras)
  3.    mas_poblacion = 0
  4.    inicio = muestras[0][1]
  5.    for i in 0...inicio.size
  6.         if mas_poblacion < inicio[i]
  7.             mas_poblacion = inicio[i]
  8.         end
  9.     end
  10.    return muestras[i][0]
  11. end
  12.  
  13. def ordenarPorPoblacion(muestras)
  14.     cadena = Array.new(muestras.size)
  15.    
  16. end
  17.  
  18. def poblacionPromedio(muestras)
  19.     cadena = muestras.flatten
  20.     total = 0.0
  21.     i = 0
  22.     while i < muestras.size
  23.         #total = total + cadena[i]
  24.         i = i + 2
  25.     end
  26.     puts cadena1
  27. end
  28.  
  29. def desviacionEstandar(muestras)
  30.    
  31. end
  32.  
  33. #--- zona de test ----
  34.  
  35. def test_paisConMasPoblacion
  36.    
  37.     muestra2 = [['Bulgaria',8612757],['Croatia',5004112],['Czech Republic',10321120],['Denmark',5249632],['Estonia',1459428],['Faroe Islands',43857]]
  38.     muestra3 = [['Finland',5105230],['France',58317450],['Germany',83536115],['Gibraltar',28765],['Greece',10538594],['Hungary',10002541]]
  39.     print validate('Belarus', paisConMasPoblacion(muestra1))
  40.     print validate('Czech Republic', paisConMasPoblacion(muestra2))
  41.     print validate('Germany', paisConMasPoblacion(muestra3))
  42. end
  43.  
  44. def test_ordenarPorPoblacion
  45.     muestra1 = [['Albania',28750],['Andorra',72766],['Austria',8023244],['Belarus',10415973],['Belgium',10170241],['Bosnia and Herzegovina',2656240]]
  46.     muestra2 = [['Bulgaria',8612757],['Croatia',5004112],['Czech Republic',10321120],['Denmark',5249632],['Estonia',1459428],['Faroe Islands',43857]]
  47.     muestra3 = [['Finland',5105230],['France',58317450],['Germany',83536115],['Gibraltar',28765],['Greece',10538594],['Hungary',10002541]]
  48.     print validate(['Albania','Andorra','Austria','Bosnia and Herzegovina','Belgium','Belarus'], ordenarPorPoblacion(muestra1))
  49.     print validate(['Faroe Islands','Estonia','Croatia','Denmark','Bulgaria','Czech Republic'], ordenarPorPoblacion(muestra2))
  50.     print validate(['Gibraltar','Finland','Hungary','Greece','France','Germany'], ordenarPorPoblacion(muestra3))
  51. end
  52.  
  53. def test_poblacionPromedio
  54.     muestra1 = [['Albania',28750],['Andorra',72766],['Austria',8023244],['Belarus',10415973],['Belgium',10170241],['Bosnia and Herzegovina',2656240]]
  55.     muestra2 = [['Bulgaria',8612757],['Croatia',5004112],['Czech Republic',10321120],['Denmark',5249632],['Estonia',1459428],['Faroe Islands',43857]]
  56.     muestra3 = [['Finland',5105230],['France',58317450],['Germany',83536115],['Gibraltar',28765],['Greece',10538594],['Hungary',10002541]]
  57.     print validate(5227869.0,   poblacionPromedio(muestra1))
  58.     print validate(5115151.0,   poblacionPromedio(muestra2))
  59.     print validate(27921449.17, poblacionPromedio(muestra3))
  60. end
  61.  
  62. def test_desviacionEstandar
  63.     muestra1 = [['Albania',28750],['Andorra',72766],['Austria',8023244],['Belarus',10415973],['Belgium',10170241],['Bosnia and Herzegovina',2656240]]
  64.     muestra2 = [['Bulgaria',8612757],['Croatia',5004112],['Czech Republic',10321120],['Denmark',5249632],['Estonia',1459428],['Faroe Islands',43857]]
  65.     muestra3 = [['Finland',5105230],['France',58317450],['Germany',83536115],['Gibraltar',28765],['Greece',10538594],['Hungary',10002541]]
  66.     print validate(4886241.63, desviacionEstandar(muestra1))
  67.     print validate(3961012.73, desviacionEstandar(muestra2))
  68.     print validate(34463721.6, desviacionEstandar(muestra3))
  69. end
  70.  
  71.  
  72. def validate (expected, value)
  73.  expected == value ? "." : "F"
  74. end
  75.  
  76. def test
  77.    
  78.   puts "Test de prueba del programa"
  79.   puts "---------------------------"
  80.   test_paisConMasPoblacion
  81.   test_ordenarPorPoblacion
  82.   test_poblacionPromedio
  83.   test_desviacionEstandar
  84.  
  85.   puts " "
  86. end
  87. test
  #2 (permalink)  
Antiguo 18/08/2014, 16:32
 
Fecha de Ingreso: agosto-2014
Mensajes: 68
Antigüedad: 9 años, 8 meses
Puntos: 1
Respuesta: Otro Arreglo mas

Rubinos,
Me falto unos detalles del programa al final de test.
Código ruby:
Ver original
  1. #encoding:UTF-8
  2. def paisConMasPoblacion(muestras)
  3.    
  4. end
  5.  
  6. def ordenarPorPoblacion(muestras)
  7.  
  8. end
  9.  
  10. def poblacionPromedio(muestras)
  11.    
  12. end
  13.  
  14. def desviacionEstandar(muestras)
  15.    
  16. end
  17.  
  18. #--- zona de test ----
  19.  
  20. def test_paisConMasPoblacion
  21.     muestra1 = [['Albania',28750],['Andorra',72766],['Austria',8023244],['Belarus',10415973],['Belgium',10170241],['Bosnia and Herzegovina',2656240]]
  22.     muestra2 = [['Bulgaria',8612757],['Croatia',5004112],['Czech Republic',10321120],['Denmark',5249632],['Estonia',1459428],['Faroe Islands',43857]]
  23.     muestra3 = [['Finland',5105230],['France',58317450],['Germany',83536115],['Gibraltar',28765],['Greece',10538594],['Hungary',10002541]]
  24.    
  25.     print validate('Belarus', paisConMasPoblacion(muestra1))
  26.     print validate('Czech Republic', paisConMasPoblacion(muestra2))
  27.     print validate('Germany', paisConMasPoblacion(muestra3))
  28. end
  29.  
  30. def test_ordenarPorPoblacion
  31.     muestra1 = [['Albania',28750],['Andorra',72766],['Austria',8023244],['Belarus',10415973],['Belgium',10170241],['Bosnia and Herzegovina',2656240]]
  32.     muestra2 = [['Bulgaria',8612757],['Croatia',5004112],['Czech Republic',10321120],['Denmark',5249632],['Estonia',1459428],['Faroe Islands',43857]]
  33.     muestra3 = [['Finland',5105230],['France',58317450],['Germany',83536115],['Gibraltar',28765],['Greece',10538594],['Hungary',10002541]]
  34.  
  35.     print validate(['Albania','Andorra','Austria','Bosnia and Herzegovina','Belgium','Belarus'], ordenarPorPoblacion(muestra1))
  36.     print validate(['Faroe Islands','Estonia','Croatia','Denmark','Bulgaria','Czech Republic'], ordenarPorPoblacion(muestra2))
  37.     print validate(['Gibraltar','Finland','Hungary','Greece','France','Germany'], ordenarPorPoblacion(muestra3))
  38. end
  39.  
  40. def test_poblacionPromedio
  41.     muestra1 = [['Albania',28750],['Andorra',72766],['Austria',8023244],['Belarus',10415973],['Belgium',10170241],['Bosnia and Herzegovina',2656240]]
  42.     muestra2 = [['Bulgaria',8612757],['Croatia',5004112],['Czech Republic',10321120],['Denmark',5249632],['Estonia',1459428],['Faroe Islands',43857]]
  43.     muestra3 = [['Finland',5105230],['France',58317450],['Germany',83536115],['Gibraltar',28765],['Greece',10538594],['Hungary',10002541]]
  44.  
  45.     print validate(5227869.0,   poblacionPromedio(muestra1))
  46.     print validate(5115151.0,   poblacionPromedio(muestra2))
  47.     print validate(27921449.17, poblacionPromedio(muestra3))
  48. end
  49.  
  50. def test_desviacionEstandar
  51.     muestra1 = [['Albania',28750],['Andorra',72766],['Austria',8023244],['Belarus',10415973],['Belgium',10170241],['Bosnia and Herzegovina',2656240]]
  52.     muestra2 = [['Bulgaria',8612757],['Croatia',5004112],['Czech Republic',10321120],['Denmark',5249632],['Estonia',1459428],['Faroe Islands',43857]]
  53.     muestra3 = [['Finland',5105230],['France',58317450],['Germany',83536115],['Gibraltar',28765],['Greece',10538594],['Hungary',10002541]]
  54.  
  55.     print validate(4886241.63, desviacionEstandar(muestra1))
  56.     print validate(3961012.73, desviacionEstandar(muestra2))
  57.     print validate(34463721.6, desviacionEstandar(muestra3))
  58. end
  59.  
  60.  
  61. def validate (expected, value)
  62.  expected == value ? "." : "F"
  63. end
  64.  
  65. def test
  66.    
  67.   puts "Test de prueba del programa"
  68.   puts "---------------------------"
  69.   test_paisConMasPoblacion
  70.   test_ordenarPorPoblacion
  71.   test_poblacionPromedio
  72.   test_desviacionEstandar
  73.  
  74.   puts " "
  75. end
  76. test
  #3 (permalink)  
Antiguo 19/08/2014, 20:32
 
Fecha de Ingreso: agosto-2014
Mensajes: 68
Antigüedad: 9 años, 8 meses
Puntos: 1
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
  1. #encoding:UTF-8
  2. def paisConMasPoblacion(muestras)
  3.       muestra = muestras.collect {|x,y| y}
  4.       mas_poblacion = muestra.sort.reverse
  5.       poblaciones = mas_poblacion[0]
  6.       indice = 0
  7.         for i in 0...muestras.size
  8.             if poblaciones < muestra[i]
  9.                 poblaciones = muestra[i]
  10.                 indice = i         
  11.             end
  12.         end
  13.       #puts poblaciones
  14.       paises = muestras.sort {|x,y| x <=> y}
  15.       #puts paises
  16.       puts paises.reverse[indice][0]
  17.       #return paises[indice][0]
  18. end
  19.  
  20. def ordenarPorPoblacion(muestras)
  21.         muestra = muestras.collect {|x,y| y}
  22.         menos_poblacion = muestra.sort
  23.         poblaciones = menos_poblacion[0]
  24.         indice = 0
  25.         for i,j in 0...muestras.size
  26.             if poblaciones > muestra[i]
  27.                 poblaciones = muestra[i]
  28.                 i = i + 1
  29.                 indice = i         
  30.             end
  31.         end
  32.         paises = muestras.sort {|x,y| x <=> y}
  33. end
  34.  
  35. def poblacionPromedio(muestras)
  36.     total = 0.0
  37.     cantidad = muestras.collect {|x,y| y}
  38.     for i in 0...muestras.size
  39.         total = total + cantidad[i]
  40.     end
  41.     return (total / muestras.size).round(2)
  42. end
  43.  
  44. def desviacionEstandar(muestras)
  45.     promedio = poblacionPromedio(muestras)
  46.     bessel = muestras.size - 1
  47.     cantidad = muestras.collect {|x,y| y}
  48.     suma_total = 0.0
  49.     for i in 0...muestras.size
  50.         suma_total = suma_total + (cantidad[i] - promedio.round(2)) ** 2
  51.     end
  52.     return (Math.sqrt(suma_total / bessel)).round(2)  # el comando de raiz cuadrada
  53. end
  54.  
  55. #--- zona de test ----
  56.  
  57. def test_paisConMasPoblacion
  58.     muestra1 = [['Albania',28750],['Andorra',72766],['Austria',8023244],['Belarus',10415973],['Belgium',10170241],['Bosnia and Herzegovina',2656240]]
  59.     muestra2 = [['Bulgaria',8612757],['Croatia',5004112],['Czech Republic',10321120],['Denmark',5249632],['Estonia',1459428],['Faroe Islands',43857]]
  60.     muestra3 = [['Finland',5105230],['France',58317450],['Germany',83536115],['Gibraltar',28765],['Greece',10538594],['Hungary',10002541]]
  61.    
  62.     print validate('Belarus', paisConMasPoblacion(muestra1))
  63.     print validate('Czech Republic', paisConMasPoblacion(muestra2))
  64.     print validate('Germany', paisConMasPoblacion(muestra3))
  65. end
  66.  
  67. def test_ordenarPorPoblacion
  68.     muestra1 = [['Albania',28750],['Andorra',72766],['Austria',8023244],['Belarus',10415973],['Belgium',10170241],['Bosnia and Herzegovina',2656240]]
  69.     muestra2 = [['Bulgaria',8612757],['Croatia',5004112],['Czech Republic',10321120],['Denmark',5249632],['Estonia',1459428],['Faroe Islands',43857]]
  70.     muestra3 = [['Finland',5105230],['France',58317450],['Germany',83536115],['Gibraltar',28765],['Greece',10538594],['Hungary',10002541]]
  71.     print validate(['Albania','Andorra','Austria','Bosnia and Herzegovina','Belgium','Belarus'], ordenarPorPoblacion(muestra1))
  72.     print validate(['Faroe Islands','Estonia','Croatia','Denmark','Bulgaria','Czech Republic'], ordenarPorPoblacion(muestra2))
  73.     print validate(['Gibraltar','Finland','Hungary','Greece','France','Germany'], ordenarPorPoblacion(muestra3))
  74. end
  75.  
  76. def test_poblacionPromedio
  77.     muestra1 = [['Albania',28750],['Andorra',72766],['Austria',8023244],['Belarus',10415973],['Belgium',10170241],['Bosnia and Herzegovina',2656240]]
  78.     muestra2 = [['Bulgaria',8612757],['Croatia',5004112],['Czech Republic',10321120],['Denmark',5249632],['Estonia',1459428],['Faroe Islands',43857]]
  79.     muestra3 = [['Finland',5105230],['France',58317450],['Germany',83536115],['Gibraltar',28765],['Greece',10538594],['Hungary',10002541]]
  80.     print validate(5227869.0,   poblacionPromedio(muestra1))
  81.     print validate(5115151.0,   poblacionPromedio(muestra2))
  82.     print validate(27921449.17, poblacionPromedio(muestra3))
  83. end
  84.  
  85. def test_desviacionEstandar
  86.     muestra1 = [['Albania',28750],['Andorra',72766],['Austria',8023244],['Belarus',10415973],['Belgium',10170241],['Bosnia and Herzegovina',2656240]]
  87.     muestra2 = [['Bulgaria',8612757],['Croatia',5004112],['Czech Republic',10321120],['Denmark',5249632],['Estonia',1459428],['Faroe Islands',43857]]
  88.     muestra3 = [['Finland',5105230],['France',58317450],['Germany',83536115],['Gibraltar',28765],['Greece',10538594],['Hungary',10002541]]
  89.     print validate(4886241.63, desviacionEstandar(muestra1))
  90.     print validate(3961012.73, desviacionEstandar(muestra2))
  91.     print validate(34463721.6, desviacionEstandar(muestra3))
  92. end
  93.  
  94.  
  95. def validate (expected, value)
  96.  expected == value ? "." : "F"
  97. end
  98.  
  99. def test
  100.    
  101.   puts "Test de prueba del programa"
  102.   puts "---------------------------"
  103.   test_paisConMasPoblacion
  104.   test_ordenarPorPoblacion
  105.   test_poblacionPromedio
  106.   test_desviacionEstandar
  107.  
  108.   puts " "
  109. end
  110. test

Etiquetas: arreglo, funcion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:16.