-
Notifications
You must be signed in to change notification settings - Fork 1
/
Transito.rb
138 lines (114 loc) · 4.08 KB
/
Transito.rb
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
=begin
El departamento de Transito del Lima pretende implementar el manejo de peajes de entrada
utilizando una serie de stickers, los cuales van a variar en color dependiendo del numero
de digito en que terminan las placas.
Se sabe que el color de sticker y digito final de la placa están relacionados de la siguiente manera:
DÍGITO COLOR
1 o 2 amarillo
3 o 4 rosa
5 o 6 rojo
7 o 8 verde
9 o 0 azul
Se ha hecho un levantamiento de información en base a una muestra tomada durante una semana en la
panamericana sur, norte y carretera central. De esa muestra se obtuvo tanto el numero de placas de
los vehículos así como el tipo de vehiculo.
Adicionalmente se sabe que existen los siguientes tipos de vehiculo: “Camion”, “Auto”, “Bus”
Con los datos obtenidos se solicita lo siguiente:
1. Cual es el porcentaje de stickers rojos que se espera ingresen a la ciudad de Lima.
2. Cual es el número de vehículos cuyas placas terminan con placas comprendidas entre los dígitos 3 y 8
3. Cual es el tipo de vehículos que mas ingresan a Lima.
4. Devolver un listado con las placas de todos aquellos vehículos que tengan sticker azul.
=end
def porcentajePlacasRojas(placas)
cantidad_placa = placas
contador = 0
digito = []
for i in 0...cantidad_placa.size
cantidad = cantidad_placa[i]
digito << cantidad[5].to_s
end
for j in 0...digito.size
if digito[j] == "5" or digito[j] == "6"
contador = contador + 1
end
end
return ((contador * 100.00 / cantidad_placa.size) / 100.00).round(2)
end
def numeroPlacas38(placas)
cantidad_placa1 = placas
contador1 = 0
digito1 = []
for i in 0...cantidad_placa1.size
cantidad1 = cantidad_placa1[i]
digito1 << cantidad1[5].to_s
end
for j in 0...digito1.size
if digito1[j] == "3" or digito1[j] == "4" or digito1[j] == "5" or digito1[j] == "6" or digito1[j] == "7" or digito1[j] == "8"
contador1 = contador1 + 1
end
end
return contador1
end
def tipoVehiculoMasFrecuente(tipoVehiculo)
tipo = tipoVehiculo[5]
for i in 0...tipo.size
if tipoVehiculo[i] = tipo
selecionado = i
end
end
return tipoVehiculo[selecionado]
end
def placasStickerAzul(placas)
nueva_placa = []
for i in 0...placas.size
buscando = placas[i].to_s
if buscando[5].to_s == "0" or buscando[5].to_s == "9"
nueva_placa << placas[i]
end
end
return nueva_placa
end
#----------Zona de Test------------------
def test_porcentajePlacasRojas
print validate(0.17, porcentajePlacasRojas(@placas1))
print validate(0.00, porcentajePlacasRojas(@placas2))
print validate(0.33, porcentajePlacasRojas(@placas3))
end
def test_numeroPlacas38
print validate(6, numeroPlacas38(@placas1))
print validate(5, numeroPlacas38(@placas2))
print validate(4, numeroPlacas38(@placas3))
end
def test_tipoVehiculoMasFrecuente
print validate("Auto", tipoVehiculoMasFrecuente(@modelo1))
print validate("Bus", tipoVehiculoMasFrecuente(@modelo2))
print validate("Camion", tipoVehiculoMasFrecuente(@modelo3))
end
def test_placasStickerAzul
print validate(@respuesta1, placasStickerAzul(@placas1))
print validate(@respuesta2, placasStickerAzul(@placas2))
print validate(@respuesta3, placasStickerAzul(@placas3))
end
#----------------zona de test-----------------
@placas1 = ["AGX123","BGX837","IUR923","YRS623","PSO998","MWR836"]
@placas2 = ["RYZ930","GUE844","CHI934","ROX123","WWW333","POR923"]
@placas3 = ["AGX125","BGX838","IUR929","YRS611","PSO977","MWR845"]
@modelo1 = ["Camion","Auto","Auto","Auto","Auto","Auto"]
@modelo2 = ["Bus","Camion","Bus","Bus","Bus","Bus"]
@modelo3 = ["Auto","Bus","Camion","Bus","Camion","Camion"]
@respuesta1 = []
@respuesta2 = ["RYZ930"]
@respuesta3 = ["IUR929"]
def validate (expected, value)
expected == value ? "." : "F"
end
def test
puts "Test de prueba del programa"
puts "---------------------------"
test_porcentajePlacasRojas
test_numeroPlacas38
test_tipoVehiculoMasFrecuente
test_placasStickerAzul
puts " "
end
test