Alimento 0.1.0 → 30.30.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,321 +0,0 @@
1
- require "Alimento/alimentos.rb"
2
- require 'benchmark'
3
- include Benchmark
4
-
5
-
6
- class Array
7
- NUM_ALIMENTOS = 5
8
- def burbuja_for (array)
9
- #n=a.length
10
- a = Array.new
11
- a = array
12
- for i in 0...a.length-1
13
- for j in 0...a.length-i-1
14
- if a[j]>a[j+1]
15
- temp=a[j]
16
- a[j]=a[j+1]
17
- a[j+1]=temp
18
- end
19
- end
20
- end
21
- return a
22
- end
23
-
24
-
25
- def burbuja_each (a)
26
- tmp = 0
27
- array = Array.new
28
- array = a
29
- # nuevo = new.Array
30
- #array = array2.split(" ")
31
- (0..array.length-1).each do |i|
32
- (0..array.length-2).each do |j|
33
- if(array[j] > array[j+1])
34
- tmp = array[j]
35
- array[j] = array[j+1]
36
- array[j+1] = tmp
37
- end
38
- end
39
- end
40
- return array;
41
- end
42
- end
43
-
44
-
45
- class Ordenacion
46
-
47
- NUM_ALIMENTOS = 5
48
-
49
- def self.description
50
- "clase que muestra informacion de nutrientes de un Alimento"
51
- end
52
-
53
-
54
-
55
-
56
- attr_accessor :huevo_frito, :leche_de_vaca ,:yogurt ,:cerdo ,:ternera, :pollo ,:bacalao, :atun ,:salmon, :aceita_de_oliva ,:chocolate ,:azucar ,:arroz ,:lentejas, :papas, :tomate, :cebolla ,:manzana, :platano
57
- attr_accessor :alimentos
58
- def initialize ()
59
-
60
- @huevo_frito= ['Huevo',14.1,0.0,19.5]
61
- @leche_de_vaca = ['Leche de vaca',3.3,4.8,3.2]
62
- @yogurt = ['Yogurt',3.8,4.9,3.8]
63
- @cerdo = ['Cerdo',21.5,0.0,6.3]
64
- @ternera = ['Ternera',21.1,0.0,3.1]
65
- @pollo= ['Pollo',20.6,0.0,5.6]
66
- @bacalao = ['Bacalao',17.7,0.0,0.4]
67
- @atun = ['Atun',21.5,0.0,15.5]
68
- @salmon = ['Salmon',19.9,0.0,13.6]
69
- @aceita_de_oliva = ['Aceite de oliva',0.0,0.2,99.6]
70
- @chocolate = ['Chocolate',5.3,47.0,30.0]
71
- @azucar = ['Azucar',0.0,99.8,0.0]
72
- @arroz = ['Arroz',6.8,77.7,0.6]
73
- @lentejas = ['Lentejas',23.5,52.0,1.4]
74
- @papas = ['Papas',2.0,15.4,0.1]
75
- @tomate = ['Tomate',1.0,3.5,0.2]
76
- @cebolla = ['Cebolla',1.3,5.8,0.3]
77
- @manzana = ['Manzana',0.3,12.4,0.4]
78
- @platano = ['Platano',1.2,21.4,0.2]
79
-
80
- @alimentos = [@huevo_frito,@leche_de_vaca,@yogurt,@cerdo,@ternera,@pollo,@bacalao,@atun,@salmon,@aceita_de_oliva,@chocolate,@azucar,@arroz,@lentejas,@papas,@tomate,@cebolla,@manzana,@platano]
81
- @alimentor = [@huevo_frito,@leche_de_vaca,@yogurt,@cerdo,@ternera,@pollo,@bacalao]
82
- @prueba_extrema = [999999,88888888,777777777,6666666,5555555,4444444,33333,22222,11111]
83
- @prueba_extrema2 = [9,8,7,6,5,4,3,2,1]
84
- end
85
-
86
- def calculo_calorias (alimento,cantidad)
87
-
88
- #a = /\p{N}/.match (cantidad)
89
- number = cantidad.match(/\d+/)[0]
90
- #puts (number)
91
-
92
- result = []
93
-
94
- #@alimentor.each_with_index do |alimento,i|
95
- if (number.to_f > 3.0)
96
- result = (alimento[1]*4.0) + (alimento[2]*4.0) + (alimento[3]*9.0)
97
- else
98
- result = (alimento[1]*4.0*number.to_f) + (alimento[2]*4.0*number.to_f) + (alimento[3]*9.0*number.to_f)
99
- #result.to_s
100
- end
101
- #end
102
- return (result)
103
-
104
- end
105
-
106
-
107
-
108
-
109
- def to_s
110
-
111
- i = 0
112
- j = 0
113
-
114
- r = []
115
- #each_byte
116
- result = ""
117
- #a = [[11111,222222,33333333],[4444,5555,6666],[7777,88888,99999]]
118
- for i in 0...@alimentos.length-1
119
- for j in 0...@alimentos.length-1
120
-
121
- result << "#{@alimentos[i][j]}"
122
- result << " "
123
-
124
-
125
- end
126
- result << "\n"
127
- end
128
- return (result)
129
-
130
- end
131
-
132
- end #class
133
- #@a = []
134
-
135
- #################################################3
136
-
137
-
138
-
139
-
140
-
141
- #class Plato < Ordenacion
142
- class Plato
143
- attr_accessor :name, :vegetales, :frutas, :granos_integrales, :proteinas_saludables, :aceites, :aguas, :compo_nutri
144
- attr_accessor :agua, :aceite, :proteina, :cereal, :vegetal, :fruta
145
- attr_accessor :busqueda, :to_s
146
- def initialize(name, &block)
147
- #super (huevo_frito)
148
- @name = name
149
- @vegetales = []
150
- @frutas = []
151
- @granos_integrales = []
152
- @proteinas_saludables = []
153
- @aceites = []
154
- @aguas = []
155
- @compo_nutri = []
156
- @sumatorio = 0.0
157
-
158
-
159
- # super(huevo_frito,leche_de_vaca,yogurt,cerdo,ternera,pollo,bacalao,atun,salmon,aceita_de_oliva,chocolate,azucar,arroz,lentejas,papas,tomate,cebolla,manzana,platano)
160
- #super(alimentos)
161
-
162
- if block_given?
163
- if block.arity == 1
164
- yield self
165
- else
166
- instance_eval(&block)
167
- end
168
- end
169
- end
170
-
171
- ###################################################################################
172
- #@alimentos es de la clase ordenacion
173
- #elemento = alimento
174
- #arreglar
175
-
176
- def busqueda(ingrediente,cantidad)
177
- @datos = Ordenacion.new()
178
-
179
- final = ""
180
- retorna = ""
181
- salida = ""
182
- @datos.alimentos.each_with_index do |alimento, index|
183
-
184
- if (ingrediente == alimento[0])
185
- #puts (alimento[0])
186
- result = @datos.calculo_calorias(alimento,cantidad)
187
- @sumatorio += result
188
- #puts (@sumatorio)
189
- a = alimento[0].to_s
190
- b = alimento[1].to_s
191
- c = alimento[2].to_s
192
- d = alimento[3].to_s
193
- e = result.to_s
194
- retorna <<" "<<a.ljust(15) <<" "<< b.ljust(8) <<" "<< c.ljust(9) <<" "<< d.ljust(5) <<" "<< e.ljust(25) << " "
195
- end
196
- salida = retorna
197
- end
198
- final = salida
199
- final
200
-
201
- end
202
-
203
- def to_s
204
- output = @name
205
- output << "\n#{'=' * @name.size}\n"
206
- output << "Composicion Nutricional:\n"
207
- output << " glúcidos proteı́nas lı́pidos valor energético\n"
208
-
209
- a = []
210
- b = []
211
- #p (@compo_nutri)
212
- @compo_nutri.each_with_index do |ingrediente,index|
213
-
214
-
215
- output << busqueda(ingrediente[0],ingrediente[1]).to_s
216
- #p (ingrediente[0])
217
- #p (ingrediente[1])
218
- output << "\n"
219
-
220
- end
221
- output << "Valor energético total " << @sumatorio.to_s
222
-
223
- output
224
- end
225
-
226
- ################################################################################
227
-
228
- def vegetal(text, options = {})
229
- alimento = [text]
230
- alimento <<"(#{options[:porcion]})" if options[:porcion]
231
- @compo_nutri << alimento
232
- end
233
-
234
- def fruta(text, options = {})
235
- alimento = [text]
236
- alimento <<"(#{options[:gramos]})" if options[:gramos]
237
- @compo_nutri << alimento
238
- end
239
-
240
- def cereal(text, options = {})
241
- alimento = [text]
242
- alimento <<"(#{options[:porcion]})" if options[:porcion]
243
- @compo_nutri << alimento
244
- end
245
-
246
- def proteina(text, options = {})
247
- alimento = [text]
248
- alimento <<"(#{options[:porcion]})" if options[:porcion]
249
- @compo_nutri << alimento
250
- end
251
-
252
- def aceite(text, options = {})
253
- alimento = [text]
254
- alimento <<"(#{options[:porcion]})" if options[:porcion]
255
- @compo_nutri << alimento
256
- end
257
-
258
- def agua(text, options = {})
259
- alimento = [text]
260
- alimento <<"(#{[options[:litros]]})" if options[:litros]
261
- @compo_nutri << alimento
262
- end
263
- end
264
-
265
- lentejas_arroz = Plato.new("Lentejas con arroz, salsa de tomate, huevo y platano a la plancha") do
266
- vegetal "Tomate",:porcion => "2 piezas pequeñas"
267
- fruta "Platano",:gramos => 20
268
- cereal "Arroz",:porcion => "1 taza"
269
- proteina "Lentejas",:porcion => "1/2 cucharon"
270
- aceite "Aceite de oliva",:porcion => "1/2 cucharada"
271
- proteina "Huevo",:porcion => "1 pieza"
272
- end
273
- puts lentejas_arroz
274
- #puts lentejas_arroz.to_s
275
- #ya funciona la otra clase
276
-
277
-
278
-
279
-
280
-
281
-
282
-
283
-
284
-
285
-
286
-
287
-
288
-
289
-
290
-
291
-
292
- # @prueba = Ordenacion.new
293
- # puts ('************* ELEMENTOS SIN ORDENAR *********************************')
294
- #
295
- # @a = @prueba.calculo_calorias
296
- # #@a.to_a
297
- # p(@a)
298
- #
299
- # puts ('**************** ELEMENTOS ORDENADOS CON BUCLE FOR ********************')
300
- # @b = @prueba.burbuja_for(@a)
301
- # p(@b)
302
- #
303
- # puts ('************** ELEMENTOS ORDENADOS CON BUCLE EACH ******************************')
304
- # @b = @prueba.burbuja_each(@a)
305
- # p(@b)
306
- #
307
- # puts ('***************** ELEMENTOS ORDENADOS METODO SORT ****************')
308
- # @b = @a.sort
309
- # p(@b)
310
- #
311
- # # @texto = @prueba.to_s
312
- # # puts(@texto)
313
- #
314
- #
315
- #
316
- #
317
- # Benchmark.benchmark(CAPTION, 7, FORMAT, ">total:", ">avg:") do |x|
318
- # tf = x.report("con bucle for") { @prueba.burbuja_for(@a) }
319
- # tf = x.report("con bucle each") { @prueba.burbuja_each(@a) }
320
- # tf = x.report("con metodo sort") { @a.sort }
321
- # end
@@ -1,29 +0,0 @@
1
- require "Alimento/alimentos.rb"
2
-
3
-
4
- class Tipo_alimento < Alimentos
5
-
6
- def self.description
7
- "clase que representa el tipo de aliment"
8
- end
9
-
10
- attr_accessor :tipo_alimento
11
-
12
- def initialize (nombre_ali,proteinas,glucidos,lipidos,tipo_ali)
13
- super(nombre_ali,proteinas,glucidos,lipidos)
14
- @tipo_ali = tipo_ali
15
- end
16
- def to_s
17
- s = "" #encadenamiento (chaining)
18
- s << "#{@tipo_ali}\n"
19
- s << super.to_s
20
- s
21
- end
22
-
23
-
24
-
25
- end
26
-
27
-
28
- # @tipo_ali_1 = Tipo_alimento.new("huevo frito",14.1,0.0,19.5,"huevos lacteos y helados")
29
- # puts (@tipo_ali_1.to_s)