prct06_alu0100948097 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,194 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Top Level Namespace
8
+
9
+ &mdash; Documentation by YARD 0.9.12
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ pathId = "";
19
+ relpath = '';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="class_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="_index.html">Index</a> &raquo;
40
+
41
+
42
+ <span class="title">Top Level Namespace</span>
43
+
44
+ </div>
45
+
46
+ <div id="search">
47
+
48
+ <a class="full_list_link" id="class_list_link"
49
+ href="class_list.html">
50
+
51
+ <svg width="24" height="24">
52
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
+ </svg>
56
+ </a>
57
+
58
+ </div>
59
+ <div class="clear"></div>
60
+ </div>
61
+
62
+ <div id="content"><h1>Top Level Namespace
63
+
64
+
65
+
66
+ </h1>
67
+ <div class="box_info">
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+ </div>
80
+
81
+ <h2>Defined Under Namespace</h2>
82
+ <p class="children">
83
+
84
+
85
+ <strong class="modules">Modules:</strong> <span class='object_link'><a href="Prct06.html" title="Prct06 (module)">Prct06</a></span>
86
+
87
+
88
+
89
+ <strong class="classes">Classes:</strong> <span class='object_link'><a href="Alimentos.html" title="Alimentos (class)">Alimentos</a></span>, <span class='object_link'><a href="Array.html" title="Array (class)">Array</a></span>, <span class='object_link'><a href="G_alimentos.html" title="G_alimentos (class)">G_alimentos</a></span>, <span class='object_link'><a href="List.html" title="List (class)">List</a></span>, <span class='object_link'><a href="Node.html" title="Node (class)">Node</a></span>
90
+
91
+
92
+ </p>
93
+
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
+ <h2>
102
+ Instance Method Summary
103
+ <small><a href="#" class="summary_toggle">collapse</a></small>
104
+ </h2>
105
+
106
+ <ul class="summary">
107
+
108
+ <li class="public ">
109
+ <span class="summary_signature">
110
+
111
+ <a href="top-level-namespace.html#<=>-instance_method" title="#&lt;=&gt; (instance method)">#<strong>&lt;=&gt;</strong>(other) &#x21d2; Object </a>
112
+
113
+
114
+
115
+ </span>
116
+
117
+
118
+
119
+
120
+
121
+
122
+
123
+
124
+
125
+ <span class="summary_desc"><div class='inline'>
126
+ <p>Método para definir la forma en la que comparar nodos.</p>
127
+ </div></span>
128
+
129
+ </li>
130
+
131
+
132
+ </ul>
133
+
134
+
135
+
136
+
137
+ <div id="instance_method_details" class="method_details_list">
138
+ <h2>Instance Method Details</h2>
139
+
140
+
141
+ <div class="method_details first">
142
+ <h3 class="signature first" id="<=>-instance_method">
143
+
144
+ #<strong>&lt;=&gt;</strong>(other) &#x21d2; <tt>Object</tt>
145
+
146
+
147
+
148
+
149
+
150
+ </h3><div class="docstring">
151
+ <div class="discussion">
152
+
153
+ <p>Método para definir la forma en la que comparar nodos</p>
154
+
155
+
156
+ </div>
157
+ </div>
158
+ <div class="tags">
159
+
160
+
161
+ </div><table class="source_code">
162
+ <tr>
163
+ <td>
164
+ <pre class="lines">
165
+
166
+
167
+ 12
168
+ 13
169
+ 14</pre>
170
+ </td>
171
+ <td>
172
+ <pre class="code"><span class="info file"># File 'lib/prct06/nodo.rb', line 12</span>
173
+
174
+ <span class='kw'>def</span> <span class='op'>&lt;=&gt;</span><span class='lparen'>(</span><span class='id identifier rubyid_other'>other</span><span class='rparen'>)</span>
175
+ <span class='id identifier rubyid_value'>value</span> <span class='op'>&lt;=&gt;</span> <span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span>
176
+ <span class='kw'>end</span></pre>
177
+ </td>
178
+ </tr>
179
+ </table>
180
+ </div>
181
+
182
+ </div>
183
+
184
+ </div>
185
+
186
+ <div id="footer">
187
+ Generated on Tue Nov 28 12:07:27 2017 by
188
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
189
+ 0.9.12 (ruby-2.4.2).
190
+ </div>
191
+
192
+ </div>
193
+ </body>
194
+ </html>
data/lib/.DS_Store ADDED
Binary file
data/lib/prct06.rb ADDED
@@ -0,0 +1,11 @@
1
+ require "prct06/version"
2
+ require "prct06/alimentos"
3
+ require "prct06/nodo"
4
+ require "prct06/lista"
5
+ require "prct06/array"
6
+ require "prct06/receta"
7
+
8
+ module Prct06
9
+ # Your code goes here...
10
+ end
11
+
@@ -0,0 +1,91 @@
1
+ # encoding: utf-8
2
+ # Esta clase permite representar alimentos con sus distintos macronutrientres.
3
+ # Su desarrollo ha sido dirigido por pruebas (TDD).
4
+ # Se han incluido el mixin Comparable
5
+ #
6
+ # Author:: Sergio Ferrera de Diego (mailto:sergioferrera1296@gmail.com)
7
+ # Copyright:: Cretive Commons
8
+ # License:: Distributes under the same terms as Ruby
9
+
10
+ class Alimentos
11
+
12
+ include Comparable
13
+
14
+ attr_reader :alimento, :proteinas, :glucidos, :grasas
15
+
16
+ attr_accessor :g
17
+
18
+ # Método para definir la forma en la que comparar instancias de la clase
19
+ def <=>(other)
20
+ valor_ener <=> other.valor_ener
21
+ end
22
+
23
+ def == (other)
24
+ alimento == other.alimento
25
+ end
26
+
27
+ # Método para asignar los datos del alimento
28
+ #
29
+ # @param alimento nombre del alimento
30
+ # @param proteinas cantidad de proteinas del alimento
31
+ # @param glucidos cantidad de glucidos del alimento
32
+ # @param grasas cantidad de grasas del alimento
33
+ def initialize(alimento,proteinas,glucidos,grasas)
34
+ @alimento = alimento
35
+ @proteinas = proteinas
36
+ @glucidos = glucidos
37
+ @grasas = grasas
38
+ end
39
+
40
+ # Método para definir la forma en la que mostrar los datos del alimento
41
+ def to_s
42
+ "(#{@alimento}, #{@proteinas}, #{@glucidos}, #{@grasas})"
43
+ end
44
+
45
+ # Método para calcular el valor energetico del alimento
46
+ def valor_ener
47
+ (@glucidos*4) + (@grasas*9) + (@proteinas*4)
48
+ end
49
+
50
+ # Método para calcular el Área incremental bajo la curva (AIBC) de un alimento o glucosa, dependiendo de que se le pase por parametro
51
+ #
52
+ # @param mediciones vector que contiene mediciones de glucosa o de un alimento
53
+ def AIBC
54
+ aibc=Array.new
55
+ g.each do |x|
56
+ almacen=Array.new
57
+ vec_2=(1..x.length-1).to_a.zip(x.drop(1))
58
+ vec_2.each{ |val| almacen<<(((val[1]-x[0]+x[val[0]-1]-x[0])/2)*5).round(2)}
59
+ aibc<<(almacen.reduce :+)
60
+ end
61
+ aibc
62
+ end
63
+
64
+ end
65
+
66
+ # Esta clase permite representar los grupos de alimento
67
+ # de un alimento representado por la clase Alimentos.
68
+ # Su desarrollo ha sido dirigido por pruebas (TDD).
69
+
70
+ class G_alimentos < Alimentos
71
+
72
+ attr_reader :grupo
73
+
74
+ # Método para asignar los datos del alimento
75
+ #
76
+ # @param alimento nombre del alimento
77
+ # @param proteinas cantidad de proteinas del alimento
78
+ # @param glucidos cantidad de glucidos del alimento
79
+ # @param grasas cantidad de grasas del alimento
80
+ # @param grupo grupo de alimentos al que pertenece el alimento
81
+ def initialize(alimento,proteinas,glucidos,grasas,grupo)
82
+ super(alimento,proteinas,glucidos,grasas)
83
+ @grupo = grupo
84
+ end
85
+
86
+ # Método para definir la forma en la que mostrar los datos del alimento con su respectivo grupo
87
+ def to_s
88
+ "(#{@alimento}, #{@proteinas}, #{@glucidos}, #{@grasas}, [#{@grupo}])"
89
+ end
90
+
91
+ end
@@ -0,0 +1,47 @@
1
+ # encoding: utf-8
2
+ # Se definen nuevos métodos para la clase Array por defecto
3
+ # Su desarrollo ha sido dirigido por pruebas (TDD).
4
+ #
5
+ # Author:: Sergio Ferrera de Diego (mailto:sergioferrera1296@gmail.com)
6
+ # Copyright:: Cretive Commons
7
+ # License:: Distributes under the same terms as Ruby
8
+ class Array
9
+
10
+ # Método para ordenador por inserción un array mediante bucles for
11
+ def ordenar_for
12
+ ordenado=Array.new
13
+ ordenado << self[0]
14
+ for i in (1..self.length-1)
15
+ for j in (0..ordenado.length-1)
16
+ if self[i]>=ordenado[j]
17
+ ordenado.insert(j,self[i])
18
+ break
19
+ end
20
+ if j==ordenado.length-1
21
+ ordenado << self[i]
22
+ end
23
+ end
24
+ end
25
+ ordenado
26
+ end
27
+
28
+ # Método para ordenador por inserción un array mediante método each
29
+ def ordenar_each
30
+ ordenado=Array.new
31
+ ordenado << self[0]
32
+ self.drop(1).each do |x|
33
+ ordenado.each_with_index do |y,i|
34
+ if x>=y
35
+ ordenado.insert(i,x)
36
+ break
37
+ end
38
+ if i==ordenado.length-1
39
+ ordenado << x
40
+ break
41
+ end
42
+ end
43
+ end
44
+ ordenado
45
+ end
46
+
47
+ end
@@ -0,0 +1,141 @@
1
+ # encoding: utf-8
2
+ # Esta clase permite representar listas doblemente enlazadas.
3
+ # Su desarrollo ha sido dirigido por pruebas (TDD).
4
+ # Se han incluido el mixin Enumerable
5
+ #
6
+ # Author:: Sergio Ferrera de Diego (mailto:sergioferrera1296@gmail.com)
7
+ # Copyright:: Cretive Commons
8
+ # License:: Distributes under the same terms as Ruby
9
+
10
+ class List
11
+
12
+ include Enumerable
13
+
14
+ attr_reader :cola, :cabeza, :tam
15
+
16
+ # Método para asignar los datos de la lista
17
+ #
18
+ # @param cola cola de la lista
19
+ # @param cabeza cabeza de la lista
20
+ # @param tam tamaño de la lista
21
+ def initialize
22
+
23
+ @cola=nil
24
+ @cabeza=nil
25
+ @tam=0
26
+
27
+ end
28
+
29
+ # Método para definir como recorrer los elementos de la lista
30
+ def each
31
+ yield temp = @cabeza
32
+ if tam!=0
33
+ for i in (1 ..tam-1)
34
+ yield temp = temp.prev
35
+ end
36
+ end
37
+ end
38
+
39
+ # Método para introducir un nuevo elemento en la cola de lista
40
+ #
41
+ # @param valor elemento a introducir
42
+ def introducir_en_cola!(valor)
43
+
44
+ if(@tam==0)
45
+ @cola=Node.new(valor,nil,nil)
46
+ @cabeza= cola
47
+
48
+ else
49
+ @cola.prev=Node.new(valor,cola,nil)
50
+ @cola.prev.next= cola
51
+ @cola= cola.prev
52
+
53
+ end
54
+
55
+ @tam+=1
56
+
57
+ end
58
+
59
+ # Método para introducir un nuevo elemento en la cabeza de lista
60
+ #
61
+ # @param valor elemento a introducir
62
+ def introducir_en_cabeza!(valor)
63
+
64
+ if(@tam==0)
65
+ @cabeza=Node.new(valor,nil,nil)
66
+ @cola= cabeza
67
+
68
+ else
69
+ @cabeza.next=Node.new(valor,cola,nil)
70
+ @cabeza.next.prev= cabeza
71
+ @cabeza= cabeza.next
72
+
73
+ end
74
+
75
+ @tam+=1
76
+
77
+ end
78
+
79
+ # Método para eliminar un elemento de la cola de lista
80
+ def quitar_cola!
81
+
82
+ temp=@cola
83
+
84
+ if(tam>0)
85
+ @cola= cola.next
86
+ if cola.nil?
87
+ @cabeza=nil
88
+ else
89
+ @cola.prev=nil
90
+ end
91
+ temp.next=nil
92
+ temp.prev=nil
93
+ @tam-=1
94
+ end
95
+
96
+ temp
97
+
98
+ end
99
+
100
+ # Método para eliminar un elemento de la cabeza de lista
101
+ def quitar_cabeza!
102
+
103
+ temp=@cabeza
104
+
105
+ if(tam>0)
106
+ @cabeza= cabeza.prev
107
+ if cabeza.nil?
108
+ @cola=nil
109
+ else
110
+ @cabeza.next=nil
111
+ end
112
+ temp.next=nil
113
+ temp.prev=nil
114
+ @tam-=1
115
+ end
116
+
117
+ temp
118
+
119
+ end
120
+
121
+ # Método para definir la forma en la que mostrar los datos de la lista
122
+ def to_s
123
+ if(tam>0)
124
+ "tamaño:#{tam} contenido:(#{cabeza.value} #{cola.value})"
125
+ else
126
+ "Sin valores almacenados."
127
+ end
128
+ end
129
+
130
+ # Método para introducir un varios nuevos elementos provenientes de una cadena de caracteres en la cabeza de lista
131
+ #
132
+ # @param cadena de caracteres que contiene los nuevos elementos a introducir
133
+ def introducir_string!(valor)
134
+
135
+ for num in (0..valor.length-1)
136
+ introducir_en_cabeza!(valor[num])
137
+ end
138
+
139
+ end
140
+
141
+ end