-
Notifications
You must be signed in to change notification settings - Fork 1
/
sueldos.rb
99 lines (86 loc) · 3.28 KB
/
sueldos.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
# encoding: UTF-8
=begin
Una empresa cuenta con la información de los sueldos de sus empleados los mismos que están asociados
a sus nombres. La empresa tiene la urgencia de conocer lo siguiente:
- Un subprograma que reciba como parámetro el nombre de los empleados y otro con
los sueldos de cada uno. Se debe determinar quién es el empleado que gana más en la empresa.
- Un subprograma que reciba como parámetro el nombre de los empleados y otro con
los sueldos de cada uno. Se debe determinar quién es el empleado que gana menos en la empresa.
- Un subprograma que reciba como parámetro los sueldos de los trabajadores y nos
retorne el promedio de todos los sueldos.
- Un subprograma que reciba como parámetro los sueldos de los trabajadores y nos
retorne el total de los sueldos.
=end
def trabajador_de_mayor_sueldo(nombres, sueldos)
mayor = sueldos[0]
indice = 0.0
for i in 0...sueldos.size
if mayor < sueldos[i]
mayor = sueldos[i]
indice = i
end
end
return nombres[indice]
end
def trabajador_de_menor_sueldo(nombres, sueldos)
menor = sueldos[0]
indice = 0.0
for i in 0...sueldos.size
if menor > sueldos[i]
menor = sueldos[i]
indice = i
end
end
return nombres[indice]
end
def promedio_sueldos(sueldos)
total = 0.0
for i in 0...sueldos.size
total = total + sueldos[i]
end
return (total / sueldos.size).round(2)
end
def total_sueldos(sueldos)
total = 0.0
for i in 0...sueldos.size
total = total + sueldos[i]
end
return total.round(2)
end
#--- zona de test ----
def test_trabajador_de_mayor_sueldo
print validate(trabajador_de_mayor_sueldo(@nombres1, @sueldos1 ), "Oscar Pimentel")
print validate(trabajador_de_mayor_sueldo(@nombres1, @sueldos2 ), "Jose Alcantara")
print validate(trabajador_de_mayor_sueldo(@nombres1, @sueldos3 ), "Ernesto Agurto")
end
def test_trabajador_de_menor_sueldo
print validate(trabajador_de_menor_sueldo(@nombres1, @sueldos1), "Rocio Morante")
print validate(trabajador_de_menor_sueldo(@nombres1, @sueldos2), "Maria Luyo")
print validate(trabajador_de_menor_sueldo(@nombres1, @sueldos3), "Juan Perez")
end
def test_promedio_sueldos
print validate(promedio_sueldos(@sueldos1), 2585.49)
print validate(promedio_sueldos(@sueldos2), 58000.48)
print validate(promedio_sueldos(@sueldos3), 216703.32)
end
def test_total_sueldos
print validate(total_sueldos(@sueldos1), 31025.89)
print validate(total_sueldos(@sueldos2), 696005.71)
print validate(total_sueldos(@sueldos3), 2600439.82)
end
def validate (expected, value)
expected == value ? "." : "F"
end
def test
@nombres1 = ["Roberto Montero","Jose Alcantara","Rosario Medina","Rocio Morante","Maria Luyo","Oscar Pimentel","Alberto Pino","Celia Mayer","Alfredo Pinto","Juan Perez","Andres Montero","Ernesto Agurto"]
@sueldos1 =[1250.12,1585.01,3456.54,234.19,1234.89,7861.99,1241.00,4001.01,4320.12,3400.88,1239.91,1200.23]
@sueldos2 =[31232.21,211585.21,43456.24,12234.22,11234.19,127861.10,12241.02,40101.10,42320.10,11300.18,71239.92,81200.22]
@sueldos3 =[81222.71,176585.44,43876.56,712514.55,81224.66,67861.70,77241.32,43101.30,342320.70,18130.56,75139.76,881220.56]
puts "---------------------------"
test_trabajador_de_mayor_sueldo
test_trabajador_de_menor_sueldo
test_promedio_sueldos
test_total_sueldos
puts " "
end
test