Top Level Namespace

Defined Under Namespace

Modules: Practica6 Classes: Etiqueta, List, Menu, Paciente, Paciente_obeso, Persona, Registro

Instance Method Summary collapse

Instance Method Details

#efecto_termogeno(peso, talla, edad, sexo) ⇒ Object



21
22
23
# File 'lib/practica6/pruebas_menu.rb', line 21

def efecto_termogeno(peso,talla,edad,sexo)
  efecto_termogeno = gasto_basal(peso,talla,edad,sexo) * 0.10
end

#gasto_actividad_fisica(peso, talla, edad, sexo, factor) ⇒ Object



25
26
27
# File 'lib/practica6/pruebas_menu.rb', line 25

def gasto_actividad_fisica(peso,talla,edad,sexo,factor)
  gasto_actividad = gasto_basal(peso,talla,edad,sexo) * factor
end

#gasto_basal(peso, talla, edad, sexo) ⇒ Object

Este es el método que tenía inicialmente



11
12
13
14
15
16
17
18
19
# File 'lib/practica6/pruebas_menu.rb', line 11

def gasto_basal(peso,talla,edad,sexo)
  gasto_energetico_basal = 0
  if sexo == 0 #Es un hombre
     gasto_energetico_basal = (10*peso) + (6.25*talla) - (5*edad) + 5
  else
     gasto_energetico_basal = (10*peso) + (6.25*talla) - (5*edad) - 161
  end
     gasto_energetico_basal
end

#gasto_energetico_total(peso, talla, edad, sexo, factor) ⇒ Object



29
30
31
# File 'lib/practica6/pruebas_menu.rb', line 29

def gasto_energetico_total(peso,talla,edad,sexo,factor)
  gasto_total = gasto_actividad_fisica(peso,talla,edad,sexo,factor) + gasto_basal(peso,talla,edad,sexo) + efecto_termogeno(peso,talla,edad,sexo)
end

#gasto_energetico_total_(persona) ⇒ Object

VALOR ENERGÉTICO DE UNA VALORACIÓN NUTRICIONAL DE UN INDIVIDUO



57
58
59
60
# File 'lib/practica6/pruebas_menu.rb', line 57

def gasto_energetico_total_(persona)
  gasto_total = gasto_actividad_fisica(persona.peso, persona.talla, persona.edad, persona.sexo, persona.factor) + gasto_basal(persona.peso, persona.talla, persona.edad, persona.sexo) + efecto_termogeno(persona.peso, persona.talla, persona.edad, persona.sexo)
  gasto_total = (gasto_total*100).round() / 100.0
end

#obtener_array_each(arr_menu, list_val) ⇒ Object



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
# File 'lib/practica6/pruebas_menu.rb', line 80

def obtener_array_each(arr_menu, list_val)
  Benchmark.bm do |x|
    x.report{
  arr_total = []

  arr_menu.each {|menu| arr_total.push(valor_energetico_menu(menu))}
  list_val.each {|nodo| arr_total.push(gasto_energetico_total_(nodo))}

  i = 0
  arr_total.each do
    j = i
    min = arr_total[j]
    min_pos = i
    actual = arr_total[j]

    while (j < arr_total.length) do
      if (arr_total[j] < min)
          min = arr_total[j]
          min_pos = j
      end
      j += 1
    end

    if (min != actual)
       swap(arr_total, min_pos, i)
    end

    i += 1
    end
    arr_total
}end
end

#obtener_array_for(arr_menu, list_val) ⇒ Object



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
154
155
# File 'lib/practica6/pruebas_menu.rb', line 114

def obtener_array_for(arr_menu, list_val)
  Benchmark.bm do |x|
    x.report{
  arr_total = []

  # Insertamos en el array el contenido del valor energético de cada menú.
  for i in arr_menu do
    val_energetico = valor_energetico_menu(i)
    arr_total.push(val_energetico)
  end

  # Insertamos en el array el contenido del gasto energético total de cada individuo.
  for i in list_val do
    arr_total.push(gasto_energetico_total_(i))
  end

  i = 0
  for element in arr_total do

    j = i
    min = arr_total[j]
    min_pos = i
    actual = arr_total[j]

    while (j < arr_total.length) do
      if (arr_total[j] < min)
          min = arr_total[j]
          min_pos = j
      end
      j += 1
    end

    if (min != actual)
       swap(arr_total, min_pos, i)
    end

  i += 1
  end

  arr_total
}end
end

#obtener_array_sort(arr_menu, list_val) ⇒ Object



68
69
70
71
72
73
74
75
76
77
78
# File 'lib/practica6/pruebas_menu.rb', line 68

def obtener_array_sort(arr_menu, list_val)
Benchmark.bm do |x|
  x.report{
arr_total = []
arr_menu.each {|menu| arr_total.push(valor_energetico_menu(menu))}
list_val.each {|nodo| arr_total.push(gasto_energetico_total_(nodo))}

arr_total.sort
} end

end

#peso_teorico(talla) ⇒ Object



6
7
8
# File 'lib/practica6/pruebas_menu.rb', line 6

def peso_teorico(talla)
  peso_teorico_ideal = (talla - 150) * 0.75 + 50
end

#swap(arr, a, b) ⇒ Object



62
63
64
65
66
# File 'lib/practica6/pruebas_menu.rb', line 62

def swap(arr, a,b)
    temp = arr[a]
    arr[a] = arr[b]
    arr[b] = temp
end

#valor_energetico_menu(menu) ⇒ Object

VALOR ENERGÉTICO DEL MENU



47
48
49
50
51
52
53
54
# File 'lib/practica6/pruebas_menu.rb', line 47

def valor_energetico_menu(menu)
  sum = 0
  for etiqueta in menu do
    sum += etiqueta.valor_energetico[0]
  end
  sum = (sum*100).round() / 100.0

end

#verificar_cantidad(menu, peso, talla, edad, sexo, factor) ⇒ Object



34
35
36
37
38
39
40
41
42
# File 'lib/practica6/pruebas_menu.rb', line 34

def verificar_cantidad(menu, peso,talla,edad,sexo,factor)
  val_ener_menu = menu.collect{ |menu| menu.valor_energetico[0]}
  total_val = val_ener_menu.reduce(:+)
  gasto_total = gasto_energetico_total(peso,talla,edad,sexo,factor)
  margen_error = (total_val * 10) / 100

  return true if gasto_total <= (total_val + margen_error) && gasto_total >= (total_val - margen_error)
  false
end