-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathRuby.rb
executable file
·354 lines (268 loc) · 7.5 KB
/
Ruby.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
##### Guía Ruby by dM #####
Cabecera para los scripts de ruby, indica al compilador o editor que se trata de un fichero ruby
es recomendable ponerla siempre al inicio de los scripts.
#!/usr/bin/ruby
#################################
##### Instalación en Debian #####
#################################
# apt-get install ruby
Características:
-Casi todo es un objeto
-Son innecesarias las declaraciones de variables
-Las variables no tienen tipo
-La sintaxis es simple y consistente
-La gestión de memoria se realiza automáticamente
###########################
##### Consola de Ruby #####
###########################
$ ruby -v # Para saber mi version de Ruby
En mi caso sería:
ruby 2.2.1p85 (2020-01-01 revision 58769) [x86_64-linux]
Por lo tanto, al entrar a la consola Ruby nos saldrá el intérprete
Abrimos un terminal y escribimos:
$ irb # Interactive Ruby Shell
2.2.1 :001 > # Este es el intérprete de Ruby lo que indica que ya podemos
# comenzar a escribir, se muestra la versión instalada (2.2.1)
Si no accede a la consola de Ruby es porque no esta instaladado o no
instaló correctametne.
Ctrl + D # Salir de la Consola
###############################
##### Comentarios en ruby #####
###############################
# Comentario de una línea
=begin
Comentario
de varias
lineas
=end
'''
Comentarios
de Multiple
Línea
'''
##################################
##### Indentación del código #####
##################################
La indentación no es significativa pero es recomendable
hacerla para una mejor lectura del código.
#################################
##### Imprimir por pantalla #####
#################################
puts "¿Por qué estas aqui?" # Agrega una linea en blanco al final, como un fin de línea.
print "Esto es un sueño dentro de un sueño" # Imprime el texto normalmente, sin fin de linea.
print "Hola\nRuby\n3\n" # \n Salto de linea.
print "Hola\tRuby\t3\t" # \t Tabulación
###############################
##### Operaciones básicas #####
###############################
# Ruby permite hacer operaciones aritmeticas básicas
2 + 2
2 - 2
2 * 2
2 / 2
2 ** 2
#####################################################
##### Creación y ejecución de un script de ruby #####
#####################################################
Los archivos o los programas de ruby se guardan con la
extencion (.rb)
Crear un archivo ejemplo.rb y dentro escribimos:
#!/usr/bin/ruby
print "Hola Ruby"
puts "Hola Ruby 2"
Guardamos como "ejemplo.rb" y para ejecutarlo hacemos un:
$ ruby ejemplo.rb # Se debe estar en el directorio del archivo o en su defecto.
$ ruby /home/user/ejemplo.rb # Le podemos pasar la ruta del archivo.
#####################
##### Variables #####
#####################
En ruby las variables no tienen tipos
Se pueden declarar variables sin especificar el tipo de dato que va a
almacenar, similar a Python.
mi_num = 25
mi_booleano = true
mi_booleano = false
mi_string = "Ruby"
En ruby, las cadenas son objetos pertenecientes a la clase String
¡no confundir con pertenecientes al tipo String!
##############################################
##### Mostrando el valor de una variable #####
##############################################
nombre = "David Webb" # Declaramos una variable y le asignamos una cadena
puts "#{nombre}" # Imprimimos el valor de la variable declarada y cargada
puts "Tu nombre es #{nombre}" # Imprimimos una cadena y a su vez el valor de la variable cargada
# Otro ejemplo
# Asignación de valores a las variables.
nombre = 'David Webb'
edad = 31
ojos = "marrón"
cabello = 'negro'
# Imprimiendo el valor de las variables.
puts "Mi nombre es #{nombre}"
puts "tengo #{edad}"
puts "mis ojos son de color #{ojos} "
puts "y mi cabello es de color #{cabello}"
##########################
##### Usando métodos #####
##########################
"David Webb".length # Nos sirve para contar la cantidad de caracteres de una cadena, como el metodo de JavaScript
#10
"David Webb".reverse # Nos mostrara el reverso de la cadena que escribimos
#"bbeW divaD"
"David Webb".upcase # Nos mostrara la cadena que escribimos en mayúsculas
#"DAVID WEBB"
"David Webb".downcase # Nos mostrara la cadena que escribimos en minusculas
#"david webb"
"Webb".downcase.reverse.upcase # Usamos 3 metodos en en una sola linea de código
# Convertimos la cadena a minusculas, luego la invertimos y hacemos que se transforme en mayusculas
# "BBEW"
---
#!/usr/bin/ruby
nombre = "David Webb"
puts nombre.reverse
############################
##### Capturando datos #####
############################
(gets) es el método de Ruby que obtiene datos de parte de los usuarios.
Cuando se obtienen datos, Ruby agrega automáticamente una línea en blanco (o línea nueva)
después de esos datos; chomp elimina esa línea adicional.
(chomp) es un metodo que omite el fin de línea que se muestra al momento de imprimir
una variable
print "¿Cuál es tu nombre?" # Pedimos por pantalla al usuario que introduzca un dato
nombre = gets.chomp # Almacenamos el dato en una variable (nombre)
# Ejemplo:
print "¿Cuál es tu edad 1?"
edad1 = gets
puts "Tienes #{edad1} años"
print "¿Cuál es tu edad 2?"
edad2 = gets.chomp
puts "Tienes #{edad2} años"
----------
print "¿Cuál es tu Nombre? "
nombre = gets.chomp
print "¿Cuál es tu Apellido? "
apellido = gets.chomp
print "¿Cuál es tu Ciudad? "
ciudad = gets.chomp
##############
##### if #####
##############
print "Entero, por favor: "
num_usuario = Integer(gets.chomp)
if num_usuario < 0
puts "¡Elegiste un entero negativo!"
elsif num_usuario > 0
puts "¡Elegiste un entero positivo!"
else
puts "¡Elegiste cero!"
end
#####################
##### Funciones #####
#####################
Una funcion de suma...
Como vimos anteriormente, en ruby las variables no tienen tipos,
esto implica que al pasar variables a funciones, estas no necesitan tipo,
implica, además, que ruby tan solo se limita a ejecutar el método
llamado para un objeto, da igual cual sea éste mientras tenga ese método
def
suma (a, b)
a + b
end
puts suma(3, 3)
puts suma("hola", "mundo")
--- Otro Ejemplo ---
def
fun1()
puts ("cadena 1")
end
def
fun2()
puts ("cadena 2")
end
fun1
fun2
#print fun1
#print fun2
##################
##### Clases #####
##################
#!/usr/bin/ruby
# Hola mundo usando funciones y clases
class HolaMundo
def initialize()
end
def saluda()
puts "Hola Mundo" # Imprimimos el mensaje
end
end
objeto = HolaMundo.new()
objeto.saluda
gets()
-----
#!/usr/bin/ruby
# Sumando dos cifras usando clases y funciones
class Operacion
def initialize()
end
def SumaBasica()
num1 = 23.6
num2 = 7.4
puts "La suma es:"
puts num1 + num2
end
end
# Creamos el objeto de la clase Hola Mundo
objeto = Operacion.new()
objeto.SumaBasica
gets()
###################################
##### Operaciones aritmeticas #####
###################################
#!/usr/bin/ruby
def suma (a, b)
a + b
end
def resta (a, b)
a - b
end
def multiplicacion (a, b)
a * b
end
def division (a, b)
a * b
end
puts suma(3, 3)
puts resta(10, 3)
puts multiplicacion(5,5)
puts division(100, 2)
# Operaciones aritmeticas pidiendo datos al usuario
#!/usr/bin/ruby
print "Dato 1: "
a = gets.to_i
print "Dato 2: "
b = gets.to_i
def suma (a, b)
a + b
end
def resta (a, b)
a - b
end
def multiplicacion (a, b)
a * b
end
def division (a, b)
a * b
end
puts suma(a, b)
puts resta(a, b)
puts multiplicacion(a, b)
puts division(a, b)
####################
##### Archivos #####
####################
#!/usr/bin/ruby
f = File.open("prueba.txt", "r")
f.each_line do |line|
puts line
end
f.close