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
#encoding: UTF-8 #realizar un programa que devuelva la suma de los digitos impares de un numero #Pejm: numero=34523, dara como resultado 3+5+3 = 11 def obtenerSumaDigitosPosicionImpar(numero) cadena = numero.to_s total = 0 for i in 0..cadena.size if (cadena[i].to_i).odd? total = total + cadena[i].to_i end end return total.to_i end #realizar un programa que dado un numero, se devuelve su valor invertido #Pejm: 1234 deberia de devolver 4321 def invertirNumero(numero) @numero = numero.to_s return (@numero.reverse).to_i end #realizar un programa que dado 2 numeros, determine cuantas veces esta contenido el primer numero en el segundo numero #Peje: numero=23434534 y subnumero=34, dara como resultado 3 def vecesRepiteNumeroEnNumero(numero, subnumero) cadena = numero.to_s contador = 0 for i in 0..cadena.size if subnumero == cadena[i].to_i contador = contador + 1 end end return contador end #determinar cuantos numeros primos hay en un rango def cantidadPrimosRango(rangoInicial, rangoFinal) contador = 0 x = rangoInicial y = rangoFinal if x >= 4 z = x - 1 else z = x end for i in z..y if y % i == 0 contador = contador + 1 end end return contador end #--- zona de test ---- def test_obtenerSumaDigitosPosicionImpar print validate(4, obtenerSumaDigitosPosicionImpar(123)) print validate(4, obtenerSumaDigitosPosicionImpar(1234)) print validate(1, obtenerSumaDigitosPosicionImpar(1)) end def test_invertirNumero print validate(4, invertirNumero(4)) print validate(51, invertirNumero(15)) print validate(4321, invertirNumero(1234)) end def test_vecesRepiteNumeroEnNumero print validate(0, vecesRepiteNumeroEnNumero(1234,5)) print validate(1, vecesRepiteNumeroEnNumero(22342,3)) print validate(3, vecesRepiteNumeroEnNumero(667666,66)) end def test_cantidadPrimosRango print validate(2, cantidadPrimosRango(1,2)) print validate(3, cantidadPrimosRango(1,4)) print validate(2, cantidadPrimosRango(4,9)) end def validate (expected, value) expected == value ? "." : "F" end def test puts "Test de prueba del programa" puts "---------------------------" test_obtenerSumaDigitosPosicionImpar test_invertirNumero test_vecesRepiteNumeroEnNumero test_cantidadPrimosRango puts " " end test