ruby

39
Feliz Programación ;) Juan Álvarez Álvarez Luis Serrano Arjona Francisco Javier Trujillo Mata

Upload: cais

Post on 26-Jan-2016

134 views

Category:

Documents


1 download

DESCRIPTION

Ruby. Feliz Programación ;). Juan Álvarez Álvarez Luis Serrano Arjona Francisco Javier Trujillo Mata. Indice. Introducción Objetivo Características Ruby Vs Haskell Tutorial Ruby Aplicación Bibliografía. Introducción.  Creador Yukihiro “matz” Matsumoto. Introducción. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Ruby

Feliz Programación

;)Juan Álvarez ÁlvarezLuis Serrano ArjonaFrancisco Javier Trujillo Mata

Page 2: Ruby

Introducción Objetivo Características Ruby Vs Haskell Tutorial Ruby Aplicación Bibliografía

2

Page 3: Ruby

 Creador Yukihiro “matz” Matsumoto

3

Page 4: Ruby

Interpretado, reflexivo y orientado a objetos.

Sus orígenes constan del año 1993. Presentado en 1995. Combina una sintaxis inspirada en

Python y Perl. Características similares a Smalltalk

con respecto a la programación orientada a objetos.

4

Page 5: Ruby

• “A menudo la gente, especialmente los ingenieros en informática, se centran en las máquinas. Ellos piensan, "Haciendo esto, la máquina funcionará más rápido. Haciendo esto, la máquina funcionará de manera más eficiente. Haciendo esto..." Están centrados en las máquinas, pero en realidad necesitamos centrarnos en las personas, en cómo hacen programas o cómo manejan las aplicaciones en los ordenadores. Nosotros somos los jefes. Ellos son los esclavos.”

5

Page 6: Ruby

“Principio de la menor sorpresa”

6

Page 7: Ruby

• Software libre• Orientado a Objetos• Flexibilidad• Posibilidad de redefinir los operadores• Bloques• Apariencia visual• Recolección de basura automática• Herencia como Mixin y patrones singleton• …

7

Page 8: Ruby

Popularidad Haskell es más potente y eficiente Nivel lógico importante en Haskell Pattern matching en Haskell Fácil adaptación a Ruby

8

Page 9: Ruby

Prelude, librería Haskell para Ruby

http://www.appdesign.com/products/open-source-projects/prelude-library/

9

Page 10: Ruby

El programa Hola MundoArrancamos el interprete:

irb(main):001:0>Escribimos la sentencia:

puts “Hola mundo”Resultado:

irb(main):001:0> puts "hola mundo"hola mundo=> nil

10

Page 11: Ruby

Ventajas con otros lenguajes• Para programadores de C y Java - no se

necesita escribir un método main. • Los strings son secuencias de caracteres

entre simple o dobles comillas. • Es un lenguaje interpretado, entonces no

hace falta recompilar para ejecutar un programa.

11

Page 12: Ruby

Números en Ruby (algunos ejemplos)• puts 1 + 2

3=> Nil

#Divisón: cuando divides dos enteros, obtienes un entero:

• puts 3 / 2 1=> nil

12

Page 13: Ruby

Números en Ruby (algunos ejemplos)

#si quieres obtener el resultado de decimal, #al menos uno de los dos tiene que ser

decimal • puts 3.0 / 2

1.5=> nil

13

Page 14: Ruby

Números en Ruby• Los números en Ruby son objetos de la

clase Fixnum o Bignum

14

Page 15: Ruby

Números en Ruby• Operadores y precedencia

15

[] Índices

** Exponentes

+ - ! ~Unarios: pos/neg, no,…

* / %Multiplicación, División,…

+ -Suma, Resta,…

« »Desplazadores binarios,…

& 'y' binario

|, ^'or' y 'xor' binarios

 >= < <=Comparadores

== === <=> != =~ !~

Igualadad, inegualdad,…

&& 'u' booleano

|| 'o' booleano

.. …Operadores de rango

= (+=, -=,...) Asignadores

?:Decisión ternaria

not 'no' booleano

Page 16: Ruby

Strings• Los strings (o cadenas de texto) son secuencias de

caracteres entre comillas simples o comillas dobles. '' (dos comillas simples) no tienen nada: podemos llamarlo string vacío. puts "Hola mundo"

# Se puede usar " o ' para los strings, pero ' es más eficiente.

puts 'Hola mundo' # Juntando cadenas

puts 'Me gusta' + ' Ruby' # Secuencia de escape

puts 'Ruby\'s party' # Repetición de strings puts

'Hola' * 3

16

Page 17: Ruby

Variables • Para almacenar un número o un string en la

memoria del ordenador, con el fin de usarlos en cálculos posteriores, necesitas dar un nombre a ese número o string. En programación este proceso es conocido como asignación. #Ejemplos de asignaciones

s = ‘¡Hola Mundo!' x = 10

17

Page 18: Ruby

Variables • Las variables locales en ruby son palabras

que: deben empezar con un letra minúscula o un

guión bajo (_) deben estar formadas por letras, números y/o

guiones bajos.

• Existen dos tipos distintos de variables dependiendo del alcanze: Locales y Globales

18

Page 19: Ruby

Variables Globales• Las variables globales se distinguen porque

están precedidas del signo dólar ($).• Ruby tiene por defecto un gran número de

variables globales inicializadas desde el principio.

• Son variables que almacenan información útil.

• Por ejemplo, la variable global $0 contiene el nombre del fichero que Ruby está ejecutando.

19

Page 20: Ruby

Introduciendo datos (gets) • ¿Cómo podemos introducir nuestros propios

datos? Para esto gets (get=coger, s=string) y chomp son de ayuda.# gets y chomp puts "¿En qué ciudad te gustaría vivir?" STDOUT.flush ciudad = gets.chomp puts "La ciudad es " + ciudad

20

Page 21: Ruby

Los métodos • Empiezan por la palabra def y acaba por

la end.

# Definición de un método def hello

puts 'Hola' end #uso del método hello

21

Page 22: Ruby

Los métodos: argumentos • Ruby deja especificar los valores por

defecto de los argumentos. • Esto se hace mediante el operador =

def sinceridad(arg1=“Messi ", arg2=“el ", arg3=“mejor.")puts arg1 + arg2 + arg3

end puts sinceridad

22

Page 23: Ruby

Rangos• El principal uso y quizás el más apropiado

para los rangos, es expresar una secuencia. Genera una secuencia donde los puntos límites

están incluidos. (1..3).to_a #es la secuencia 1, 2, 3

Genera una secuencia en la que no está incluida el límite superior. (1...5).to_a #equivale a 1, 2, 3, 4

23

Page 24: Ruby

Arrays • Es un conjunto ordenado: cada posición en la

lista es una variable que podemos leer y/o escribir.

# array vacío vec1 = []

# Los índices empiezan desde el cero (0,1,2,...) nombres = ['Satish', 'Talim', 'Ruby', 'Java']

puts nombres[0] # si el elemento no existe, se devuelve nil puts nombres[4]

24

Page 25: Ruby

Condicionales • if,else

xyz = 5 if xyz == 5

puts 'Se puede anidar un bloque if,else,end dentro de otro' else

puts "Parte del bloque anidado" end

25

Page 26: Ruby

Condicionales • if,else

Además de la igualdad, existen otros operadores condicionales:

26

== igual

!= distinto

>= mayor igual que

<= menor igual que

> mayor que

< menor que

Page 27: Ruby

Condicionales • Case

xyz = 10 par = case

when xyz % 2 == 0: true when xyz % 2 != 0: false

end puts par

27

Page 28: Ruby

Condicionales • Unless

nombre = 'Pepe' unless nombre == 'Enjuto'

puts 'Ese nombre no tiene arte ninguno'

end

28

Page 29: Ruby

Bucles • while

# Loops var = 0 while var < 10

puts var.to_s var += 1

end

29

Page 30: Ruby

Bucles • times : Lo que hace times es iterar el bloque

ese "número" de veces.

10.times do |num| puts num

end

30

Page 31: Ruby

Clases y Objetos • Un objeto es un contenedor de datos, que

a su vez controla el acceso a dichos datos.

• Asociados a los objetos está una serie de variables que lo definen: sus atributos.

• Y también un conjunto de funciones que crean un interfaz para interactuar con el objeto: son los métodos.

31

Page 32: Ruby

Clases y Objetos • Una clase es usada para construir un

objeto.

• Una clase es como un molde para objetos.

• Y un objeto, una instancia de la clase.

32

Page 33: Ruby

Clases y Objetos # define la clase Perro class Perro

# método inicializar clase def initialize(raza, nombre)

# atributos @raza = raza @nombre = nombre

end # método ladrar def ladrar

puts 'Guau! Guau!' end

33

Page 34: Ruby

Clases y Objetos # método saludar def saludar

puts "Soy un perro de la raza #{@raza} y mi nombre es #{@nombre}" end

end

# para hacer nuevos objetos, # se usa el método new d = Perro.new('Labrador', 'Benzy') puts d.methods.sort puts "La id del ojbeto es #{d.object_id}."

34

Page 35: Ruby

Clases y Objetos if d.respond_to?("correr")

d.correr else

puts "Lo siento, el objeto no entiende el mensaje 'correr'" end

d.ladrar d.saludar

35

Page 36: Ruby

Usando librerías

• Una librería es un fichero que contiene métodos y clases para su uso a posteriori.

• Para poder usar estas librerías, necesitas de los métodos require y load.

36

Page 37: Ruby

Usando librerías • Require: El método require lee una única

vez el fichero especificado.

require ‘mi_librería’

• Load: El método load lee el fihcero indicado tantas veces como aparezca la instrucción.

load ‘mi_libreria’

37

Page 38: Ruby

38

Page 39: Ruby

Wikipedia http://www.ruby-lang.org/es/about/ http://newsgug.blogspot.com/

2007/09/el-le http://www.demiurgo.org/src/ruby/

nguaje-de-programacin-ruby.html http://rubytutorial.wikidot.com/

bloques

39