Class: Alimento
- Inherits:
-
Object
- Object
- Alimento
- Defined in:
- lib/P06/alimento.rb
Overview
Esta clase permite representar a un alimento con sus porteinas, glucidos y grasas correspondientes. Tambien se puede sacar las calorias de los alimentos con las proteinas, glucidos y grasas.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#glucidos ⇒ Object
readonly
Returns the value of attribute glucidos.
-
#grasas ⇒ Object
readonly
Returns the value of attribute grasas.
-
#nombre ⇒ Object
readonly
Returns the value of attribute nombre.
-
#proteinas ⇒ Object
readonly
Returns the value of attribute proteinas.
Instance Method Summary collapse
-
#AIBC ⇒ Object
Este metodo me calcula el AIBC.
-
#calorias ⇒ Object
Este metodo calcula las calorias del alimento según las proteinas, los glucidos y las grasas del alimento.
-
#formateado ⇒ Object
Este metodo muestra al alimento formateado.
-
#initialize(nombre, proteinas, glucidos, grasas, individuos) ⇒ Alimento
constructor
Se asigna el nombre del alimento, las proteinas, los glucidos y las grasas.
-
#neg(pos, gluc) ⇒ Object
Este metodo lo que hace es devolverme el valor correspondiente dependiendo de la posicion en la que me encuentre en el vector, esto lo hago para que no me acceda a la posicion -1.
-
#to_s ⇒ Object
Este es el metodo to_s que muestra al alimento por pantalla.
Constructor Details
#initialize(nombre, proteinas, glucidos, grasas, individuos) ⇒ Alimento
Se asigna el nombre del alimento, las proteinas, los glucidos y las grasas.
13 14 15 16 17 18 19 20 |
# File 'lib/P06/alimento.rb', line 13 def initialize(nombre,proteinas,glucidos,grasas,individuos) @nombre = nombre @proteinas = proteinas @glucidos = glucidos @grasas = grasas @cal @individuos = individuos end |
Instance Attribute Details
#glucidos ⇒ Object (readonly)
Returns the value of attribute glucidos.
9 10 11 |
# File 'lib/P06/alimento.rb', line 9 def glucidos @glucidos end |
#grasas ⇒ Object (readonly)
Returns the value of attribute grasas.
9 10 11 |
# File 'lib/P06/alimento.rb', line 9 def grasas @grasas end |
#nombre ⇒ Object (readonly)
Returns the value of attribute nombre.
9 10 11 |
# File 'lib/P06/alimento.rb', line 9 def nombre @nombre end |
#proteinas ⇒ Object (readonly)
Returns the value of attribute proteinas.
9 10 11 |
# File 'lib/P06/alimento.rb', line 9 def proteinas @proteinas end |
Instance Method Details
#AIBC ⇒ Object
Este metodo me calcula el AIBC. Se ha aplicado la programacion funcional.
49 50 51 |
# File 'lib/P06/alimento.rb', line 49 def AIBC @individuos.map{|i| g=i.first; pos=-1; i.map{|j| prev=neg(pos,i); pos=pos+1; (((j-g)+(prev-g))*2.5)}.reduce(:+).round(2)} end |
#calorias ⇒ Object
Este metodo calcula las calorias del alimento según las proteinas, los glucidos y las grasas del alimento.
36 37 38 |
# File 'lib/P06/alimento.rb', line 36 def calorias @cal = (4*@proteinas)+(4*@glucidos)+(9*@grasas) end |
#formateado ⇒ Object
Este metodo muestra al alimento formateado.
28 29 30 31 |
# File 'lib/P06/alimento.rb', line 28 def formateado print "Nombre: ",@nombre,"\t","Proteínas: ",@proteinas,"\t","Glúcidos: ",@glucidos,"\t","Grasas: ",@grasas puts end |
#neg(pos, gluc) ⇒ Object
Este metodo lo que hace es devolverme el valor correspondiente dependiendo de la posicion en la que me encuentre en el vector, esto lo hago para que no me acceda a la posicion -1.
43 44 45 |
# File 'lib/P06/alimento.rb', line 43 def neg(pos,gluc) pos < 0 ? gluc[0] : gluc[pos] end |
#to_s ⇒ Object
Este es el metodo to_s que muestra al alimento por pantalla.
23 24 25 |
# File 'lib/P06/alimento.rb', line 23 def to_s "El alimento #{@nombre} tiene #{@proteinas} gramos de proteínas, #{@glucidos} gramos de glúcidos, #{@grasas} gramos de lípidos y #{calorias} calorías" end |