-
Notifications
You must be signed in to change notification settings - Fork 1
/
croe1.rb
153 lines (135 loc) · 3.88 KB
/
croe1.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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#dado un arreglo que contiene las ventas del dia, se solicita obtener la suma de las ventas
def obtenerSumaVentas(ventas)
suma = 0
tam = ventas.size
for i in 0..(tam-1)
suma = suma + ventas[i]
end
return suma
end
#dado un arreglo que contiene las ventas del dia, se solicita obtener el promedio de venta
def obtenerPromedioVentas(ventas)
sumatoria = obtenerSumaVentas(ventas)
cantidad = ventas.size
return (sumatoria / cantidad.to_f).round(2)
end
#dado un arreglo que contiene las ventas del dia, se solicita obtener la venta mas alta
def obtenerVentaMasAlta(ventas)
venta = ventas[0]
indice = 0
for i in 0...ventas.size
if venta < ventas[i]
venta = ventas[i]
i = i + 1
indice = i
end
end
return venta
end
#dado un arreglo que contiene las ventas del dia, se solicita obtener la venta mas baja
def obtenerVentaMasBaja(ventas)
venta = ventas[0]
indice = 0
for i in 0...ventas.size
if venta > ventas[i]
venta = ventas[i]
i = i + 1
indice = i
end
end
return venta
end
#dado un arreglo que contiene las ventas del dia y una variable x, se solicita
#saber cuantas ventas superaron el monto de x. Por ejemplo se tienen 3 ventas de
#10, 12 y 14 y el valor de X es 13, se devolveria 1, pues solo 1 venta supero
#el valor de 13
def obtenerCuantasVentasSuperaronXSoles(ventas, x)
contador = 0
for i in 0...ventas.size
if x < ventas[i]
venta = ventas[i]
contador = contador + 1
end
end
return contador
end
#dado un arreglo de ventas y los compradores de dichas ventas, determinar cual
#fue el nombre del cliente que hizo la mayor compra individual
def obtenerClienteMayorCompra(ventas, clientes)
venta = ventas[0]
indice = 0
for i in 0...ventas.size
if venta < ventas[i]
venta = ventas[i]
indice = i
end
end
return clientes[indice]
end
#dado un arreglo de ventas y los compradores de dichas ventas, determinar cual
#fue el nombre del cliente que hizo mas compras en total
def obtenerClienteMasCompras(ventas, clientes)
venta = ventas[0]
indice = 0
for i in 0...ventas.size
if 10 < ventas[i] or ventas[i] < 0
venta = ventas[i]
indice = i
end
end
return clientes[indice]
end
#--- zona de test ----
def test_obtenerSumaVentas
ventas = [12,15,17]
print validate(44, obtenerSumaVentas(ventas))
end
def test_obtenerPromedioVentas
ventas = [12,15,17]
print validate(14.67, obtenerPromedioVentas(ventas))
end
def test_obtenerVentaMasAlta
ventas = [12,15,17]
print validate(17, obtenerVentaMasAlta(ventas))
end
def test_obtenerVentaMasBaja
ventas = [12,15,17]
print validate(12, obtenerVentaMasBaja(ventas))
end
def test_obtenerCuantasVentasSuperaronXSoles
ventas = [12,15,17]
print validate(0, obtenerCuantasVentasSuperaronXSoles(ventas, 20))
print validate(3, obtenerCuantasVentasSuperaronXSoles(ventas, 10))
print validate(2, obtenerCuantasVentasSuperaronXSoles(ventas, 14))
end
def test_obtenerClienteMayorCompra
ventas = [12,18,17]
clientes = ["Hugo","Paco","Luis"]
print validate("Paco", obtenerClienteMayorCompra(ventas, clientes))
end
def test_obtenerClienteMasCompras
ventas = [12,18,17,14]
clientes = ["Hugo","Paco","Luis", "Hugo"]
ventas2 = [12,18,17,14,10]
clientes2 = ["Hugo","Luis","Luis", "Luis", "Paco"]
ventas3 = [1,2,52,3,6,1,1,1,]
clientes3 = ["Luis","Paco", "Luis", "Paco", "Luis", "Luis", "Luis","Luis"]
print validate("Hugo", obtenerClienteMasCompras(ventas, clientes))
print validate("Luis", obtenerClienteMasCompras(ventas2, clientes2))
print validate("Luis", obtenerClienteMasCompras(ventas3, clientes3))
end
def validate (expected, value)
expected == value ? "." : "F"
end
def test
puts "Test de prueba del programa"
puts "---------------------------"
puts test_obtenerSumaVentas
puts test_obtenerPromedioVentas
puts test_obtenerVentaMasAlta
puts test_obtenerVentaMasBaja
puts test_obtenerCuantasVentasSuperaronXSoles
puts test_obtenerClienteMayorCompra
puts test_obtenerClienteMasCompras
end
test