Class: Alimento

Inherits:
Object
  • Object
show all
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

Alimento_concreto

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#glucidosObject (readonly)

Returns the value of attribute glucidos.



9
10
11
# File 'lib/P06/alimento.rb', line 9

def glucidos
  @glucidos
end

#grasasObject (readonly)

Returns the value of attribute grasas.



9
10
11
# File 'lib/P06/alimento.rb', line 9

def grasas
  @grasas
end

#nombreObject (readonly)

Returns the value of attribute nombre.



9
10
11
# File 'lib/P06/alimento.rb', line 9

def nombre
  @nombre
end

#proteinasObject (readonly)

Returns the value of attribute proteinas.



9
10
11
# File 'lib/P06/alimento.rb', line 9

def proteinas
  @proteinas
end

Instance Method Details

#AIBCObject

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

#caloriasObject

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

#formateadoObject

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_sObject

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