p10lppt13 1.0.0 → 1.1.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.
- data/.gitignore +0 -2
- data/.travis.yml +0 -1
- data/Gemfile.lock +1 -1
- data/lib/doc/Densa.html +451 -0
- data/lib/doc/Dispersa.html +462 -0
- data/lib/doc/Fraccion.html +1023 -0
- data/lib/doc/Matriz.html +985 -0
- data/lib/doc/Object.html +349 -0
- data/lib/doc/P10lppt13.html +303 -0
- data/lib/doc/VectorDisperso.html +444 -0
- data/lib/doc/created.rid +89 -0
- data/lib/doc/doc/Densa_html.html +659 -0
- data/lib/doc/doc/Dispersa_html.html +669 -0
- data/lib/doc/doc/Fraccion_html.html +1193 -0
- data/lib/doc/doc/Matriz_html.html +1159 -0
- data/lib/doc/doc/Object_html.html +557 -0
- data/lib/doc/doc/P10lppt13_html.html +509 -0
- data/lib/doc/doc/VectorDisperso_html.html +646 -0
- data/lib/doc/doc/created_rid.html +336 -0
- data/lib/doc/doc/doc/Densa_html_html.html +908 -0
- data/lib/doc/doc/doc/Dispersa_html_html.html +949 -0
- data/lib/doc/doc/doc/Fraccion_html_html.html +1713 -0
- data/lib/doc/doc/doc/Matriz_html_html.html +1684 -0
- data/lib/doc/doc/doc/Object_html_html.html +816 -0
- data/lib/doc/doc/doc/P10lppt13_html_html.html +754 -0
- data/lib/doc/doc/doc/VectorDisperso_html_html.html +887 -0
- data/lib/doc/doc/doc/created_rid_html.html +536 -0
- data/lib/doc/doc/doc/doc/Densa_html_html_html.html +1191 -0
- data/lib/doc/doc/doc/doc/Dispersa_html_html_html.html +1260 -0
- data/lib/doc/doc/doc/doc/Fraccion_html_html_html.html +2174 -0
- data/lib/doc/doc/doc/doc/Matriz_html_html_html.html +2235 -0
- data/lib/doc/doc/doc/doc/Object_html_html_html.html +1099 -0
- data/lib/doc/doc/doc/doc/P10lppt13_html_html_html.html +1028 -0
- data/lib/doc/doc/doc/doc/VectorDisperso_html_html_html.html +1168 -0
- data/lib/doc/doc/doc/doc/created_rid_html_html.html +722 -0
- data/lib/doc/doc/doc/doc/doc/Densa_html_html_html_html.html +1424 -0
- data/lib/doc/doc/doc/doc/doc/Dispersa_html_html_html_html.html +1502 -0
- data/lib/doc/doc/doc/doc/doc/Fraccion_html_html_html_html.html +2619 -0
- data/lib/doc/doc/doc/doc/doc/Matriz_html_html_html_html.html +2764 -0
- data/lib/doc/doc/doc/doc/doc/Object_html_html_html_html.html +1315 -0
- data/lib/doc/doc/doc/doc/doc/P10lppt13_html_html_html_html.html +1227 -0
- data/lib/doc/doc/doc/doc/doc/VectorDisperso_html_html_html_html.html +1403 -0
- data/lib/doc/doc/doc/doc/doc/created_rid_html_html_html.html +920 -0
- data/lib/doc/doc/doc/doc/doc/doc/created_rid_html_html_html_html.html +1089 -0
- data/lib/doc/doc/doc/doc/doc/fraccion_rb~_html_html_html_html.html +1754 -0
- data/lib/doc/doc/doc/doc/doc/index_html_html_html_html.html +1086 -0
- data/lib/doc/doc/doc/doc/doc/js/darkfish_js_html_html_html.html +1207 -0
- data/lib/doc/doc/doc/doc/doc/js/jquery_js_html_html_html.html +3210 -0
- data/lib/doc/doc/doc/doc/doc/js/navigation_js_html_html_html.html +1122 -0
- data/lib/doc/doc/doc/doc/doc/js/search_index_js_html_html_html.html +1031 -0
- data/lib/doc/doc/doc/doc/doc/js/search_js_html_html_html.html +1058 -0
- data/lib/doc/doc/doc/doc/doc/js/searcher_js_html_html_html.html +1295 -0
- data/lib/doc/doc/doc/doc/doc/rdoc_css_html_html_html.html +1827 -0
- data/lib/doc/doc/doc/doc/doc/table_of_contents_html_html_html_html.html +1727 -0
- data/lib/doc/doc/doc/doc/fraccion_rb~_html_html_html.html +1509 -0
- data/lib/doc/doc/doc/doc/index_html_html_html.html +911 -0
- data/lib/doc/doc/doc/doc/js/darkfish_js_html_html.html +920 -0
- data/lib/doc/doc/doc/doc/js/jquery_js_html_html.html +2908 -0
- data/lib/doc/doc/doc/doc/js/navigation_js_html_html.html +852 -0
- data/lib/doc/doc/doc/doc/js/search_index_js_html_html.html +889 -0
- data/lib/doc/doc/doc/doc/js/search_js_html_html.html +802 -0
- data/lib/doc/doc/doc/doc/js/searcher_js_html_html.html +975 -0
- data/lib/doc/doc/doc/doc/p10lppt13_rb~_html_html_html.html +1996 -0
- data/lib/doc/doc/doc/doc/rdoc_css_html_html.html +1443 -0
- data/lib/doc/doc/doc/doc/table_of_contents_html_html_html.html +1503 -0
- data/lib/doc/doc/doc/fraccion_rb~_html_html.html +1052 -0
- data/lib/doc/doc/doc/index_html_html.html +669 -0
- data/lib/doc/doc/doc/js/darkfish_js_html.html +667 -0
- data/lib/doc/doc/doc/js/jquery_js_html.html +213 -0
- data/lib/doc/doc/doc/js/navigation_js_html.html +557 -0
- data/lib/doc/doc/doc/js/search_index_js_html.html +589 -0
- data/lib/doc/doc/doc/js/search_js_html.html +499 -0
- data/lib/doc/doc/doc/js/searcher_js_html.html +655 -0
- data/lib/doc/doc/doc/p10lppt13_rb~_html_html.html +1361 -0
- data/lib/doc/doc/doc/rdoc_css_html.html +1039 -0
- data/lib/doc/doc/doc/table_of_contents_html_html.html +1134 -0
- data/lib/doc/doc/fraccion_rb~_html.html +582 -0
- data/lib/doc/doc/index_html.html +389 -0
- data/lib/doc/doc/js/darkfish_js.html +386 -0
- data/lib/doc/doc/js/jquery_js.html +1611 -0
- data/lib/doc/doc/js/navigation_js.html +354 -0
- data/lib/doc/doc/js/search_index_js.html +427 -0
- data/lib/doc/doc/js/search_js.html +308 -0
- data/lib/doc/doc/js/searcher_js.html +441 -0
- data/lib/doc/doc/p10lppt13_rb~_html.html +810 -0
- data/lib/doc/doc/rdoc_css.html +939 -0
- data/lib/doc/doc/table_of_contents_html.html +489 -0
- data/lib/doc/fraccion_rb~.html +356 -0
- data/lib/doc/images/add.png +0 -0
- data/lib/doc/images/arrow_up.png +0 -0
- data/lib/doc/images/brick.png +0 -0
- data/lib/doc/images/brick_link.png +0 -0
- data/lib/doc/images/bug.png +0 -0
- data/lib/doc/images/bullet_black.png +0 -0
- data/lib/doc/images/bullet_toggle_minus.png +0 -0
- data/lib/doc/images/bullet_toggle_plus.png +0 -0
- data/lib/doc/images/date.png +0 -0
- data/lib/doc/images/delete.png +0 -0
- data/lib/doc/images/find.png +0 -0
- data/lib/doc/images/loadingAnimation.gif +0 -0
- data/lib/doc/images/macFFBgHack.png +0 -0
- data/lib/doc/images/package.png +0 -0
- data/lib/doc/images/page_green.png +0 -0
- data/lib/doc/images/page_white_text.png +0 -0
- data/lib/doc/images/page_white_width.png +0 -0
- data/lib/doc/images/plugin.png +0 -0
- data/lib/doc/images/ruby.png +0 -0
- data/lib/doc/images/tag_blue.png +0 -0
- data/lib/doc/images/tag_green.png +0 -0
- data/lib/doc/images/transparent.png +0 -0
- data/lib/doc/images/wrench.png +0 -0
- data/lib/doc/images/wrench_orange.png +0 -0
- data/lib/doc/images/zoom.png +0 -0
- data/lib/doc/index.html +248 -0
- data/lib/doc/js/darkfish.js +155 -0
- data/lib/doc/js/jquery.js +18 -0
- data/lib/doc/js/navigation.js +142 -0
- data/lib/doc/js/search.js +94 -0
- data/lib/doc/js/search_index.js +1 -0
- data/lib/doc/js/searcher.js +228 -0
- data/lib/doc/p10lppt13_rb~.html +522 -0
- data/lib/doc/rdoc.css +595 -0
- data/lib/doc/table_of_contents.html +360 -0
- data/lib/fraccion.rb +18 -3
- data/lib/p10lppt13.rb +71 -41
- data/lib/p10lppt13/version.rb +3 -1
- data/spec/p10lppt13_spec.rb +16 -6
- data/test/tc_p10lppt13.rb +2 -0
- metadata +166 -26
- checksums.yaml +0 -7
- data/lib/gcd.rb +0 -7
@@ -0,0 +1,522 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
|
6
|
+
|
7
|
+
<title>p10lppt13.rb~ - RDoc Documentation</title>
|
8
|
+
|
9
|
+
<link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet">
|
10
|
+
|
11
|
+
<script type="text/javascript">
|
12
|
+
var rdoc_rel_prefix = "./";
|
13
|
+
</script>
|
14
|
+
|
15
|
+
<script type="text/javascript" charset="utf-8" src="./js/jquery.js"></script>
|
16
|
+
<script type="text/javascript" charset="utf-8" src="./js/navigation.js"></script>
|
17
|
+
<script type="text/javascript" charset="utf-8" src="./js/search_index.js"></script>
|
18
|
+
<script type="text/javascript" charset="utf-8" src="./js/search.js"></script>
|
19
|
+
<script type="text/javascript" charset="utf-8" src="./js/searcher.js"></script>
|
20
|
+
<script type="text/javascript" charset="utf-8" src="./js/darkfish.js"></script>
|
21
|
+
|
22
|
+
|
23
|
+
<body class="file">
|
24
|
+
<nav id="metadata">
|
25
|
+
<nav id="home-section" class="section">
|
26
|
+
<h3 class="section-header">
|
27
|
+
<a href="./index.html">Home</a>
|
28
|
+
<a href="./table_of_contents.html#classes">Classes</a>
|
29
|
+
<a href="./table_of_contents.html#methods">Methods</a>
|
30
|
+
</h3>
|
31
|
+
</nav>
|
32
|
+
|
33
|
+
|
34
|
+
<nav id="search-section" class="section project-section" class="initially-hidden">
|
35
|
+
<form action="#" method="get" accept-charset="utf-8">
|
36
|
+
<h3 class="section-header">
|
37
|
+
<input type="text" name="search" placeholder="Search" id="search-field"
|
38
|
+
title="Type to search, Up and Down to navigate, Enter to load">
|
39
|
+
</h3>
|
40
|
+
</form>
|
41
|
+
|
42
|
+
<ul id="search-results" class="initially-hidden"></ul>
|
43
|
+
</nav>
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
|
48
|
+
<div id="project-metadata">
|
49
|
+
<nav id="fileindex-section" class="section project-section">
|
50
|
+
<h3 class="section-header">Pages</h3>
|
51
|
+
|
52
|
+
<ul>
|
53
|
+
|
54
|
+
<li class="file"><a href="./doc/Densa_html.html">Densa.html</a>
|
55
|
+
|
56
|
+
<li class="file"><a href="./doc/Dispersa_html.html">Dispersa.html</a>
|
57
|
+
|
58
|
+
<li class="file"><a href="./doc/Fraccion_html.html">Fraccion.html</a>
|
59
|
+
|
60
|
+
<li class="file"><a href="./doc/Matriz_html.html">Matriz.html</a>
|
61
|
+
|
62
|
+
<li class="file"><a href="./doc/Object_html.html">Object.html</a>
|
63
|
+
|
64
|
+
<li class="file"><a href="./doc/P10lppt13_html.html">P10lppt13.html</a>
|
65
|
+
|
66
|
+
<li class="file"><a href="./doc/VectorDisperso_html.html">VectorDisperso.html</a>
|
67
|
+
|
68
|
+
<li class="file"><a href="./doc/created_rid.html">created.rid</a>
|
69
|
+
|
70
|
+
<li class="file"><a href="./doc/doc/Densa_html_html.html">Densa_html.html</a>
|
71
|
+
|
72
|
+
<li class="file"><a href="./doc/doc/Dispersa_html_html.html">Dispersa_html.html</a>
|
73
|
+
|
74
|
+
<li class="file"><a href="./doc/doc/Fraccion_html_html.html">Fraccion_html.html</a>
|
75
|
+
|
76
|
+
<li class="file"><a href="./doc/doc/Matriz_html_html.html">Matriz_html.html</a>
|
77
|
+
|
78
|
+
<li class="file"><a href="./doc/doc/Object_html_html.html">Object_html.html</a>
|
79
|
+
|
80
|
+
<li class="file"><a href="./doc/doc/P10lppt13_html_html.html">P10lppt13_html.html</a>
|
81
|
+
|
82
|
+
<li class="file"><a href="./doc/doc/VectorDisperso_html_html.html">VectorDisperso_html.html</a>
|
83
|
+
|
84
|
+
<li class="file"><a href="./doc/doc/created_rid_html.html">created_rid.html</a>
|
85
|
+
|
86
|
+
<li class="file"><a href="./doc/doc/doc/Densa_html_html_html.html">Densa_html_html.html</a>
|
87
|
+
|
88
|
+
<li class="file"><a href="./doc/doc/doc/Dispersa_html_html_html.html">Dispersa_html_html.html</a>
|
89
|
+
|
90
|
+
<li class="file"><a href="./doc/doc/doc/Fraccion_html_html_html.html">Fraccion_html_html.html</a>
|
91
|
+
|
92
|
+
<li class="file"><a href="./doc/doc/doc/Matriz_html_html_html.html">Matriz_html_html.html</a>
|
93
|
+
|
94
|
+
<li class="file"><a href="./doc/doc/doc/Object_html_html_html.html">Object_html_html.html</a>
|
95
|
+
|
96
|
+
<li class="file"><a href="./doc/doc/doc/P10lppt13_html_html_html.html">P10lppt13_html_html.html</a>
|
97
|
+
|
98
|
+
<li class="file"><a href="./doc/doc/doc/VectorDisperso_html_html_html.html">VectorDisperso_html_html.html</a>
|
99
|
+
|
100
|
+
<li class="file"><a href="./doc/doc/doc/created_rid_html_html.html">created_rid_html.html</a>
|
101
|
+
|
102
|
+
<li class="file"><a href="./doc/doc/doc/doc/created_rid_html_html_html.html">created_rid_html_html.html</a>
|
103
|
+
|
104
|
+
<li class="file"><a href="./doc/doc/doc/fraccion_rb~_html_html_html.html">fraccion_rb~_html_html.html</a>
|
105
|
+
|
106
|
+
<li class="file"><a href="./doc/doc/doc/index_html_html_html.html">index_html_html.html</a>
|
107
|
+
|
108
|
+
<li class="file"><a href="./doc/doc/doc/js/darkfish_js_html_html.html">darkfish_js_html.html</a>
|
109
|
+
|
110
|
+
<li class="file"><a href="./doc/doc/doc/js/jquery_js_html_html.html">jquery_js_html.html</a>
|
111
|
+
|
112
|
+
<li class="file"><a href="./doc/doc/doc/js/navigation_js_html_html.html">navigation_js_html.html</a>
|
113
|
+
|
114
|
+
<li class="file"><a href="./doc/doc/doc/js/search_index_js_html_html.html">search_index_js_html.html</a>
|
115
|
+
|
116
|
+
<li class="file"><a href="./doc/doc/doc/js/search_js_html_html.html">search_js_html.html</a>
|
117
|
+
|
118
|
+
<li class="file"><a href="./doc/doc/doc/js/searcher_js_html_html.html">searcher_js_html.html</a>
|
119
|
+
|
120
|
+
<li class="file"><a href="./doc/doc/doc/rdoc_css_html_html.html">rdoc_css_html.html</a>
|
121
|
+
|
122
|
+
<li class="file"><a href="./doc/doc/doc/table_of_contents_html_html_html.html">table_of_contents_html_html.html</a>
|
123
|
+
|
124
|
+
<li class="file"><a href="./doc/doc/fraccion_rb~_html_html.html">fraccion_rb~_html.html</a>
|
125
|
+
|
126
|
+
<li class="file"><a href="./doc/doc/index_html_html.html">index_html.html</a>
|
127
|
+
|
128
|
+
<li class="file"><a href="./doc/doc/js/darkfish_js_html.html">darkfish_js.html</a>
|
129
|
+
|
130
|
+
<li class="file"><a href="./doc/doc/js/jquery_js_html.html">jquery_js.html</a>
|
131
|
+
|
132
|
+
<li class="file"><a href="./doc/doc/js/navigation_js_html.html">navigation_js.html</a>
|
133
|
+
|
134
|
+
<li class="file"><a href="./doc/doc/js/search_index_js_html.html">search_index_js.html</a>
|
135
|
+
|
136
|
+
<li class="file"><a href="./doc/doc/js/search_js_html.html">search_js.html</a>
|
137
|
+
|
138
|
+
<li class="file"><a href="./doc/doc/js/searcher_js_html.html">searcher_js.html</a>
|
139
|
+
|
140
|
+
<li class="file"><a href="./doc/doc/p10lppt13_rb~_html_html.html">p10lppt13_rb~_html.html</a>
|
141
|
+
|
142
|
+
<li class="file"><a href="./doc/doc/rdoc_css_html.html">rdoc_css.html</a>
|
143
|
+
|
144
|
+
<li class="file"><a href="./doc/doc/table_of_contents_html_html.html">table_of_contents_html.html</a>
|
145
|
+
|
146
|
+
<li class="file"><a href="./doc/fraccion_rb~_html.html">fraccion_rb~.html</a>
|
147
|
+
|
148
|
+
<li class="file"><a href="./doc/index_html.html">index.html</a>
|
149
|
+
|
150
|
+
<li class="file"><a href="./doc/js/darkfish_js.html">darkfish.js</a>
|
151
|
+
|
152
|
+
<li class="file"><a href="./doc/js/jquery_js.html">jquery.js</a>
|
153
|
+
|
154
|
+
<li class="file"><a href="./doc/js/navigation_js.html">navigation.js</a>
|
155
|
+
|
156
|
+
<li class="file"><a href="./doc/js/search_js.html">search.js</a>
|
157
|
+
|
158
|
+
<li class="file"><a href="./doc/js/search_index_js.html">search_index.js</a>
|
159
|
+
|
160
|
+
<li class="file"><a href="./doc/js/searcher_js.html">searcher.js</a>
|
161
|
+
|
162
|
+
<li class="file"><a href="./doc/p10lppt13_rb~_html.html">p10lppt13_rb~.html</a>
|
163
|
+
|
164
|
+
<li class="file"><a href="./doc/rdoc_css.html">rdoc.css</a>
|
165
|
+
|
166
|
+
<li class="file"><a href="./doc/table_of_contents_html.html">table_of_contents.html</a>
|
167
|
+
|
168
|
+
<li class="file"><a href="./fraccion_rb~.html">fraccion.rb~</a>
|
169
|
+
|
170
|
+
<li class="file"><a href="./p10lppt13_rb~.html">p10lppt13.rb~</a>
|
171
|
+
|
172
|
+
</ul>
|
173
|
+
</nav>
|
174
|
+
|
175
|
+
<nav id="classindex-section" class="section project-section">
|
176
|
+
<h3 class="section-header">Class and Module Index</h3>
|
177
|
+
|
178
|
+
<ul class="link-list">
|
179
|
+
|
180
|
+
<li><a href="./Densa.html">Densa</a>
|
181
|
+
|
182
|
+
<li><a href="./Dispersa.html">Dispersa</a>
|
183
|
+
|
184
|
+
<li><a href="./Fraccion.html">Fraccion</a>
|
185
|
+
|
186
|
+
<li><a href="./Matriz.html">Matriz</a>
|
187
|
+
|
188
|
+
<li><a href="./Object.html">Object</a>
|
189
|
+
|
190
|
+
<li><a href="./P10lppt13.html">P10lppt13</a>
|
191
|
+
|
192
|
+
<li><a href="./VectorDisperso.html">VectorDisperso</a>
|
193
|
+
|
194
|
+
</ul>
|
195
|
+
</nav>
|
196
|
+
|
197
|
+
</div>
|
198
|
+
</nav>
|
199
|
+
|
200
|
+
<div id="documentation" class="description">
|
201
|
+
|
202
|
+
<p>require “fraccion.rb”</p>
|
203
|
+
|
204
|
+
<p># Clase base <a href="Matriz.html">Matriz</a>, que guarda el numero de
|
205
|
+
filas y columnas class <a href="Matriz.html">Matriz</a></p>
|
206
|
+
|
207
|
+
<pre class="ruby"><span class="ruby-comment">#Variable que almacena el numero de filas de la matriz</span>
|
208
|
+
<span class="ruby-identifier">attr_reader</span> :<span class="ruby-identifier">nfil</span>
|
209
|
+
<span class="ruby-comment">#Variable que almacena el numero de columnas de la matriz</span>
|
210
|
+
<span class="ruby-identifier">attr_reader</span> :<span class="ruby-identifier">ncol</span>
|
211
|
+
|
212
|
+
<span class="ruby-comment"># Metodo initilize de la clase base</span>
|
213
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">nfil</span>, <span class="ruby-identifier">ncol</span>)
|
214
|
+
<span class="ruby-ivar">@nfil</span> = <span class="ruby-identifier">nfil</span>
|
215
|
+
<span class="ruby-ivar">@ncol</span> = <span class="ruby-identifier">ncol</span>
|
216
|
+
<span class="ruby-keyword">end</span>
|
217
|
+
|
218
|
+
<span class="ruby-comment"># Getter de nfil (devuelve el numero de filas de la matriz)</span>
|
219
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">filas</span>
|
220
|
+
<span class="ruby-ivar">@nfil</span>
|
221
|
+
<span class="ruby-keyword">end</span>
|
222
|
+
|
223
|
+
<span class="ruby-comment"># Getter de ncol (devuelve el numero de columnas de la matriz)</span>
|
224
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">colum</span>
|
225
|
+
<span class="ruby-ivar">@ncol</span>
|
226
|
+
<span class="ruby-keyword">end</span>
|
227
|
+
|
228
|
+
<span class="ruby-comment"># Metodo para convertir la matriz a string (a una cadena)</span>
|
229
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">to_s</span>
|
230
|
+
<span class="ruby-identifier">aux</span> = <span class="ruby-string">""</span>
|
231
|
+
<span class="ruby-ivar">@nfil</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
232
|
+
<span class="ruby-ivar">@ncol</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span>
|
233
|
+
<span class="ruby-identifier">aux</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"#{pos[i][j]}\t"</span>
|
234
|
+
<span class="ruby-keyword">end</span>
|
235
|
+
<span class="ruby-identifier">aux</span> <span class="ruby-operator"><<</span> <span class="ruby-string">"\n"</span>
|
236
|
+
<span class="ruby-keyword">end</span>
|
237
|
+
<span class="ruby-identifier">aux</span>
|
238
|
+
<span class="ruby-keyword">end</span>
|
239
|
+
|
240
|
+
<span class="ruby-comment"># Metodo para sumar dos matrices (si tienen la misma dimension)</span>
|
241
|
+
<span class="ruby-keyword">def</span> <span class="ruby-operator">+</span>(<span class="ruby-identifier">other</span>)
|
242
|
+
<span class="ruby-comment"># Primero se comprueba si se pueden sumar (si tienen la misma dimension)</span>
|
243
|
+
<span class="ruby-keyword">if</span> ((<span class="ruby-ivar">@nfil</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">nfil</span>) <span class="ruby-operator">||</span> (<span class="ruby-ivar">@ncol</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">ncol</span>))
|
244
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-string">"No se pueden sumar las matrices"</span>
|
245
|
+
<span class="ruby-keyword">else</span>
|
246
|
+
<span class="ruby-identifier">elemento</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>)
|
247
|
+
<span class="ruby-ivar">@nfil</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
248
|
+
<span class="ruby-identifier">fila</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>)
|
249
|
+
<span class="ruby-ivar">@ncol</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span>
|
250
|
+
<span class="ruby-keyword">if</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">nil</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword">nil</span>
|
251
|
+
<span class="ruby-identifier">fila</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>]
|
252
|
+
<span class="ruby-keyword">elsif</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword">nil</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">nil</span>
|
253
|
+
<span class="ruby-identifier">fila</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>]
|
254
|
+
<span class="ruby-keyword">elsif</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">nil</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">nil</span>
|
255
|
+
<span class="ruby-identifier">fila</span> <span class="ruby-operator"><<</span> <span class="ruby-value">0</span>
|
256
|
+
<span class="ruby-keyword">else</span>
|
257
|
+
<span class="ruby-identifier">fila</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>] <span class="ruby-operator">+</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>]
|
258
|
+
<span class="ruby-keyword">end</span>
|
259
|
+
<span class="ruby-keyword">end</span>
|
260
|
+
<span class="ruby-identifier">elemento</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">fila</span>
|
261
|
+
<span class="ruby-keyword">end</span>
|
262
|
+
<span class="ruby-constant">Densa</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@nfil</span>, <span class="ruby-ivar">@ncol</span>, <span class="ruby-identifier">elemento</span>)
|
263
|
+
<span class="ruby-keyword">end</span>
|
264
|
+
<span class="ruby-keyword">end</span>
|
265
|
+
|
266
|
+
<span class="ruby-comment"># Metodo para restar dos matrices (si tienen la misma dimension)</span>
|
267
|
+
<span class="ruby-keyword">def</span> <span class="ruby-operator">-</span>(<span class="ruby-identifier">other</span>)
|
268
|
+
<span class="ruby-comment"># Primero se comprueba si se pueden restar (si tienen la misma dimension)</span>
|
269
|
+
<span class="ruby-keyword">if</span> ((<span class="ruby-ivar">@nfil</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">nfil</span>) <span class="ruby-operator">||</span> (<span class="ruby-ivar">@ncol</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">ncol</span>))
|
270
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-string">"No se pueden restar las matrices"</span>
|
271
|
+
<span class="ruby-keyword">else</span>
|
272
|
+
<span class="ruby-identifier">elemento</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>)
|
273
|
+
<span class="ruby-ivar">@nfil</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
274
|
+
<span class="ruby-identifier">fila</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>)
|
275
|
+
<span class="ruby-ivar">@ncol</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span>
|
276
|
+
<span class="ruby-keyword">if</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">nil</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword">nil</span>
|
277
|
+
<span class="ruby-identifier">fila</span> <span class="ruby-operator"><<</span> <span class="ruby-operator">-</span><span class="ruby-identifier">other</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>]
|
278
|
+
<span class="ruby-keyword">elsif</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword">nil</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">nil</span>
|
279
|
+
<span class="ruby-identifier">fila</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>]
|
280
|
+
<span class="ruby-keyword">elsif</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">nil</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>] <span class="ruby-operator">==</span> <span class="ruby-keyword">nil</span>
|
281
|
+
<span class="ruby-identifier">fila</span> <span class="ruby-operator"><<</span> <span class="ruby-value">0</span>
|
282
|
+
<span class="ruby-keyword">else</span>
|
283
|
+
<span class="ruby-identifier">fila</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>] <span class="ruby-operator">-</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>]
|
284
|
+
<span class="ruby-keyword">end</span>
|
285
|
+
<span class="ruby-keyword">end</span>
|
286
|
+
<span class="ruby-identifier">elemento</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">fila</span>
|
287
|
+
<span class="ruby-keyword">end</span>
|
288
|
+
<span class="ruby-constant">Densa</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@nfil</span>, <span class="ruby-ivar">@ncol</span>, <span class="ruby-identifier">elemento</span>)
|
289
|
+
<span class="ruby-keyword">end</span>
|
290
|
+
<span class="ruby-keyword">end</span>
|
291
|
+
|
292
|
+
<span class="ruby-comment"># Metodo para hallar el primer valor no nulo de una matriz</span>
|
293
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">primervalor</span>
|
294
|
+
<span class="ruby-keyword">for</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword">in</span> <span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-ivar">@nfil</span>
|
295
|
+
<span class="ruby-keyword">for</span> <span class="ruby-identifier">j</span> <span class="ruby-keyword">in</span> <span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-ivar">@nncol</span>
|
296
|
+
<span class="ruby-keyword">if</span> (<span class="ruby-keyword">self</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword">nil</span>)
|
297
|
+
<span class="ruby-keyword">return</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>]
|
298
|
+
<span class="ruby-keyword">end</span>
|
299
|
+
<span class="ruby-keyword">end</span>
|
300
|
+
<span class="ruby-keyword">end</span>
|
301
|
+
<span class="ruby-keyword">end</span>
|
302
|
+
|
303
|
+
<span class="ruby-comment"># Metodo para hallar el valor maximo de los elementos de una matriz</span>
|
304
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">max</span>
|
305
|
+
<span class="ruby-identifier">acum</span> = <span class="ruby-identifier">pos</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>]
|
306
|
+
<span class="ruby-keyword">for</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword">in</span> <span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">filas</span>
|
307
|
+
<span class="ruby-keyword">for</span> <span class="ruby-identifier">j</span> <span class="ruby-keyword">in</span> <span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">colum</span>
|
308
|
+
<span class="ruby-keyword">if</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword">nil</span>
|
309
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>] <span class="ruby-operator">></span> <span class="ruby-identifier">acum</span>
|
310
|
+
<span class="ruby-identifier">acum</span> = <span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>]
|
311
|
+
<span class="ruby-keyword">end</span>
|
312
|
+
<span class="ruby-keyword">end</span>
|
313
|
+
<span class="ruby-keyword">end</span>
|
314
|
+
<span class="ruby-keyword">end</span>
|
315
|
+
<span class="ruby-identifier">acum</span>
|
316
|
+
<span class="ruby-keyword">end</span>
|
317
|
+
|
318
|
+
<span class="ruby-comment"># Metodo para hallar el valor minimo de los elementos de una matriz</span>
|
319
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">min</span>
|
320
|
+
<span class="ruby-identifier">acum</span> = <span class="ruby-identifier">pos</span>[<span class="ruby-value">0</span>][<span class="ruby-value">0</span>]
|
321
|
+
<span class="ruby-keyword">for</span> <span class="ruby-identifier">i</span> <span class="ruby-keyword">in</span> <span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">filas</span>
|
322
|
+
<span class="ruby-keyword">for</span> <span class="ruby-identifier">j</span> <span class="ruby-keyword">in</span> <span class="ruby-value">0</span><span class="ruby-operator">...</span><span class="ruby-identifier">colum</span>
|
323
|
+
<span class="ruby-keyword">if</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword">nil</span>
|
324
|
+
<span class="ruby-keyword">if</span> <span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>] <span class="ruby-operator"><</span> <span class="ruby-identifier">acum</span>
|
325
|
+
<span class="ruby-identifier">acum</span> = <span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>]
|
326
|
+
<span class="ruby-keyword">end</span>
|
327
|
+
<span class="ruby-keyword">end</span>
|
328
|
+
<span class="ruby-keyword">end</span>
|
329
|
+
<span class="ruby-keyword">end</span>
|
330
|
+
<span class="ruby-identifier">acum</span>
|
331
|
+
<span class="ruby-keyword">end</span>
|
332
|
+
|
333
|
+
<span class="ruby-comment"># Metodo para multiplicacion dos matrices</span>
|
334
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">por</span>(<span class="ruby-identifier">other</span>)
|
335
|
+
<span class="ruby-comment"># Primero se comprueba si se pueden multiplicar (las dimensiones deben ser nxm y mxn)</span>
|
336
|
+
<span class="ruby-keyword">if</span> ((<span class="ruby-ivar">@nfil</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">ncol</span>) <span class="ruby-operator">||</span> (<span class="ruby-ivar">@ncol</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">nfil</span>))
|
337
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-string">"No se pueden multiplicarr las matrices"</span>
|
338
|
+
<span class="ruby-keyword">else</span>
|
339
|
+
<span class="ruby-identifier">elemento</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>)
|
340
|
+
<span class="ruby-ivar">@nfil</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
341
|
+
<span class="ruby-identifier">fila</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>)
|
342
|
+
<span class="ruby-identifier">other</span>.<span class="ruby-identifier">ncol</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span>
|
343
|
+
<span class="ruby-identifier">aux</span> = <span class="ruby-value">0</span>
|
344
|
+
<span class="ruby-ivar">@ncol</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span>
|
345
|
+
<span class="ruby-keyword">if</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">k</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword">nil</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">k</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword">nil</span>
|
346
|
+
<span class="ruby-identifier">aux</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">k</span>] <span class="ruby-operator">*</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">k</span>][<span class="ruby-identifier">j</span>]
|
347
|
+
<span class="ruby-keyword">end</span>
|
348
|
+
<span class="ruby-keyword">end</span>
|
349
|
+
<span class="ruby-identifier">fila</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">aux</span>
|
350
|
+
<span class="ruby-keyword">end</span>
|
351
|
+
<span class="ruby-identifier">elemento</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">fila</span>
|
352
|
+
<span class="ruby-keyword">end</span>
|
353
|
+
<span class="ruby-keyword">end</span>
|
354
|
+
<span class="ruby-constant">Densa</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@nfil</span>, <span class="ruby-identifier">other</span>.<span class="ruby-identifier">ncol</span>, <span class="ruby-identifier">elemento</span>)
|
355
|
+
<span class="ruby-keyword">end</span>
|
356
|
+
|
357
|
+
<span class="ruby-comment"># Metodo para multiplicacion dos matrices</span>
|
358
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">porf</span>(<span class="ruby-identifier">other</span>)
|
359
|
+
<span class="ruby-comment"># Primero se comprueba si se pueden multiplicar (las dimensiones deben ser nxm y mxn)</span>
|
360
|
+
<span class="ruby-keyword">if</span> ((<span class="ruby-ivar">@nfil</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">ncol</span>) <span class="ruby-operator">||</span> (<span class="ruby-ivar">@ncol</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">nfil</span>))
|
361
|
+
<span class="ruby-identifier">puts</span> <span class="ruby-string">"No se pueden multiplicarr las matrices"</span>
|
362
|
+
<span class="ruby-keyword">else</span>
|
363
|
+
<span class="ruby-identifier">elemento</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>)
|
364
|
+
<span class="ruby-ivar">@nfil</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
365
|
+
<span class="ruby-identifier">fila</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>)
|
366
|
+
<span class="ruby-identifier">other</span>.<span class="ruby-identifier">ncol</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span>
|
367
|
+
<span class="ruby-identifier">aux</span> = <span class="ruby-constant">Fraccion</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">1</span>,<span class="ruby-value">1</span>)
|
368
|
+
<span class="ruby-identifier">aux</span> = <span class="ruby-identifier">aux</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">aux</span>
|
369
|
+
<span class="ruby-ivar">@ncol</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span><span class="ruby-operator">|</span>
|
370
|
+
<span class="ruby-keyword">if</span> (<span class="ruby-keyword">self</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">k</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword">nil</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">k</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword">nil</span>)
|
371
|
+
<span class="ruby-identifier">aux</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">k</span>] <span class="ruby-operator">*</span> <span class="ruby-identifier">other</span>.<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">k</span>][<span class="ruby-identifier">j</span>]
|
372
|
+
<span class="ruby-keyword">else</span>
|
373
|
+
<span class="ruby-identifier">aux</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>]
|
374
|
+
<span class="ruby-keyword">end</span>
|
375
|
+
<span class="ruby-identifier">fila</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">aux</span>
|
376
|
+
<span class="ruby-keyword">end</span>
|
377
|
+
<span class="ruby-keyword">end</span>
|
378
|
+
<span class="ruby-identifier">elemento</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">fila</span>
|
379
|
+
<span class="ruby-keyword">end</span>
|
380
|
+
<span class="ruby-keyword">end</span>
|
381
|
+
<span class="ruby-constant">Densa</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@nfil</span>, <span class="ruby-identifier">other</span>.<span class="ruby-identifier">ncol</span>, <span class="ruby-identifier">elemento</span>)
|
382
|
+
<span class="ruby-keyword">end</span>
|
383
|
+
|
384
|
+
<span class="ruby-comment"># Metodo para multiplicar una matriz por un escalar</span>
|
385
|
+
<span class="ruby-keyword">def</span> <span class="ruby-operator">*</span>(<span class="ruby-identifier">other</span>)
|
386
|
+
<span class="ruby-identifier">elemento</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>)
|
387
|
+
<span class="ruby-ivar">@nfil</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
388
|
+
<span class="ruby-identifier">fila</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>)
|
389
|
+
<span class="ruby-ivar">@ncol</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span>
|
390
|
+
<span class="ruby-keyword">if</span> (<span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>] <span class="ruby-operator">!=</span> <span class="ruby-keyword">nil</span>)
|
391
|
+
<span class="ruby-identifier">fila</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>]<span class="ruby-operator">*</span><span class="ruby-identifier">other</span>
|
392
|
+
<span class="ruby-keyword">else</span>
|
393
|
+
<span class="ruby-identifier">fila</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>]
|
394
|
+
<span class="ruby-keyword">end</span>
|
395
|
+
<span class="ruby-keyword">end</span>
|
396
|
+
<span class="ruby-identifier">elemento</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">fila</span>
|
397
|
+
<span class="ruby-keyword">end</span>
|
398
|
+
<span class="ruby-constant">Densa</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@nfil</span>, <span class="ruby-ivar">@ncol</span>, <span class="ruby-identifier">elemento</span>)
|
399
|
+
<span class="ruby-keyword">end</span>
|
400
|
+
|
401
|
+
<span class="ruby-comment"># Metodo para hallar la traspuesta de una matriz</span>
|
402
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">trasponer</span>
|
403
|
+
<span class="ruby-identifier">elemento</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>)
|
404
|
+
<span class="ruby-ivar">@ncol</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
405
|
+
<span class="ruby-identifier">fila</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>)
|
406
|
+
<span class="ruby-ivar">@nfil</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span>
|
407
|
+
<span class="ruby-identifier">fila</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">pos</span>[<span class="ruby-identifier">j</span>][<span class="ruby-identifier">i</span>]
|
408
|
+
<span class="ruby-keyword">end</span>
|
409
|
+
<span class="ruby-identifier">elemento</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">fila</span>
|
410
|
+
<span class="ruby-keyword">end</span>
|
411
|
+
<span class="ruby-constant">Densa</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@ncol</span>, <span class="ruby-ivar">@nfil</span>, <span class="ruby-identifier">elemento</span>)
|
412
|
+
<span class="ruby-keyword">end</span>
|
413
|
+
|
414
|
+
<span class="ruby-comment"># Metodo para convertir la matriz en un vector</span>
|
415
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">vectorizar</span>
|
416
|
+
<span class="ruby-identifier">aux</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>)
|
417
|
+
<span class="ruby-ivar">@ncol</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
418
|
+
<span class="ruby-ivar">@nfil</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span>
|
419
|
+
<span class="ruby-identifier">aux</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">pos</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">j</span>]
|
420
|
+
<span class="ruby-keyword">end</span>
|
421
|
+
<span class="ruby-keyword">end</span>
|
422
|
+
<span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">aux</span>)
|
423
|
+
<span class="ruby-keyword">end</span>
|
424
|
+
</pre>
|
425
|
+
|
426
|
+
<p>end</p>
|
427
|
+
|
428
|
+
<p># Clase de Matrices Densas class <a href="Densa.html">Densa</a> < <a
|
429
|
+
href="Matriz.html">Matriz</a></p>
|
430
|
+
|
431
|
+
<pre class="ruby"><span class="ruby-comment">#Vector que almacena los valores de la matriz(Array de arrays, en el que cada array es una fila).</span>
|
432
|
+
<span class="ruby-identifier">attr_reader</span> :<span class="ruby-identifier">pos</span>
|
433
|
+
|
434
|
+
<span class="ruby-comment"># Constructor de la clase Matriz Densa</span>
|
435
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">nfil</span>, <span class="ruby-identifier">ncol</span>, <span class="ruby-identifier">pos</span>)
|
436
|
+
<span class="ruby-keyword">super</span>(<span class="ruby-identifier">nfil</span>, <span class="ruby-identifier">ncol</span>)
|
437
|
+
<span class="ruby-ivar">@pos</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">pos</span>)
|
438
|
+
<span class="ruby-keyword">end</span>
|
439
|
+
|
440
|
+
<span class="ruby-comment"># Metodo de acceso a las filas</span>
|
441
|
+
<span class="ruby-keyword">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">i</span>)
|
442
|
+
<span class="ruby-ivar">@data</span>[<span class="ruby-identifier">i</span>]
|
443
|
+
<span class="ruby-keyword">end</span>
|
444
|
+
|
445
|
+
<span class="ruby-comment"># Metodo de acceso a las posiciones</span>
|
446
|
+
<span class="ruby-keyword">def</span> <span class="ruby-operator">[]=</span>(<span class="ruby-identifier">i</span>,<span class="ruby-identifier">value</span>)
|
447
|
+
<span class="ruby-ivar">@data</span>[<span class="ruby-identifier">i</span>] = <span class="ruby-identifier">value</span>
|
448
|
+
<span class="ruby-keyword">end</span>
|
449
|
+
</pre>
|
450
|
+
|
451
|
+
<p>end</p>
|
452
|
+
|
453
|
+
<p># Clase de Vectores dispersos class <a
|
454
|
+
href="VectorDisperso.html">VectorDisperso</a></p>
|
455
|
+
|
456
|
+
<pre class="ruby"><span class="ruby-comment">#Vector que almacena los valores de la matriz.</span>
|
457
|
+
<span class="ruby-identifier">attr_reader</span> :<span class="ruby-identifier">vector</span>
|
458
|
+
|
459
|
+
<span class="ruby-comment"># Constructor de la clase VectorDisperso</span>
|
460
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">h</span> = {})
|
461
|
+
<span class="ruby-ivar">@vector</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">0</span>)
|
462
|
+
<span class="ruby-ivar">@vector</span> = <span class="ruby-ivar">@vector</span>.<span class="ruby-identifier">merge!</span>(<span class="ruby-identifier">h</span>)
|
463
|
+
<span class="ruby-keyword">end</span>
|
464
|
+
|
465
|
+
<span class="ruby-comment"># Metodo para acceder a una posicion</span>
|
466
|
+
<span class="ruby-keyword">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">i</span>)
|
467
|
+
<span class="ruby-ivar">@vector</span>[<span class="ruby-identifier">i</span>]
|
468
|
+
<span class="ruby-keyword">end</span>
|
469
|
+
|
470
|
+
<span class="ruby-comment"># Metodo para convertir a un string</span>
|
471
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">to_s</span>
|
472
|
+
<span class="ruby-ivar">@vector</span>.<span class="ruby-identifier">to_s</span>
|
473
|
+
<span class="ruby-keyword">end</span>
|
474
|
+
</pre>
|
475
|
+
|
476
|
+
<p>end</p>
|
477
|
+
|
478
|
+
<p># Clase de Matrices Dispersas class <a href="Dispersa.html">Dispersa</a>
|
479
|
+
< <a href="Matriz.html">Matriz</a></p>
|
480
|
+
|
481
|
+
<pre class="ruby"><span class="ruby-identifier">attr_reader</span> :<span class="ruby-identifier">pos</span>
|
482
|
+
|
483
|
+
<span class="ruby-comment"># Constructor de la clase Matriz Dispersa</span>
|
484
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">nfil</span>, <span class="ruby-identifier">ncol</span>, <span class="ruby-identifier">h</span> = {})
|
485
|
+
<span class="ruby-keyword">super</span>(<span class="ruby-identifier">nfil</span>, <span class="ruby-identifier">ncol</span>)
|
486
|
+
<span class="ruby-ivar">@pos</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>({})
|
487
|
+
<span class="ruby-keyword">for</span> <span class="ruby-identifier">k</span> <span class="ruby-keyword">in</span> <span class="ruby-identifier">h</span>.<span class="ruby-identifier">keys</span> <span class="ruby-keyword">do</span>
|
488
|
+
<span class="ruby-ivar">@pos</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-keyword">if</span> <span class="ruby-identifier">h</span>[<span class="ruby-identifier">k</span>].<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">VectorDisperso</span>
|
489
|
+
<span class="ruby-identifier">h</span>[<span class="ruby-identifier">k</span>]
|
490
|
+
<span class="ruby-keyword">else</span>
|
491
|
+
<span class="ruby-ivar">@pos</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-constant">VectorDisperso</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">h</span>[<span class="ruby-identifier">k</span>])
|
492
|
+
<span class="ruby-keyword">end</span>
|
493
|
+
<span class="ruby-keyword">end</span>
|
494
|
+
<span class="ruby-keyword">end</span>
|
495
|
+
|
496
|
+
<span class="ruby-comment"># Metodo para acceder a una posicion de la matriz</span>
|
497
|
+
<span class="ruby-keyword">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">i</span>)
|
498
|
+
<span class="ruby-ivar">@pos</span>[<span class="ruby-identifier">i</span>]
|
499
|
+
<span class="ruby-keyword">end</span>
|
500
|
+
|
501
|
+
<span class="ruby-comment"># Metodo para acceder a una columna de la matriz</span>
|
502
|
+
<span class="ruby-keyword">def</span> <span class="ruby-identifier">col</span>(<span class="ruby-identifier">j</span>)
|
503
|
+
<span class="ruby-identifier">c</span> = {}
|
504
|
+
<span class="ruby-keyword">for</span> <span class="ruby-identifier">r</span> <span class="ruby-keyword">in</span> <span class="ruby-ivar">@pos</span>.<span class="ruby-identifier">keys</span> <span class="ruby-keyword">do</span>
|
505
|
+
<span class="ruby-identifier">c</span>[<span class="ruby-identifier">r</span>] = <span class="ruby-ivar">@pos</span>[<span class="ruby-identifier">r</span>].<span class="ruby-identifier">vector</span>[<span class="ruby-identifier">j</span>] <span class="ruby-keyword">if</span> <span class="ruby-ivar">@pos</span>[<span class="ruby-identifier">r</span>].<span class="ruby-identifier">vector</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">include?</span> <span class="ruby-identifier">j</span>
|
506
|
+
<span class="ruby-keyword">end</span>
|
507
|
+
<span class="ruby-constant">VectorDisperso</span>.<span class="ruby-identifier">new</span> <span class="ruby-identifier">c</span>
|
508
|
+
<span class="ruby-keyword">end</span>
|
509
|
+
</pre>
|
510
|
+
|
511
|
+
<p>end</p>
|
512
|
+
|
513
|
+
</div>
|
514
|
+
|
515
|
+
|
516
|
+
|
517
|
+
<footer id="validator-badges">
|
518
|
+
<p><a href="http://validator.w3.org/check/referer">[Validate]</a>
|
519
|
+
<p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 4.0.0.
|
520
|
+
<p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
|
521
|
+
</footer>
|
522
|
+
|