Class: Registro

Inherits:
Object
  • Object
show all
Includes:
Comparable
Defined in:
lib/practica6/registro.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(nombre, peso, talla, edad, sexo, cir_cintura = nil, cir_cadera = nil, cir_brazo = nil, pl_tricipital = nil, pl_bicipital = nil, pl_subescapular = nil, pl_suprailiaco = nil, factor = nil) ⇒ Paciente_Obeso

Returns retorna una instancia de la clase Registro.

Parameters:

  • nombre (number)

    nombre del paciente.

  • peso (number)

    peso del paciente.

  • talla (number)

    altura del paciente en metros.

  • edad (number)

    edad del paciente.

  • sexo (number)

    sexo del paciente, 0 corresponde a hombre y 1 a mujer.

  • cir_cintura (Number) (defaults to: nil)

    circunferencia de la cintura del paciente.

  • cir_cadera (Number) (defaults to: nil)

    circunferencia de la cadera del paciente.

  • cir_brazo (Number) (defaults to: nil)

    circunferencia del brazo del paciente.

  • pl_tricipital (Number) (defaults to: nil)

    longitud del pliege tricipital del pariente.

  • pl_bicipital (Number) (defaults to: nil)

    longitud del pliege bicipital del pariente.

  • pl_subescapular (Number) (defaults to: nil)

    longitud del pliege subescapular del pariente.

  • pl_suprailiaco (Number) (defaults to: nil)

    longitud del pliege suprailiaco del pariente.



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/practica6/registro.rb', line 25

def initialize(nombre, peso, talla, edad, sexo, cir_cintura = nil, cir_cadera = nil, cir_brazo = nil, pl_tricipital = nil, pl_bicipital = nil, pl_subescapular = nil, pl_suprailiaco = nil, factor= nil)
  @nombre = nombre
  @peso = peso
  @talla = talla
  @edad = edad
  @sexo = sexo
  @cir_cintura = cir_cintura
  @cir_cadera = cir_cadera
  @cir_brazo = cir_brazo
  @pl_tricipital = pl_tricipital
  @pl_bicipital = pl_bicipital
  @pl_subescapular = pl_subescapular
  @pl_suprailiaco = pl_suprailiaco
  @factor = factor
  @imc = self.calcular_imc
end

Instance Attribute Details

#cir_brazoObject (readonly)

Returns the value of attribute cir_brazo.



4
5
6
# File 'lib/practica6/registro.rb', line 4

def cir_brazo
  @cir_brazo
end

#cir_caderaObject (readonly)

Returns the value of attribute cir_cadera.



4
5
6
# File 'lib/practica6/registro.rb', line 4

def cir_cadera
  @cir_cadera
end

#cir_cinturaObject (readonly)

Returns the value of attribute cir_cintura.



4
5
6
# File 'lib/practica6/registro.rb', line 4

def cir_cintura
  @cir_cintura
end

#edadObject (readonly)

Returns the value of attribute edad.



4
5
6
# File 'lib/practica6/registro.rb', line 4

def edad
  @edad
end

#factorObject (readonly)

Returns the value of attribute factor.



4
5
6
# File 'lib/practica6/registro.rb', line 4

def factor
  @factor
end

#imcObject (readonly)

Returns the value of attribute imc.



4
5
6
# File 'lib/practica6/registro.rb', line 4

def imc
  @imc
end

#nombreObject (readonly)

Returns the value of attribute nombre.



4
5
6
# File 'lib/practica6/registro.rb', line 4

def nombre
  @nombre
end

#pesoObject (readonly)

Returns the value of attribute peso.



4
5
6
# File 'lib/practica6/registro.rb', line 4

def peso
  @peso
end

#pl_bicipitalObject (readonly)

Returns the value of attribute pl_bicipital.



4
5
6
# File 'lib/practica6/registro.rb', line 4

def pl_bicipital
  @pl_bicipital
end

#pl_subescapularObject (readonly)

Returns the value of attribute pl_subescapular.



4
5
6
# File 'lib/practica6/registro.rb', line 4

def pl_subescapular
  @pl_subescapular
end

#pl_suprailiacoObject (readonly)

Returns the value of attribute pl_suprailiaco.



4
5
6
# File 'lib/practica6/registro.rb', line 4

def pl_suprailiaco
  @pl_suprailiaco
end

#pl_tricipitalObject (readonly)

Returns the value of attribute pl_tricipital.



4
5
6
# File 'lib/practica6/registro.rb', line 4

def pl_tricipital
  @pl_tricipital
end

#sexoObject (readonly)

Returns the value of attribute sexo.



4
5
6
# File 'lib/practica6/registro.rb', line 4

def sexo
  @sexo
end

#tallaObject (readonly)

Returns the value of attribute talla.



4
5
6
# File 'lib/practica6/registro.rb', line 4

def talla
  @talla
end

Instance Method Details

#<=>(anOther) ⇒ Number

Returns retorna -1,0 o 1.

Parameters:

  • recibe (Registro)

    como parámetro otra instancia de la clase Registro con la que va a compararse

Returns:

  • (Number)

    retorna -1,0 o 1.



8
9
10
# File 'lib/practica6/registro.rb', line 8

def <=>(anOther)
  @imc <=> anOther.imc
end

#calcular_imcNumber

Returns retorna el índice de masa corporal.

Returns:

  • (Number)

    retorna el índice de masa corporal.



43
44
45
46
# File 'lib/practica6/registro.rb', line 43

def calcular_imc
  imc = @peso / (@talla * @talla)
  imc = (imc * 100).round() / 100.0
end

#calcular_media(datos_) ⇒ Number

Returns calcula la media de los datos.

Returns:

  • (Number)

    calcula la media de los datos.



111
112
113
114
115
116
117
118
# File 'lib/practica6/registro.rb', line 111

def calcular_media(datos_)

  mean = 0.0
  datos_.each{ |x| mean = mean + x }
  mean /= datos_.length
  mean = ( mean * 100).round() / 100.0

end

#calcular_pctj_grasaNumber

Returns retorna el porcentaje de grasas.

Returns:

  • (Number)

    retorna el porcentaje de grasas.



49
50
51
52
# File 'lib/practica6/registro.rb', line 49

def calcular_pctj_grasa
  pctj_grasa = (1.2 * self.calcular_imc()) + (0.23 * @edad) - (10.9 * @sexo) - 5.4
  pctj_grasa = (pctj_grasa*100).round() / 100.0
end

#calcular_rccNumber

Returns retorna el rcc.

Returns:

  • (Number)

    retorna el rcc.



55
56
57
58
59
60
# File 'lib/practica6/registro.rb', line 55

def calcular_rcc
  cir_cintura = calcular_media(@cir_cintura)
  cir_cadera = calcular_media(@cir_cadera)
  rcc = cir_cintura / cir_cadera
  rcc = (rcc * 100).round() / 100.0
end

#evaluar_imcString

Returns retorna una cadena donde se evalúa el índice de masa corporal.

Returns:

  • (String)

    retorna una cadena donde se evalúa el índice de masa corporal.



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/practica6/registro.rb', line 63

def evaluar_imc

  imc = calcular_imc()

  if (imc < 18.5)
    puts "IMG menor que 18.5, según la OMS bajo peso, popularmente asociamos a las personas con este índice como Aceptables."
  elsif (18.5 < imc && imc < 24.9)
    puts "IMC entre 18.5 y 24.5, según la OMS un índice adecuado, popularmente asociamos a las personas con este índice como Aceptables."
  elsif (25.0 < imc && imc < 29.9)
    puts "IMC entre 25.0 y 29.9, según la OMS un índice de sobrepeso, popularmente asociamos a las personas con este índice como con sobrepeso."
  elsif (30.0 < imc && imc < 34.9)
    puts "IMC entre 30.0 y 34.9, según la OMS un índice de Obesidad grado 1, popularmente asociamos a las personas con este índice como obesas."
  elsif (35.0 < imc && imc < 39.9)
    puts "IMC entre 35.0 y 39.9, según la OMS un índice de Obesidad grado 2, popularmente asociamos a las personas con este índice como obesas."
  elsif (imc > 40)
    puts "IMC mayor de 40, según la OMS un índice de Obesidad grado 2, popularmente asociamos a las personas con este índice como obesas."
  end

end

#evaluar_rccString

Returns retorna una cadena donde se evalúa el rcc.

Returns:

  • (String)

    retorna una cadena donde se evalúa el rcc.



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

def evaluar_rcc

  rcc = calcular_rcc()

  case @sexo
  when 0
    if (0.72 < rcc && rcc < 0.75)
        puts "RCC entre 0.72 y 0.75 conlleva un riesgo bajo para una mujer"
    elsif (0.78 < rcc && rcc  < 0.82)
        puts "RCC entre 0.78 y 0.82 conlleva un riesgo moderado para una mujer"
    elsif (rcc > 0.82)
        puts "RCC mayor que 0.82, conlleva un riesgo alto para una mujer"
    end
  when 1
    if (0.83 < rcc && rcc < 0.88)
      puts "RCC entre 0.83 y 0.88 conlleva un riesgo bajo para un hombre"
    elsif (0.88 < rcc && rcc < 0.95)
      puts "RCC entre 0.88 y 0.95 conlleva un riesgo moderado para un hombre"
    elsif (0.95 < rcc && rcc < 1.01)
      puts "RCC entre 0.95 y 1.01 conlleva un riesgo alto para un hombre"
    elsif (rcc > 1.01)
      puts "RCC mayor de 1.01 conlleva un riesgo muy alto para un hombre"
    end
  end
end

#mostrar_infoString

Returns muestra la información del registro.

Returns:

  • (String)

    muestra la información del registro.



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
156
157
158
159
160
161
162
163
164
165
# File 'lib/practica6/registro.rb', line 121

def mostrar_info()

  print("Nombre: ", @nombre)
  puts " "
  print("Peso: ", @peso)
  puts " "
  print("Talla: ", @talla)
  puts " "
  print("Edad: ", @edad)
  puts " "
  print("Sexo: ", @nombre)
  puts " "

  print("Circunferencia de la cintura: ", @cir_cintura)
  puts " "
  puts "Media: %0.2f" %[calcular_media(@cir_cintura)]

  print("Circunferencia de la cadera: ", @cir_cadera)
  puts " "
  puts "Media: %0.2f" %[calcular_media(@cir_cadera)]

  print("Circunferencia del brazo: ", @cir_brazo)
  puts " "
  puts "Media: %0.2f" %[calcular_media(@cir_brazo)]

  print("Pliegue tricipital ", @pl_tricipital)
  puts " "
  puts "Media: %0.2f" %[calcular_media(@pl_tricipital)]

  print("Pliegue bicicipital ", @pl_bicipital)
  puts " "
  puts "Media: %0.2f" %[calcular_media(@pl_bicipital)]

  print("Pliegue subescapular ", @pl_subescapular)
  puts " "
  puts "Media: %0.2f" %[calcular_media(@pl_subescapular)]

  print("Pliegue suprailiaco ", @pl_suprailiaco)
  puts " "
  puts "Media: %0.2f" %[calcular_media(@pl_suprailiaco)]

  evaluar_imc()
  evaluar_rcc()

end