Overblog
Seguir este blog Administration + Create my blog
17 junio 2012 7 17 /06 /junio /2012 19:25

Muy bien, estamos dando una introducción hasta el momento con algunos ejemplos pero sin profundizar lo suficiente, no hemos tratado de evitar algunos conceptos complejos para facilitar el aprendizaje y, siguiendo el mismo esquema vamos ahora a definir lo que son letras en Ruby:

 

Letras en Ruby

 

En Ruby las letras se definin como un caracter, es decir la letra "a", "b", "c" ... "z" son caracteres, y tambien entran algunos signos o simbolos como barra invertida "/", dos puntos ":" , etc. todos estos son caracteres, ahora una palabra es el conjunto de letras, es decir, una palabra es el conjunto de caracteres, ahora podemos definir el conjunto de caracteres como un arreglo de caracteres.

 

Simbolos

 

Un simbolo en Ruby es un conjunto de caracteres y se define con dos puntos ":", por ejemplo

 

irb(main):001:0> :suelo

=> :suelo

irb(main):002:0> :cielo

=> :cielo

irb(main):003:0> :a

=> :a

 

Podemos aplicar operadores a los simbolos, por ejemplo para saber si un simbolo es igual a otro:

 

irb(main):012:0> :cielo == :Cielo

=> false

irb(main):013:0> :cielo == :cielo

=> true

 

Todos los simbolos del ejemplo, normalmente deben empezar por una letra o un guion bajo "_" y luego puede continuar con numeros u otros caracteres no especiales.

 

Un simbolo es un objeto, por lo tanto tiene metodos que beneficia aun mas el uso de simbolos.

 

Ahora otro dato interesante es que, el simbolo al ser un arreglo de caracteres, se puede acceder a cada elemento de ellos.

 

irb(main):034:0> :tierra[0]

=> "t"

irb(main):035:0> :tierra[3]

=> "r"

irb(main):036:0> :tierra[5]

=> "a"

 

En el ejemplo :tierra[0] ingresa al primer elemento del arreglo, es decir como es un grupo de letras, el primer elemento es la letra "t" por ello la devuelve => "t"

 

Muy bien, existen mucho mas cosas que se pueden hacer pero lo veremos en los proximos capitulos, hasta aqui vamos con el capitulo 7, el siguiente es el capitulo 8, cualquier duda pueden comentar y sera absuelto, no tienes que registrarte ni nada para comentar asi que no te tomara ni un minuto exponer tu duda, comenta libremente!

 

 

Compartir este post
Repost0
14 junio 2012 4 14 /06 /junio /2012 23:42

Bueno, luego de un buen tiempo volvemos con el tutorial, en esta oportunidad tenemos los operadores y asignaciones, que si bien hemos utilizado las más básicas implicitamente vamos a definir que es cada uno y como se utiliza en Ruby.

 

Asignaciones

 

En Ruby, como sabemos todo es objeto, las asignaciones es el concepto de otorgar algun valor o dato de un lugar a otro, es decir, si tenemos un número y lo queremos guardar en una variable, se debe asignar el numero a la variable, el orden de asignacion es de derecha a izquierda, esto es importante conocer, porque a diferencia de las matematicas, en programación Ruby no puede resolver trivialidades, por ejemplo:

 

En matematicas podemos decir a = 3 y 3 = a, que implicitamente podemos saber que 3 se almacena en la variable a.

 

En lenguaje de programación Ruby decir a = 3 es una asignacion donde "a" se le asigna 3, por lo tanto "a" contiene un 3.

 

irb(main):001:0> a = 3

=> 3

irb(main):002:0> a=3

=> 3

 

Dejar o no dejar espacios es indistinto en Ruby por lo tanto "a= 3" o "a =3" es también valido.

 

Y "3 = a" en Ruby?, esto tambien es una asignacion, pero le estaríamos diciendo que a "3" se le asigne "a", que ejecutandolo tendríamos lo siguiente:

 

irb(main):003:0> 3=a

SyntaxError: (irb):3: syntax error, unexpected '=', expecting $end

        from C:/Ruby192/bin/irb:12:in `<main>'

 

Salió un error de sintaxis, y es correcto, las sintaxis en Ruby son construidas en base a objetos, por lo tanto, la asignación si se realizó, pero al momento de preguntar si el número 3 puede recibir el valor de "a" sale un mensaje que dice que no esperaba recibir el operador "=", por lo que definiremos que es un operador.

 

Operadores

 

En este maravilloso lenguaje Ruby, un operador se define conceptualmente como un caracter que puede realizar alguna modificacion o transformacion, por ejemplo algunos operadores son:

 

+

-

=

*

<<

^

**

<

>

<=

=>

>=

<=>

==

===

%

 

Existen mas operadores y se pueden crear mas, en Ruby todo es objeto y los operadores en realidad son métodos de los objetos, que tambien podemos decir que son métodos definido en la clase de los objetos.

 

Los "agrupadores" como los parentesis, los corchetes y las llaves son objetos que cumplen parte de la sintaxis y podriamos decir que son objetos especiales ya que, por ejemplo, la ausencia de parentesis, cuando la operacion no es trivial, no afecta, por ejemplo:

 

irb(main):008:0> 2 + (4 - 5)

=> 1

irb(main):009:0> 2 + 4 - 5

=> 1

irb(main):010:0> (2 + 4) - 5

=> 1

 

Este punto es importante porque cuando asignemos métodos no son necesarios los parentesis.

 

Bueno hasta este momento hemos terminado algunos conceptos muy básicos, algunos conceptos contienen definiciones de la POO (Programacion Orientada a Objetos), no se preocupen, se van a definir mas adelante, tampoco he definido aun las variables del tipo texto "string", ya que operaciones con números es más natural interactuar en el intérprete y se puede ir obteniendo beneficio de cálculos basicos compuestos.

 

Fin del punto 6 pueden pasar a hora al punto 7, no se olviden que cualquier duda o comentario lo pueden publicar sin problemas ya que no hay moderadores, un agradecimiento a nuestro lector Daniel Mercado, puedo decir que entre cobol y ruby hay ciertas similitudes muy interesantes.

Compartir este post
Repost0
19 febrero 2011 6 19 /02 /febrero /2011 12:40

Como ya sabemos hasta este punto que Ruby trata varios tipos de datos como objeto, sabemos ya que todo es objeto, sean números, letras, etc., vamos a referirnos como valores al tipo númerico, ya que de forma abstracta se puede entender el comportamiento de los objetos como números y es así como vamos a tratarlo en adelante.

Los números con puntos decimales en Ruby pueden escribirse fácilmente, sin embargo tenemos una amplia variedad de poder realizar operaciones con ellos.

 

Números con punto decimal en Ruby

 

Los números decimales solo pueden ser escritos en el sistema decimal (base 10), con un punto decimal y seguido de otro número, inclusive el 0, por ejemplo este es un número decimal en ruby:

 

irb(main):001:0> decimal=2.4

=> 2.4

irb(main):002:0> otrodecimal=7.0

=> 7.0

irb(main):003:0> decimalcero=0.0

=> 0.0

irb(main):004:0> decimalnegativo=-7.003

=> -7.003

En estos ejemplos se puede observar que se puede utilizar los guiones bajos "_" al igual que los numeros enteros, se puede hacer uso de números negativos, pero si existe un detalle respecto a números decimales grandes

 

Numéros decimales grandes en Ruby

 

En Ruby es posible almacenar números decimales muy grandes y con muchos dígitos, pero a cierta cantidad el tratamiento varía en cierto modo, como por ejemplo algunos números decimales grandes:

 

irb(main):005:0> decimallargo=300_000_000.230_000_001

=> 300000000.23

irb(main):006:0> decimalmenoslargo=233_323.231_23

=> 233323.23123

irb(main):007:0> solodecimallargo=0.230_000_001

=> 0.230000001

En estos ejemplos vemos que tenemos números con parte decimal grande, en este caso por ejemplo en la línea 5 se declara un número decimal grande y la parte decimal es grande también, pero Ruby entiende que la parte significativa de la parte entera al ser muy grande la parte decimal solo es significativa el 23 ya que el 1 al final es poco significativa, Ruby almacena el decimal como número de punto flotante, al tener un número con similares partes entera y decimal como por ejemplo la linea 6, almacena ambas partes, y en la linea 7 al tener solo parte decimal ya que la entera es 0, almacena todo el valor porque si es significativo.

 

Notación científica en Ruby


También es posible almacenar números muchos mas grandes en notación científica, permitiéndonos tener variables con valores significativamente muy altos.

 

irb(main):053:0> decimalnotacion=2.4e23

=> 2.4e+23

irb(main):054:0> decimalnotacionuno=1.0e308

=> 1.0e+308

irb(main):055:0> decimalnotacionunosimilar=1e308

=> 1.0e+308

irb(main):056:0> decimalinfinito=1e309

=> Infinity

En la línea 53 se puede observar que la expresión es 2.4 elevado a la 23 como se conoce matemáticamente, luego la línea 54 y 55 son del mismo valor porque el número elevado se convierte a un número decimal, la linea 56 hace referencia a un número infinito, en realidad el número es bastante grande y Ruby de acuerdo al ambiente en que se encuentre sea una plataforma mas o menos con recursos tendrá un propio limite en definir el valor como infinito.

Hemos culminado con los números de Ruby, espero ampliar esta información, por lo pronto hemos terminado con el titulo "5" ahora puedes seguir con el titulo "6", puedes comentar libremente todas tus dudas para absolverlas.

 

 

 

Compartir este post
Repost0
6 febrero 2011 7 06 /02 /febrero /2011 11:45

Continuamos con el tutorial de Ruby, en este articulo definiremos los números en Ruby y los tipos que existen.

 

Números enteros en Ruby

 

Sistema decimal (base 10)

En Ruby, un número entero del sistema decimal es cualquier número escrito sin punto decimal ni que empiece por 0, es decir que en Ruby el cero a la izquierda si tiene un valor muy especial, pueden ser positivos y negativos, también todos los números pueden tener guiones bajos _ entre los dígitos del número escrito, la finalidad de estos guiones bajos es para separar visualmente cifras de números:

Este es un ejemplo para escribir un número entero 10 billones en positivo y en negativo:

 

irb(main):011:0> numero=10000000000000

=> 10000000000000

irb(main):012:0> numero=-10000000000000

=> -10000000000000

Pero para mejorar la visibilidad y legibilidad del número por ser muy grande lo podemos escribir así:

 

irb(main):013:0> numero=10_000_000_000_000

=> 10000000000000

irb(main):014:0> numero=-10_000_000_000_000

=> -10000000000000

En este último ejemplo el número es el mismo pero los guiones bajos nos facilita ver el número que tenemos.

 

Todos los números enteros son mostrados como números del sistema decimal por el IRB de Ruby.

 

Sistema octal o octagesimal (base 8)

 

Un número entero del sistema octal en Ruby es representado por un 0 antes del número, es por ello que si toma importancia la forma en que se escribe el número, por ejemplo:

 

irb(main):015:0> octal=012

=> 10

 

 

La respuesta del IRB es lógica, como se ha asignado un contenido numérico en octagesimal lo entiende dinámicamente y almacena el valor entero, luego al mostrar el valor del entero lo hace de forma del sistema decimal, es decir el valor realmente es entero y es así como es almacenado en la variable.

 

 

Sistema hexadecimal (base 16)

Un número en este sistema es escrito de similar forma a la octal, solo hay que digitar 0x antes del número y se estará indicando que el número esta en base 16:

 

irb(main):016:0> hexadecimal=0x12

=> 18

irb(main):017:0> hexadecimal=0x2F

=> 47

Se utilizan letras desde la A hasta la F, para representar números en base 16 superiores a 9, el número entero almacenado es mostrado por el IRB en sistema decimal base 10.

 

 

Sistema binario (base 2)

En Ruby también es posible ingresar un sistema en el sistema binario, sencillamente hay que digitar 0b antes del número que por cierto solo debe contener unos 1 y ceros 0, así por ejemplo:

 

irb(main):018:0> binario=0b11111000

=> 248

irb(main):019:0> binario=0b1111_1000

=> 248

 

Como se puede observar se ha ingresado un número binario de 8 dígitos, como los que se usan para conocer los valores de una dirección IP, también es posible usar el guión bajo para poder leer mejor el número ingresado.

 

Este tema es bastante interesante y ayuda a comprender más el mundo Ruby, espero ampliar esta información, por lo pronto hemos terminado con el titulo "4" ahora puedes seguir con el titulo "5", puedes comentar libremente todas tus dudas.

Compartir este post
Repost0
5 febrero 2011 6 05 /02 /febrero /2011 15:58

Bueno continuamos con esta parte 3 de tutorial Ruby, en el intérprete de Ruby el IRB vamos a explicar las variables y constantes dividida en ambas partes respectivamente.

 

Variables en Ruby

 

Una variable, como bien se conoce, son almacenadores de contenidos que pueden cambiar también el contenido almacenado, pero en Ruby el contenido que almacena es en realidad es un objeto o clase, es decir que si almacenamos una palabra en realidad estamos almacenando un objeto de la clase String.

Las variables en Ruby empiezan con una letra minúscula, como se mencionó anteriormente Ruby es case sensitve (diferencia mayúscula de minúscula), luego se utiliza el asignador igual = y al lado derecho el contenido o mejor dicho el "objeto", por ejemplo:

irb(main):004:0> variableNumero=0

=> 0

irb(main):005:0> variablePalabra="palabra"

=> "palabra"

Las respuestas el IRB de Ruby son los contenidos de dichas variables, para recuperar posteriormente el contenido de las variables, simplemente digitamos el nombre de las variables:

irb(main):006:0> variableNumero

=> 0

irb(main):007:0> variablePalabra

=> "palabra"

Si se desea cambiar el contenido de la variablePalabra simplemente asignamos otro contenido:

irb(main):008:0> variablePalabra="palabrita"

=> "palabrita"

 

Constantes en Ruby

 

Una constante tiene la misma funcionalidad de una variable, salvo algunas excepciones, una constante en Ruby empieza por una letra mayúscula, el concepto es que el contenido de una constante no debería cambiar, sin embargo cuando se cambie el contenido de una constante Ruby lanzará una alerta indicando que se tenga cuidado o precaución sobre la constante inicializada, por ejemplo una constante:

irb(main):009:0> ConstantePalabra="palabra"

=> "palabra"

irb(main):010:0> ConstantePalabra="palabrita"

(irb):10: warning: already initialized constant ConstantePalabra

=> "palabrita"

Como se puede observar recibimos el "warning" indicado por el IRB en la línea 10 del intérprete cuando alteramos el contenido de una constante.

Listo, espero ampliar esta información, por lo pronto hemos terminado con el titulo "3" ahora puedes seguir con el titulo "4", puedes comentar libremente todas tus dudas.

Compartir este post
Repost0
30 enero 2011 7 30 /01 /enero /2011 12:25

Ruby es un lenguaje totalmente orientado a objetos, creado por Yukihiro Matsumoto, nos muestra un lenguaje muy competente con fácil y elegantes mecanismos de escritura de código lo cual simplifica bastante la programación y genera alta productividad.

 

Respuestas a instrucciones de RUBY

 

Muy bien, ahora empezaremos con la interacción con Ruby, para comenzar utilizaremos el IRB, se menciona que Ruby distingue minúsculas de mayúsculas, es decir es "case sensitive", como todo es objeto en Ruby digitamos un objeto "palabra" y presionamos Enter, Ruby respondera de la siguiente manera:

 

irb(main):001:0> "palabra"

=> "palabra"

 

Como vemos, nos ha devuelto el valor del objeto String "palabra", puesto que solo el hecho de escribir las letras entre comillas Ruby lo entiende dinámicamente como un objeto String (String es la clase para todas las cadenas de texto). Como es un objeto se puede utilizar así también sus respectivos métodos, como por ejemplo el método capitalize, este convierte la cadena de texto en capital (la primera letra en mayúscula) y se accede colocando un punto, de la siguiente manera:

 

irb(main):002:0> "palabra".capitalize

=> "Palabra"

 

Como se puede observar, se ha utilizado directamente un método del objeto "palabra", ahora creo que lo importante es saber que métodos existen para este objeto.

 

El método mas importante: methods.

 

En Ruby todo es un objeto, incluyendo un numero o una expresión booleana (verdadero o falso), etcétera, es por ello que para conocer que propiedades o métodos posee, simplemente digitamos: .methods y nos lo muestra en una lista, por ejemplo:

 

irb(main):003:0> "palabra".methods

=> [:<=>, :==, :===, :eql?, :hash, :casecmp, :+, :*, :%, :[], :[]=, :insert, :length, :size, :bytesize, :empty?, :=~, :match, :succ, :succ!, :next, :next!, :upto, :index, :rindex, :replace, :clear, :chr, :getbyte, :setbyte, :to_i, :to_f, :to_s, :to_str, :inspect, :dump, :upcase, :downcase, :capitalize, :swapcase, :upcase!, :downcase!, :capitalize!, :swapcase!, :hex, :oct, :split, :lines, :bytes, :chars, :codepoints, :reverse, :reverse!, :concat, :<<, :crypt, :intern, :to_sym, :ord, :include?, :start_with?, :end_with?, :scan, :ljust, :rjust, :center, :sub, :gsub, :chop, :chomp, :strip, :lstrip, :rstrip, :sub!, :gsub!, :chop!, :chomp!, :strip!, :lstrip!, :rstrip!, :tr, :tr_s, :delete, :squeeze, :count, :tr!, :tr_s!, :delete!, :squeeze!, :each_line, :each_byte, :each_char, :each_codepoint, :sum, :slice, :slice!, :partition, :rpartition, :encoding, :force_encoding, :valid_encoding?, :ascii_only?, :unpack, :encode, :encode!, :to_r, :to_c, :>, :>=, :<, :<=, :between?, :nil?, :!~, :class, :singleton_class, :clone, :dup, :initialize_dup, :initialize_clone, :taint, :tainted?, :untaint, :untrust, :untrusted?, :trust, :freeze, :frozen?, :methods, :singleton_methods, :protected_methods, :private_methods, :public_methods, :instance_variables, :instance_variable_get, :instance_variable_set, :instance_variable_defined?, :instance_of?, :kind_of?, :is_a?, :tap, :send, :public_send, :respond_to?, :respond_to_missing?, :extend, :display, :method, :public_method, :define_singleton_method, :__id__, :object_id, :to_enum, :enum_for, :equal?, :!, :!=, :instance_eval, :instance_exec, :__send__]

Vemos en la lista que también se encuentra el método capitalize y muchos métodos más, de esta manera rápidamente conocemos con que métodos cuenta nuestro objeto y luego poder indagar para saber que realiza o que funcionalidad tiene cada método listado.

Bueno,como ya es costumbre, espero ampliar esta información, por lo pronto hemos terminado con el titulo "2" ahora puedes seguir con el titulo "3", puedes comentar libremente todas tus dudas.

 

 

Compartir este post
Repost0
29 enero 2011 6 29 /01 /enero /2011 12:14

Empezamos el tema 1 de Ruby, el IRB, que es y para que nos sirve en RUBY.

 

Definición:

 

El IRB significa Interactive RuBy shell, que podríamos traducir como shell interactivo de Ruby, en este caso shell lo podríamos traducir computacionalmente como consola de linea de comandos, entonces si sumamos la definición de interactivo, tenemos entonces un Interprete de comandos de Ruby.

 

Composición del IRB:

 

El IRB ha sufrido ciertas modificaciones, antes era muy simple y ahora te muestra algunos datos de ayuda, en esta ocasión ya que trabajamos con Ruby 1.9.0; definiremos el IRB que viene con esta versión:

Interprete

Cuando abrimos el IRB, nos muestra una consola de acuerdo a cada sistema operativo, en este caso la imagen corresponde a un IRB en Windows Vista, su forma de operar es recibir una instrucción y devolver una respuesta.

Esta compuesto por:

irb(main):001:0>

=>

¿Que significa cada elemento?

El "irb" sirve para indicarte que estas en la consola IRB.

El "(main)" hace alución que te encuentras en el contexto de un programa, es decir los comandos que insertes están dentro de un programa y pues, le han puesto "(main)" o traducido como "principal", eso si, cada ventana de consola IRB o mejor dicho, cada instancia de IRB, es independiente de la otra, es decir cada variable que tengas en una ventana IRB no se refleja en la otra nueva ventana IRB que abriste.

El ":001" te indica la linea, definido sencillamente la linea en que te encuentras, esta se incrementa de 1 en 1, es decir la siguiente linea sera :002, :003 y así sucesivamente.

El ":0" significa la profundidad, es decir, el sangrado, por ejemplo, en Ruby los IF terminan con END, entonces si pones un IF y aun no pones un end, el ":0" cambia a ":1" en las siguiente linea, si escribes el END, entonces retorna a ":0", y así sucesivamente puedes poner un IF dentro de otro IF, entonces el nivel de profundidad te dirá pues, si vas en :1 nivel de profundidad, :2 niveles de profundidad, :3 niveles de profundidad y así sucesivamente.

El ">" significa si la sintaxis esta completa o no, es decir, si pones por ejemplo a=  el ">" cambia a "*", que te indica que la sintaxis esta incompleta, si las sintaxis están completas siempre te dirá siempre ">"

El "=>" significa que la instrucción la ha realizado y te devuelve la respuesta correspondiente.

Por cierto, el IRB en esta versión por defecto, todo es en blanco y negro, los colores mostrados es de manera ilustrativa.

Si quieres probar comandos e instrucciones de Ruby, el IRB es muy utilizado para ello.

Luego de esta explicación podemos interpretar la imagen anterior, donde leemos que la "linea 1" recibió el comando 1+1 y que respondió 2, luego vemos que la "linea 2" esta lista para recibir un comando 

Conforme se utilizará más el IRB nos interesará más las instrucciones y las respuestas, nos centraremos entonces en saber que instrucciones recibe Ruby y que obtendremos de ello.

 

Bueno,como siempre, espero ampliar esta información, por lo pronto hemos terminado con el titulo "1" ahora puedes seguir con el titulo "2", puedes comentar libremente.

Compartir este post
Repost0
2 enero 2011 7 02 /01 /enero /2011 21:49

Hola, empezamos este tutorial Ruby hecho en el Perú, espero sugerencias y/o comentarios para poder mejorar y profundizar bastante en este maravilloso lenguaje.

 

Se tiene entendido que debes ser capaz de lo siguiente:


Eres una persona que puede descargar e instalar contenidos desde internet y tienes almenos conocimientos básicos en computación al igual que leer o escribir, es lo actual en esta generación.

 

Guía para tener Ruby en mi computador funcionando.


Ruby funciona en diversas plataformas, existen para Windows, Linux, Mac, Symbian, etc.

Lo que se debe hacer es ingresar a la pagina oficial de Ruby y descargar de preferencia la ultima versión, para windows existen unos instaladores msi.

Algunas de las plataformas donde funciona Ruby no se encuentran los links de descarga de la pagina oficial.

Se usa la versión 1.9.2.

De forma adicional se debe considerar que se puede ejecutar Ruby en un interprete, es por ello que se recomienda utilizar el interprete IRB, o uno similar, también es posible guardar un fichero y ejecutarlo, por ejemplo para otras plataformas que no cuenten con un interprete construido.

 

¿Que prueba podría ejecutar para saber si funciona Ruby?


En tu interprete ejecuta lo siguiente: 

1+1

Y en la linea siguiente te debe aparecer

2

Si funciona excelente, ahora para los que no cuente con un interprete van a tener que seguir leyendo el tutorial hasta donde aprenden la parte de guardar código Ruby en un fichero para que se ejecute en su respectiva plataforma.

Una imagen ayuda a ilustrar el ejemplo del interprete:

Interprete.jpg

Bueno espero ampliar esta información, por lo pronto hemos terminado con el titulo "0" ahora puedes seguir con el titulo "1", pueden comentar libremente.

Compartir este post
Repost0

Presentación

  • : El blog de Daniel A. Nuñez C.
  • : Un blog sobre tecnologías y futuro, también sobre lenguaje de programación Ruby y más.
  • Contacto

Perfil

  • Daniel A. Nuñez C.
  • Ingeniero de Sistemas
  • Ingeniero de Sistemas

Donaciones/Donations

Por favor considera realizar una donación

Please make a donation

btn_donateCC_LG.png

Buscar Tema En Este Blog

Archivos