
Ayuda con tabulador en Ruby
Publicado por Novato (3 intervenciones) el 14/10/2014 01:00:49
Estimados, tengo un código en Ruby que dado un número de personas, su nombre, edad y sexo, devuelve los nombres, edades, sumatoria de edades y promedios.
El código funciona bien desde el punto de vista de de ejecución, el problema que tengo es con los nombres de 8 caracteres o más, que me tabula mal la edad y género.
CAPTURA DE PANTALLA DE RESULTADO

Como ven el nombre Federico, queda destabulado en la edad y el genero.
Les dejo el código a ver que se puede hacer:
El código funciona bien desde el punto de vista de de ejecución, el problema que tengo es con los nombres de 8 caracteres o más, que me tabula mal la edad y género.
CAPTURA DE PANTALLA DE RESULTADO

Como ven el nombre Federico, queda destabulado en la edad y el genero.
Les dejo el código a ver que se puede hacer:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
class Ejercicio
def initialize ()
end
def Desarrollo()
suma_e = 0
prom_e = 0
c_m = 0
c_f = 0
puts "ingresar numero de personas:"
STDOUT.flush #el STDOUT nos ayudara a limpiar el valor de una variable
n = gets.chomp
n = n.to_i
x = n-1
a = Array.new
b = Array.new
c = Array.new
for i in 0..x
print "Persona ",i+1,"\n"
print "Nombre: "
a[i] = gets.chomp
a[i] = a[i].to_s.capitalize
printf "\n"
print "Edad: "
b[i] = gets.chomp
b[i] = b[i].to_i
printf "\n"
print "Genero (M/F) : "
c[i] = gets.chomp
c[i] = c[i].to_s.capitalize!
printf "\n"
end
print "-------------------------\n"
puts "LISTA DE PERSONAS:"
printf "\n"
print "Nombre\t\tEdad\tGenero\n"
print "\n"
for i in 0..x
print a[i],"\t", "\t",b[i],"\t",c[i],"\n"
suma_e = suma_e+b[i]
end
for i in 0..x
if (c[i]=="M")
c_m=c_m+1
else
c_f=c_f+1
end
end
print "-------------------------\n"
prom_e = suma_e/n
print "Sumatoria de edades:",suma_e,"\n"
print "Promedio de edades:",prom_e,"\n"
print "Cantidad de hombres:",c_m,"\n"
print "Cantidad de mujeres:",c_f,"\n"
end
end
objeto = Ejercicio.new()
objeto.Desarrollo
gets()
Valora esta pregunta


0