class Alimento
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.
Attributes
glucidos[R]
grasas[R]
nombre[R]
proteinas[R]
Public Class Methods
new(nombre,proteinas,glucidos,grasas,individuos)
click to toggle source
Se asigna el nombre del alimento, las proteinas, los glucidos y las grasas.
# 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
Public Instance Methods
AIBC()
click to toggle source
Este metodo me calcula el AIBC
. Se ha aplicado la programacion funcional.
# 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()
click to toggle source
Este metodo calcula las calorias del alimento según las proteinas, los glucidos y las grasas del alimento.
# File lib/P06/alimento.rb, line 36 def calorias @cal = (4*@proteinas)+(4*@glucidos)+(9*@grasas) end
formateado()
click to toggle source
Este metodo muestra al alimento formateado.
# 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)
click to toggle source
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.
# File lib/P06/alimento.rb, line 43 def neg(pos,gluc) pos < 0 ? gluc[0] : gluc[pos] end
to_s()
click to toggle source
Este es el metodo to_s
que muestra al alimento por pantalla.
# 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