Foros del Web » Programando para Internet » Ruby »

Problema en ruby

Estas en el tema de Problema en ruby en el foro de Ruby en Foros del Web. Amigos, He resuelto un ejercicio que aun no logro resolver este pequeño inconveniente. resulta que hice un recorrido de una variable de numero en cada ...
  #1 (permalink)  
Antiguo 27/09/2014, 21:42
 
Fecha de Ingreso: agosto-2014
Mensajes: 68
Antigüedad: 9 años, 8 meses
Puntos: 1
Problema en ruby

Amigos,
He resuelto un ejercicio que aun no logro resolver este pequeño inconveniente. resulta que hice un recorrido de una variable de numero en cada uno de los digitos de la cadena que la cual funciona, ahora quiero hacer un recorrido con la misma variable en cada dos digitos de la cadena. Adjunto el programa realizado. el metodo que le estoy indicando es el tercer metodo, ahi indica en el tercer ejercicio, una aclaracion, cuando ejecuta esta aplicacion, el resultado debe salir los puntos ..... que significa que la logica esta bien, cuando sale una F significa que la logica esta mal. En la parte del test del tercer metodo, ahi aparce los resultados que debe salir.

Código ruby:
Ver original
  1. #encoding: UTF-8
  2. #realizar un programa que devuelva la suma de los digitos impares de un numero
  3. #Pejm: numero=34523, dara como resultado 3+5+3 = 11
  4. def obtenerSumaDigitosPosicionImpar(numero)
  5.       cadena = numero.to_s
  6.       total = 0
  7.        for i in 0..cadena.size
  8.         if (cadena[i].to_i).odd?
  9.           total = total + cadena[i].to_i
  10.         end
  11.       end
  12.       return total.to_i
  13. end
  14.  
  15. #realizar un programa que dado un numero, se devuelve su valor invertido
  16. #Pejm: 1234 deberia de devolver 4321
  17. def invertirNumero(numero)
  18.     @numero = numero.to_s
  19.     return (@numero.reverse).to_i
  20. end
  21.  
  22. #realizar un programa que dado 2 numeros, determine cuantas veces esta contenido el primer numero en el segundo numero
  23. #Peje: numero=23434534 y subnumero=34, dara como resultado 3
  24. def vecesRepiteNumeroEnNumero(numero, subnumero)
  25.        cadena = numero.to_s
  26.      contador = 0
  27.      for i in 0..cadena.size
  28.         if subnumero == cadena[i].to_i
  29.           contador = contador + 1
  30.         end
  31.      end
  32.      return contador
  33. end
  34.  
  35. #determinar cuantos numeros primos hay en un rango
  36. def cantidadPrimosRango(rangoInicial, rangoFinal)
  37.     contador = 0
  38.     x = rangoInicial
  39.     y = rangoFinal
  40.   if x >= 4
  41.     z = x - 1
  42.   else
  43.     z = x
  44.   end
  45.   for i in z..y
  46.     if y % i == 0
  47.       contador = contador + 1
  48.     end
  49.   end
  50.  return contador
  51. end
  52.  
  53. #--- zona de test ----
  54.  
  55. def test_obtenerSumaDigitosPosicionImpar
  56.     print validate(4, obtenerSumaDigitosPosicionImpar(123))
  57.       print validate(4, obtenerSumaDigitosPosicionImpar(1234))
  58.     print validate(1, obtenerSumaDigitosPosicionImpar(1))    
  59. end
  60.  
  61. def test_invertirNumero
  62.     print validate(4, invertirNumero(4))
  63.     print validate(51, invertirNumero(15))
  64.     print validate(4321, invertirNumero(1234))
  65. end
  66.  
  67. def test_vecesRepiteNumeroEnNumero
  68.     print validate(0, vecesRepiteNumeroEnNumero(1234,5))
  69.     print validate(1, vecesRepiteNumeroEnNumero(22342,3))
  70.     print validate(3, vecesRepiteNumeroEnNumero(667666,66))
  71. end
  72.  
  73. def test_cantidadPrimosRango
  74.     print validate(2, cantidadPrimosRango(1,2))
  75.     print validate(3, cantidadPrimosRango(1,4))
  76.     print validate(2, cantidadPrimosRango(4,9))
  77. end
  78.  
  79. def validate (expected, value)
  80.  expected == value ? "." : "F"
  81. end
  82.  
  83. def test
  84.    
  85.   puts "Test de prueba del programa"
  86.   puts "---------------------------"
  87.   test_obtenerSumaDigitosPosicionImpar
  88.   test_invertirNumero
  89.   test_vecesRepiteNumeroEnNumero
  90.   test_cantidadPrimosRango
  91.   puts " "
  92. end
  93.  
  94. test

Etiquetas: metodo
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 13:56.