Академический Документы
Профессиональный Документы
Культура Документы
Este es el famoso editor de texto del que les hablaba, con elque van a crear obras
maestras-...... dentro de unas cuantas clases xD.
Les muestro una parte de codigo asi la analisamos y la ejecutamos asi ven como vamos a
trabajar a lo largo del taller =)
Escriban en el editor:
puts 'Hola'
Ahora, para poder ejecutar el programa primero deben guardarlo en su disco, con la
extension *.rb, que es la que tienen todos los scripts de Ruby. Asi que nos vamos a File-->Save As o apretamos Control+S y guardamos el archivo donde queremos (yo les
recomiendo que guarden este y todos los archivos del taller en una misma carpeta, bien
identificada, asi ganan orden y un acceso mas facil para despues no tener que ir buscando
los archibos por la PC --Bajon!--) pero con la extension *.rb.
Por ejemplo puts.rb
Una vez que lo guardaron con la extension *.rb el Scite habra reconocido este archivo
como un script de Ruby por eso ahora podemos ejecutarlo para ver como anda
Asi que
presionen F8, y veran que a la derecha aparecera otra ventana de fondo blanco, en la
quen o van a poder escribir. Esta "nueva ventana blanca" recibe el nombre de terminal y es
>ruby puts.rb
Hola
>Exit code: 0
Buenisimo.
La sentencia puts sirve para mostrar strings (string= cadena de texto) en pantalla, si lo
pensas te das cuenta puts = put string = poner cadena de texto.
En ruby, tenemos distintos tipos de datos que, a grandes rasgos, podemos identificar
como Strings (o cadenas de texto) yNumericos.
Estos ultimos, los subclasificamos por tipo, y distinguimos a los Enteros y
los Reales (tambien llamados de Coma Flotante o Float) que serian los Reales Decimales.
Para trabajar con numeros, hacemos uso de los Operadores Aritmeticos que nos permiten
realizar las operaciones mas comunes, como la suma( + ), la resta( - ), division( / ) y
multiplicacion( * ).
Ahora vamos a ver unos ejemplos para que entiendan mejor como trabajar los numeros
con Ruby.
Nota: las lineas antecedidas por el simbolo # son comentarios, es decir que esas lineas
seran ignoradas por el interprete. Esto es util, por ejemplo cuando queremos describir que
hace un pedazo de codigo, o comentar algunas lineas del mismo codigo, para que no sean
interpretadas, etc,etc.
Fijense que cuando ejecuten este codigo, les dara como resultado
>ruby operadores.rb
8
3
16
1
>Exit code: 0
Si lo leen, se daran cuenta que la division de 3 con 2, dio como resultado 1 y no 1.5. Esto
es porque los numeros 3 y 2 son numeros Enteros. Para que el resultado sea 1.5 ,
tendriamos que haber puesto 3.0 divido 2, ya que el 3.0 es un numero decimal o de coma
flotante. Hagan la prueba y veran que:
puts 3.0 / 2
Operador Mod ( % )
El operador Mod, calcula el resto de una division entre dos numeros. Un ejemplo de su
uso:
Potencia de un numero ( ** )
Ruby, tambien nos facilita el operador ** que sirve para calcular la potencia de un numero.
Por ejemplo, si queremos calcular 3 al cuadrado y 2 al cubo:
puts 3 ** 2
puts 2 ** 3
As de facil muchachos
Variables en Ruby
Bueno, como ya sabran algunos y otros no, basicamente las variables son dates que,
como indica su nombre, pueden variar durante la ejecucion de un programa, ya sea
asignandoles un valor y luego otro, o modificando con algun operador esos valores,
etc,etc.
Estas variables, si bien pueden cambiar el valor de sus datos, siempre mantienen el mismo
tipo de datos, es decir que una variable numerica, ser siempre numerica a lo largo del
programa.
En Ruby, el valor a las variables se asigna as:
Nota: Sepan que Ruby es "case sensitive" osea que discrimina entre mayusculas y
minusculas, por lo cual no seria igual la variable miReal que miREAL. As que tengan
cuidado y acuerdense y fijense como escriban las variables.
- Los enteros no llevan punto decimal, sino serian definidos como Reales o Decimales
Por ejemplo, vamos a definir una variable como string y la convertiremos en Entera, y
luego la vamos a convertir a Decimal.
#Defino el string y luego le asignaremos ese valor convertido en entero a una variable
entera:
miString = '1991'
#Convierto miString en entero y se lo asigno a la variable miEntero:
miEntero = miString.to_i
#Convierto miEntero en Decimal / Real y lo asigno a la variable miReal:
miReal = miEntero.to_f
#Imprimo en pantalla los tres valores de las variables:
puts miReal, miEntero, miString
Lectura de Datos
En las "capitulos" (?) anteriores, usamos el comando "puts", para mostrar los datos en
pantalla. Estos datos, etan definidos por nosotros, dentro del programa, es decir que no
eran ingresados en el momento de ejecucion del script.
Ahora vamos a ver como tomar datos durante la ejecucion de un programa, es aqu
Por ejemplo, vamos a pedir que el usuario ingrese una edad por teclado, se la
asignaremos a una variable y luego mostraremos el valor de esa variable en pantalla:
Nota: Cuando ejecutes el codigo del ejemplo de Gets y Chomp tendras que hacer clic en la
ventana de output (la salida) del SciTE ya que el programa va a estar esperando que
ingreses tu edad, si no lo haces el programa no va a continuar hasta que ingreses una
edad.
Si vieron atentamente el codigo se daran cuenta que hay una CONSTANTE llamada
"STDOUT" que yo nunca inicializ (es decir, no le asigne ningun valor ni la defin). Esta
constante es una constante interna de Ruby, que almacena todas las salidas del
programa.
STDOUT.flush
El flush es un metodo que lo que hace es limpiar STDOUT para que no quede con basura
de salidas anteriores, es decir que siempre tenes que uzarlo antes de tomar un valor.
edad = gets.chomp
Esta linea de codigo lo que hace es asignar a la variable "edad" el resultado del gets.
Cuando vos tomas un valor con gets, Ruby automaticamente le agrega al final el "\n" que
es el salto de linea, lo que hace el chomp es eliminar ese "\n" almacenado en el gets, asi
que no te olvides de ponerlo!.
Con este programa vamos a tomar 2 numeros por teclado, y vamos a sumarlos para luego
calcular su promedio.
Si se fijan, aqui para poder operar con los numeros, tube que convertir los datos
ingresados en Enteros (Integers), ya que, como indica su nombre, gets, toma todos los
valores como STRINGS. Es por eso que tube que convertir con el metodo to_i numeroA y
numeroB para que sean enteros.
Bueno ahora que ya saben variables simples, operaciones con numeros y variables, saben
leer datos por teclado, saben constantes, saben los tipos de datos con los que nos
podemos encontrar, etc. Les voy a dejar algunos ejercicios para que practiquen, y retengan
mejor la sintaxis y lgica.
1) Hagan un programa que, ingresado un numero por teclado correspondiente a horas,
calcule a cuantos minutos equivale.
Recuerden convertir todos los numeros con to_i o to_f para poder hacer operaciones.
Por ejemplo, definimos la variable "a" como String (que en Ruby es tomada en cuenta
como un objeto) y luego usamos el metodo length para obtener su longitud:
Esto nos va a dar por salida el numero "31", que es la longitud de carcteres (de la A a la Z
+ a ala z + 0 al 9+ el "_" -guion bajo- + el " " -espacio en blanco).
El metodo length es un metodo predefinido por Ruby, es decir, que no lo definimos
nosotros mismos. Mas adelante vamos a ver como definir uno nosotros, manualmente.
puts c
puts a
Pensando en Objetos
Bueno, tanto que prometi hablar de objetos, y ac estamos. Cuando entiendan lo expuesto
en este capitulo, van a entender mejor lo referente a Mtodos, y cuales son las utilidades
de los mismos. Ademas, esto va a cambiar ampliamente la forma en que se planteen la
programacion, ya que van a poder hacer POO (Programacion Orientada a Objetos).
La abstraccin
La abstraccin, cuando nos referimos a POO, es la capacidad de poder abstraer las
propiedades y comportamientos comunes para poder representar un objeto.
Por ejemplo, supongamos que vamos a representar un alumno como objeto, entonces si
bien todos los alumnos son diferentes, (algunos altos, otros enanos, rubios, morochos, etc)
tenemos que abstraernos a las propiedades y comportamientos que los hacen alumnos, y
que tienen en comun entre ellos, entonces podremos reconocer que todos los alumnos:
- Van a una escuela determinada.
- Tienen materias.
- Tienen un numero determinado de las mismas.
- Aprueban y Desaprueban sus materias.
- Tienen una calificacion, etc.
Encapsulamiento
Esto significa, que las propiedades de cada objeto son privadas (propias del objeto)
y ajenas a los demas objetos. Ademas, solo se puede acceder a ellas por Mtodos (como
vimos en el capitulo anterior), que pueden ser publicos o privados
Al poner en practica estos conceptos desarrollando un objeto, no nos va a interesar su
funcionamiento interior, sino sus "productos" es decir, lo que hace, lo que nos regresa.
Herencia
Cuando se crean objetos nuevos a partir de otros existentes, estos van a heredar las
propiedades y comportamientos de sus "antecesores" por decir de algun modo. Hay solo
dos tipos de herencia: la Herencia Simple y la Herencia Mltiple.
La herencia es muy usada cuando hacemos POO ya que se puede especificar el
comportamiento de las clases hijas, lo cual nos deja un mejor diseo en el sistema
Polimorfismo
El polimorfismo es la capacidad del objeto de tener mtodos con el mismo nombre, pero
con comportamientos diferentes. Esto es conocido tambien como sobre escritura de
mtodos.
Acoplamiento
Es la medida en que un objeto depende de otro u otros, y mientras menor sea este
acoplamiento, mejor.
Espero que les halla servido, y disculpenme, que les halla puesto esta parte tan "teorica y
nada prctica" pero va a ser necesario que lo entiendan, y sepan para poder entender bien
la POO, ya que Ruby es un lenguaje orientado a objetos.
Ahora si, podemos seguir.
"molde" para hacer objetos. Y cada objeto seria una instancia de la clase
es facil.
Bueno... y resumiendo: ahora ya saben que es un mtodo, que es un objeto, saben en que
consiste la POO y saben que es una clase. As que no van a tener problemas para
entender el siguiente ejemplo, donde vamos a definir una clase, sus metodos, y objetos,
para que puedan aplicar tooodo lo aplicado =).
Lean el codigo, que en el mismo, est todo explicado, ya que puse comentarios para que
a = Perro.new('siberiano','pancho','16')
a = Perro.new('siberiano','pancho','16')
Cualquier duda que tengan, peguen un chifle, y yo se las respondo aca mismo en T!
Espero que les halla gustado, porque me sac mucho esfuerzo, ademas lo escribi toooodo
yo
Saludos genteeeee!!!