Está en la página 1de 16

3

TECNOLGICO NACIONAL DE MXICO

INSTITUTO TECNOLGICO DE PINOTEPA

ASIGNATURA:

Estructura de datos

Tema:

Datos en lenguaje de Ruby.

DOCENTE:

Ing. Fernando Morales Cortes

Integrantes del equipo:

Miller Ronaldo Cruz Meja.

Daniel Tomas Mendoza Snchez.

Eliel Castro Cano

No Clavel Meja

Ing. En sistemas computacionales

Semestre Ago./Dic 2017.

Santiago Pinotepa Nal. Oax. A 26 de Octubre del 20


3

NDICE

Introduccin .......................................................................................................................... 1

Definicin...1

Caractersticas...2

Fundamentos del lenguaje2

Datos primitivos .................................................................................................................... 3

Datos compuestos..4

Datos definidos por el usuario..5

Tipos de variables..5

Cosas que se realizan con Ruby.6


Programas o aplicaciones realizadas por
Ruby..6

Sintaxis..7

Estructura de control..9

Ejemplos de Hashes....13

Conclusin...13

Bibliografa..14
1

Matz pblico el primer libro en ingles


titulado: Programming Ruby.

INTRODUCCIN. Hoy en da Ruby est ganando bastante


popularidad gracias a Ruby On Rails, el
cual es un framework que cambio la
Habiendo tantos lenguajes de forma en que se desarrollaban las
programacin hoy en da, desde los ms
aplicaciones web. Fue creado en el 2003
robustos como java, as como el que dio
por David Heinemeier Hansson. Rails
el nacimiento de muchos lenguajes de
programacin, como es el caso de C, permite crear aplicaciones web sin
existen lenguajes que aunque no son muy necesidad de crear lneas infinitas de
conocidos, tienen las herramientas cdigo y en menor cantidad de tiempo
necesarias para estar a la altura de que otros lenguajes.
lenguajes como los ya mencionados. Tal
es el caso de Ruby.

Ruby es un lenguaje de programacin Definicin de Ruby.


multiparadigma, y de cdigo abierto
enfocado en la simplicidad y la Ruby principalmente un lenguaje
productividad. La caracterstica principal orientado a objetos, pero tambin es
de Ruby es que todo es un objeto; es descrito como un lenguaje
decir, que se puede asignar propiedades y
multiparadigma: permite programacin
acciones a toda la informacin y cdigo.
procedural, con orientacin a objetos y
Este hace nfasis en las necesidades declaraciones funcionales.
humanas por encima de las del
computador, razn por la cual Ruby es Ruby es un lenguaje que se caracteriza
tan fcil de aprender. Combina una por preocuparse ms por el desarrollador
sintaxis inspirada en Perl y similar a las que por la mquina, esto se traduce en dos
caractersticas orientadas a objetos de cosas:
Smalltalk.
La sintaxis es muy amigable y se
Fue creado por el japons Yukihiro lee casi como lenguaje natural.
Matsumoto (Matz) quien comenz a El performance no es igual que en
trabajar en Ruby en 1993, y lo present lenguajes de ms bajo nivel.
pblicamente en 1995.Con la idea de Ruby es muy popular en aplicaciones web
crear un lenguaje que balanceara la porque existe Ruby on Rails un
programacin funcional con la framework muy popular para hacer
programacin imperativa. En un aplicaciones web, En Ruby tambin
comienzo el lenguaje solo se conoca en puedes crear aplicaciones de escritorio, ya
Japn, pero no fue hasta 1999, que Matz que es multi plataforma, adems de que
public el primer libro que explicaba a puedes escribir aplicaciones mviles para
detalle cmo funcionaba dicho lenguaje. diferentes plataformas con RubyMotion.
Dicho lenguaje fue adoptado por pases
americanos hasta el 2001 y que adems
2

En Ruby, por ejemplo, no hay primitivos,


como int, todo es un objeto, incluso los
operadores como +, < son objetos. Final de instrucciones
Caractersticas. Ruby interpreta ; y el espacio en blanco

Orientado a objetos como el final de una instruccin. Debido


4 niveles de alcance de variables: a esto, Ruby interpreta smbolos +, - y
global, clase, instancia y local. \ como continuacin de una instruccin.
Manejo de excepciones.
Expresiones naticas al nivel del
lenguaje (perl-like).
Sobrecarga de operadores Comentarios
Recolector automtico de basura
Biblioteca dinmica compartida Los comentarios son representados con #.
en la mayora de las plataformas. Ejemplo:
Soporta introspeccin, reflexin y
Meta programacin. #Este es un comentario
Soporta continuations y
generators. Los comentarios de ms de una lnea usan
=begin y =end, los cuales deben estar al
comienzo de una lnea. Por ejemplo:
Fundamentos del lenguaje.
=begin

Este es un comentario
Espacios en blanco =end

Mientras una expresin del tipo a + b es


interpretada como a+b, donde a es una
variable. El resultado poder ser diferentes
Identificadores
en casos ambiguos. Por ejemplo, si a es el Cualquier nombre de constante, variables
nombre de una funcin, entonces una y mtodos usando como identificador es
expresin: distinguido por Ruby si usa minsculas o

a +b maysculas.

Es interpretada como:

a (+b)
3

Mientras que los float son para guardar


valores decimales o valores con coma,
Datos primitivos. por ejemplo el precio de un producto:

Precio = 12,56;

Boolean Adems estos tipos de datos son tiles


para realizar operaciones matemticas:

Son tipos de datos lgicos, pueden


Numero1= 15;
ser true (verdadero en ingls)
o false (falso en ingls). Por ejemplo yo Numero2= 5;
podra hacerle al usuario una pregunta
donde la respuesta puede ser s o no y Resultado_suma = numero1 + numero2;

guardar la respuesta en una variable de


tipo boolean.

Puede ser true: String

Si_pasa= true; Son cadenas de texto; una letra, un


nombre, una frase, etc.:
O false:
Manipulan una secuencia de caracteres.
Son representados utilizando comillas
No_pasa = false;
dobles ( ) o comillas simples ( ). A
continuacin se mencionan los mtodos
Numrico (integer y float) ms importantes:
* to_s: Convierte un objeto en una
Los valores de tipo numrico se utilizan cadena.
para guardar nmeros
* size: Retorna el tamao de la cadena.
Estos a su vez pueden ser integer o float. * str + otro_str -> nuevo_str: Retorna una
nueva cadena concatenando las otras.
Los integer son nmeros enteros, Frase = Bienvenidos a Ruby!
nmeros sin coma, por ejemplo la edad de
una persona:

Edad = 29;
4

Datos Compuestos. Se pueden realizar operaciones


sobre arrays con los operadores
aritmticos +, - y *
Imprimimos el contenido de
Array arrays con puts
Ejemplo: ejemploArrays.rb
Los array o arreglos sirven a la hora de
guardar varios valores en una sola
variable. Estos valores a su vez pueden
ser cadenas, nmeros o valores bolanos:

nombres = ["Cosme Fulanito", "Cornelio


del Rancho", "Lalo Landa"];
Ahora para recuperar cada valor hay que Hashes
utilizar los corchestes ([]) y la posicin en
donde est el valor, siempre empezando Hashes o diccionarios son el equivalente
por cero: al array asociativo en PHP. Los hashes se
utilizan para guardar varios datos en una
nombres[0] #esto da Gato; sola variable, pero a diferencia de los
array cada valor se guarda con
nombres[1] #esto da Perro; una key o llave. Por ejemplo yo podra
guardar los datos de una persona de esta
nombres[2] #esto da Oso; forma:
Se pueden concatenar arrays con [1,
2,3].concat([4, 5,6]) persona = {"nombre" => "Fernando",
En un Array puedes colocar cualquier "apellido" => "Gaitan", "edad" => 27};
tipo de dato. Como ven, a diferencia de los array los
hashes se escriben con llaves en lugar de
corchetes. Ahora para recuperar el valor:
Operaciones sobre Arrays
persona["nombre"] #Esto da Fernando;
Podemos ordenar elementos con
el mtodo Array#sort persona["apellido"] #Esto da Gaitan;
Invertir su orden con persona["edad"] #Esto da 27;
Array#reverse
Calcular su longitud con
Array#length Smbolos
Reducir dimensiones con
Array#flatten
Eliminar duplicados con Los smbolos son un tipo de dato muy
Array#uniq interesante. Cumplen una funcin como
los string que es de guardar cadenas. Por
5

ejemplo, nosotros podramos crear algo


como esto:
Tipos de variables.
Color =: verde;
Bsicamente la diferencia de los smbolos
con los string es que por cada string que Variable global.
creamos Ruby guardar un nuevo valor
en memoria, aunque ese valor ya exista, Son visibles a travs de todo el programa
mientras que con un smbolo no. y deben iniciar con el smbolo $, por
ejemplo:
Un ejemplo:
$soyGlobal
fruta1 = "manzana";
fruta2 = "manzana";
Una variable global no inicializada tiene
el valor de nil.

Variable de instancia

Datos definidos por el Las variables de instancia pertenecen a un


objeto y son lo que tambin es conocido
usuario. como objetos atributos. Estas son visibles
dentro de un objeto en particular y deben
comenzar con @, por ejemplo:
Variables constantes.

Probablemente sepas lo que es una @soyVariableDeInstancia


constante. Es como una variable a la que
no se le puede cambiar el valor. Pero
OJO, en Ruby no existen las constantes, Al igual que las variables globales, estas
sino las variables constantes que s tienen el valor nil si no han sido
permiten modificar su valor, a diferencia inicializadas.
de otros lenguajes. Lo nico es que esto
nos tirar una advertencia por pantalla.
Las variables constantes estn pensadas
para guardar valores que no deberan ser
modificados. Como el eterno ejemplo del Variable de clase
PI (3,14). El primer carcter debe ser una
letra mayscula: Las variables de clase son visibles, como
lo dice, en la clase y para todos los
objetos de la misma. Comienzan con
Valordepi = 3.14;
@@, por ejemplo:
6

Saber Rails en este momento es una de


las habilidades ms demandas en USA y
@@variableDeClase
de manera mundial en desarrollo de
aplicaciones web.

Estas deben ser inicializadas antes que A las Start-ups especialmente les gusta
puedan ser usadas en los mtodos. Al no Rails, por lo que podras ser parte de una
inicializarla produce un error. empresa con grandes perspectivas de
crecimiento en etapa temprana o podras
tambin unirte a una empresa ms
Variable local consolidada como podra ser alguna casa
de software.
Son vlidas dentro del mbito local
definido y deben empezar con una De hecho una opcin que toman muchos
minscula o con el smbolo _. es trabajar como freelance, es decir de
manera independiente realizando
proyectos. Los cuales pueden elegir entre
pequeos proyectos, medianos y trabajar
Pseudo-variable
con una variedad de clientes a largo
Tienen la apariencia de variables locales plazo.
pero su comportamiento es el de
constantes. Ejemplo de estas variables Programas o aplicaciones
son self, true, false, nil. realizadas con Ruby.

Cosas que se realizan con Twitter


Ruby Una de las redes ms populares y que ms
impacto han tenido en los ltimos aos.
En un primer momento fue construida
sobre Ruby on Rails lo que permiti a un
Slo en Ruby on Rails no puedes
equipo de slo dos personas crear toda la
construir una aplicacin mvil, pero s
plataforma y adaptarse a lo que pedan los
puedes construir una aplicacin web y
usuarios, pero en 2011 cambiaron a Scala
esta funcionar como backend de una
que trabaja sobre Java- y que
aplicacin mvil.
gestiona mejor los mensajes a tiempo
Adems hay un herramienta llamada real.
RubyMotion que te permite construir con
Ruby de manera muy fcil aplicaciones
nativas para IOS y Android.
Es as que como conclusin literalmente
con Rails no podras crear aplicaciones
mviles, pero de seguro puede ser una
parte importante de un proyecto mvil.
7

que Twitter ms tarde adopt Scala para


ciertas partes de la aplicacin, aunque
Hulu
RoR sigue presente en el cdigo de
Propiedad de la NBC, Fox y Disney- es el SoundCloud.
de varias macro corporaciones escogiendo
el lenguaje para crear su plataforma de
distribucin audiovisual digital. De
hecho, en 2012 Hulu fue uno de los
patrocinadores de la conferencia
RailsConf.

Bloomberg Sintaxis
Fundada en 1981, es una de las mayores NORMAS EN LAS PALABRAS
corporaciones del mundo dedicada al Un nombre es una letra mayscula, una
mundo de las finanzas, con su propia letra minscula o un guion bajo, seguido
agencia de noticias y software burstil y
por cualquier combinacin de
con ms de 15.000 empleados, una de
maysculas, minsculas, nmeros o
las empresas ms grandes que recurre
guiones bajos. Los nombres en Ruby
a Ruby on Rails.
se usan para referirse a constantes,
variables, mtodos, clases y mdulos. La
primera letra de un nombre ayuda a Ruby
a distinguirlos. Algunos nombres, son
palabras reservadas y no pueden usarse
como variable, mtodo, clase o mdulo.
El conjunto de las minsculas abarca de
la 'a' a la 'z' incluyendo el guion bajo '_'.
El conjunto de la mayscula abarca de la
'A' a la 'Z' y los nmeros (del '0' al '9').
SOOUNDCLOUD
VARIABLES
La plataforma sueca gestiona 175
millones de visitas nicas al mes y Las variables contienen cualquier tipo de
la subida de doce horas de audio por dato. El propio nombre de la
minuto, y se ha convertido en una variable,muestra su alcance (local,
referencia tanto para los usuarios como global,):
para los creadores. Originalmente fue
escrita en Ruby on Rails, pero al igual
8

Una variable local consiste en una letra futbol_club_barcelonaclases, mdulos y


minscula o guin bajo seguido constantes: Real Madrid,
decualquier mayscula o minscula. P.ej.: FutbolClubBarcelona Hay que notar que
sunil, _z, rock_and_roll una variable puede referirse a distintos
valores a lo largo del tiempo.
Una variable de un objeto (ms adelante
Una constante en Ruby puede ser una refe
se hablar de clases y objetos)empieza
rencia a un objeto. Lasconstantes son
con la arroba, seguido de cualquier
creadas en el momento de su primera
mayscula o minscula. P.ej.:@sign, @_,
asignacin, normalmente en
@Counter
La definicin de una clase o un mdulo;
Una variable de clase empieza con dos
no deben estar definidas en los mtodos.
arrobas seguido por cualquier mayscula
Se puede variar el valor de una constante,
o minscula. P.ej: @@signo, @@_,
pero esto genera un valor de aviso.
@@Counter
ALCANCE DE LAS CONSTANTES
Una variable global empieza por
el signo dlar, Las constantes definidas dentro de una
seguido por cualquier carcter(no slo clase o mdulo pueden ser usadas en
maysculas o minsculas). P.ej: $counter, cualquier lugar dentro de la clase o
$COUNTER, $-x. mdulo. Fuera de la clase o mdulo, se
pueden usar mediante el operador:
CONSTANTES
precedido de una palabra que indique el
Una constante empieza por una letra mdulo o clase apropiados. Las
mayscula, seguido por cualquier constantes definidas fuera de cualquier
mayscula o minscula. Los nombres de clase o mdulo pueden ser usadas
clases y de mdulos son constantes, mediante el operador
y siguen unas normas. Ejemplos: module
Pero sin palabra que lo preceda. Las
MyMath, PI=3.1416, class Perro. Los
constantes no pueden ser definidas dentro
nombres de mtodos deben empezar por
de un mtodo.
una minscula (letra o guion bajo). La ?
y la !son los nicos caracteres ajenos al ESCRIBIENDO MTODOS
grupos de las maysculas y
Un bloque de instrucciones que define un
minsculas, que
mtodo, empieza por la palabra def y
se permiten como sufijos de los
acaba por la
mtodos. Ms adelante se explicar su
end. Los parmetros son la lista de variabl
uso.
es que van entreparntesis. Aunque en
Por norma, se usa el guin bajo para separ
Ruby, dichos parntesis son opcionales:
ar palabras compuestas en losnombres de
puts, p y gets son muy usados, y por ello
mtodos y de variables. Para los nombres
que el uso de parntesis sea opcional. En
de clases, mdulos y constantes, la norma
Rails, se llama a los mtodos sin
dice de usar letras maysculas en vez de
parntesis.
guiones bajos, para distinguirlas.
Ejemplos: variables y mtodos:
real_madrid,
9

Un mtodo devuelve el valor de su ltima Correcto


lnea. Por norma, es recomendable
Hola Juan
dejar una lnea en blanco entre las
definiciones de mtodos: correctometodos.rb:18 warning:
parenthesize argument(s) for future
#metodos.rb
version
# Definicin de un mtodo
>Exit code: 0
def hello
puts'Hola'
Estructuras de control.
end
Condicional if.
#uso del mtodo
Se ejecuta si la condicin es verdadera.
hello
Sintaxis:
# Mtodo con un argumento
If condicional [then]
def hello1(nombre)
Instrucciones
puts'Hola '+ nombre
[elsif condicional [then]
return 'correcto'
instrucciones]
end
[else
puts(hello1('Pedro'))
instrucciones]
# Mtodo con un argumento (sin
parntesis, no funciona en versiones end
nuevas)
def hello2 nombre2
El if poder ser usado como un
puts'Hola '+ nombre modificador de una declaracin:
return 'correcto' code if condiconal
end
puts(hello2'Juan') Ejemplo:
Esto es lo que obtenemos if x < 5 then
declaracion1
>ruby metodos.rb end
Hola
Hola Pedro if x < 5 then
10

declaration1
else unless x < 5 then
delclaracion2 declaracion1
end else
declaracion2
declaracion1 if y == 3 end
x = if a>0 then b else c end
declaracion1 unless y = 3

Condicional unless x= unless a<=0 then c else b end

Ejecuta cdigo si la condicin es falsa, en


caso contrario ejecuta otro bloque de
instrucciones.
Sintaxis: Case
Compara la expresin especificada en
case con la expresin especificada en
Unless condicional [then] when ejecuta el cdigo correspondiente.
instrucciones La clusula else se ejecuta en el caso de
que ningn segmento when sea ejecutado.
[else
Sintaxis:
instrucciones]
case expresin
end
[when expresin [, expresin] [then]
Instrucciones]
El unless puede ser usado como un
modificador de una declaracin: [else

Instrucciones if condicional Instrucciones]


end

Ejemplos:
Ejemplo
Unless x >= 5 then Case una cadena
declaracion1 when algn valor
end Puts opcin 1
11

when otro valor Ejecuta instrucciones mientras la


condicin es verdadera. En el caso del
Puts opcin 2
entre las clases begin y end, este se
when / char ejecuta una vez antes de evaluar a
condicin.
puts opcin 3
else
puts opcin 4
end Ciclo Until.
Se ejecuta el conjunto de instrucciones
mientras la condicin es falsa (hasta que
la condicin se cumpla). Puede ser
separada por la palabra reservada do, un
Ciclo while. salto de lnea o un;. De igual forma que
el while, until puede ser usado como
Se ejecuta el conjunto de instrucciones
modificador de una declaracin.
mientras la condicin es verdadera. La
condicin puede ser separada de conjunto Sintaxis:
de instrucciones mediante la palabra do,
until condicional [do]
una lnea nueva, el smbolo \, o un ;.
instrucciones
end
Sintaxis:
While condicional [do]
:
instrucciones
end
Instrucciones until condicional
:
El while pude ser usado como un
modificador de una declaracin: begin
Instrucciones while condicional instrucciones
: end until condicional

Begin
Instrucciones Ciclo for.
end while condicional Ejecuta el conjunto de instrucciones por
cada elemento en la expresin. La
12

expresin en el for pude ir separada por la end {


palabra reservada do, un salto de lnea, o
instrucciones
un ;.
}
Sintaxis:
For variable [, variable] in expresin
[do] Entrada y salida bsica.
instrucciones
end puts: Despliega en la consola y aade un
enter al final.

Instrucciones break, next, print: Despliega en la consola pero no


aade el enter o salto de lnea al final.
redo.
printf: Permite formatear la salida de
variables de forma similares a C y Java.

break: Termina un ciclo.


next: Salta al punto en que se evala la Ejemplos:
condicin de un ciclo. Tambin termina la
ejecucin de un bloque si es llamado
dentro de ste. puts puts funciona
redo: Salta al punto inmediatamente puts con saltos de lnea.
posterior a la evaluacin del ciclo.

print print funciona


Instrucciones begin y end. print sin saltos de lnea.
begin: Permite declarar un conjunto de
instrucciones a ejecutarse antes de que el
programa se ejecute. Printf (\n\ nprintf formatea nmeros con
%7.2f, y cadenas como %s., 3.14156,
esta)
begin {
instrucciones La manera ms simple de leer una cadena
} es ocupando gets:
print Introduce tu nombre:

end: Permite declarar un conjunto de nom= gets


instrucciones a ejecutarse antes de
finalizar la ejecucin del intrprete.
13

end

Ejemplo de Hashes. clase = ejemplo1.new()

clase.evaluar()

gets()
class ejemplo1
Obtendremos
def initialize
False( no se encuentra en el Hashes)
end
def evaluar ()
h = {"Hola" => "Mundo", "Ruby" =>
"Dato"}
CONCLUSIN.
puts h
end
Como se ha mencionado con anterioridad,
end Ruby es un lenguaje que a simples vista
clase = ejemplo1.new() no es muy complejo, pero al adentrarnos
ms en l, vemos un estructura tan
clase.evaluar() compleja, podra ser uno de los lenguajes
gets() de programacin con una comunidad muy
escasa, pero el tiempo ha demostrado que
puede convertirse en el lenguaje del
Obtenemos futuro, aunque es ms conocido por ser
empleado para crear aplicaciones web,
<"Hola" => "Mundo", "Ruby" => este tambin sirve para otros cosas, como
"Dato"> crear aplicaciones mviles y desktop.
Siendo as un lenguaje teniendo una
caracterstica muy particular, al tener los
llamados hashes, que son parecidos a los
Utilizando el tipo booleano array.
class ejemplo1
Los hashes son usados para guardar datos
def initialize como tambin los hacen los arreglos, pero
estos no utilizan un ndice, sino que son
end
smbolos y basta con poner el smbolo
def evaluar () para poder mandarlo a mostrar. Lo cual
hace ms fcil, al momento de programar
h = {"Hola" => "MUndo", "Ruby" =>
o cuando se trabaja con tantos datos. Por
"Dato"}
ejemplo, en un arreglo debemos anotar el
puts h.has_value?(Python) ndice para mostrar lo que se encuentra en
dicha posicin, lo cual a veces resulta un
end
poco tedioso por qu no estamos
14

acostumbrados a asociar un nmero con


un dato en particular, pero utilizando los
hashes basta con poner el smbolo, por
ejemplo: nombre, y que nos muestre lo
que hay guardado en dicho smbolo, lo
cual hace ms fcil de interpretar por la
obviedad de dicho smbolo

BIBLIOGRAFIA.

http://fernando-gaitan.com.ar/ruby-
on-rails-parte-4-variables/
https://frontendlabs.io/3443--ruby-
language-definicion-operadores-
clases

http://www.onlamp.com/pub/a/onl
amp/2005/06/09/rails_ajax.html
http://www.onlamp.com/lpt/a/5641
http://www.rubyonrails.org/api/

También podría gustarte