prct06_alu0100948097 1.0.0

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.
@@ -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