Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Minor fixes #32

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 20 additions & 20 deletions capitulos/metodos.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Los programadores pueden decir que estamos "llamando el método `tick` de
`clock`" o llamamos al "`tick` de `clock`".

Entonces, ¿has hecho la prueba? Bien. Bueno, estoy seguro que
recordaras los métodos `puts`, `gets`, y
recordarás los métodos `puts`, `gets`, y
`chomp`, dado que ya hablamos sobre ellos.
Probablemente también recuerdas los métodos de conversión
`to_i`, `to_f`, y `to_s`. Sin embargo,
Expand Down Expand Up @@ -56,7 +56,7 @@ Esto también nos da un profundo entendimiento de porque podemos hacer
está diciendo a `'pig'` de hacer de multiplicando, pero `5*'pig'`
está diciendo a `5` de hacer de multiplicando. `'pig'` sabe como
hacer `5` copias de si mismo y agregar todos ellos juntos; sin embargo,
`5` tendrá mucha mas dificultad en tiempo de hacer `'pig'` copias
`5` tendrá mucha más dificultad en tiempo de hacer `'pig'` copias
de si *mismo* y sumarlos a todos juntos.

Y, por supuesto, continuaremos teniendo `puts` y `gets` para explicar.
Expand All @@ -68,7 +68,7 @@ diciendo es `self.puts 'ser o no ser'`.
Entonces ¿que es `self`? Ésta es una variable especial que apunta al objeto en
el que estás. No siempre sabemos como estar *en* un objeto, pero hasta que nos
demos cuenta, siempre iremos a estar en un gran objeto que es... ¡el programa entero! (sin
embargo en este caso no es posible llamarlo en forma explícita)
embargo en este caso no es posible llamarlo en forma explícita).
Observa lo siguiente:

*Código:*
Expand Down Expand Up @@ -116,7 +116,7 @@ el cual nos da una version invertida de un texto:
```ruby
var1 = 'parar'
var2 = 'subrayado'
var3 = 'Puedes pronunciar esta oración al reves?'
var3 = 'Puedes pronunciar esta oración al revés?'

puts var1.reverse
puts var2.reverse
Expand All @@ -131,14 +131,14 @@ puts var3
```html
rarap
odayarbus
?sever la nóicaro atse raicnunorp sedeuP
?séver la nóicaro atse raicnunorp sedeuP
parar
subrayado
Puedes pronunciar esta oración al reves?
Puedes pronunciar esta oración al revés?
```

Como puedes ver, `reverse` no revierte el orden en el string original; éste
sólo hace una nueva versión de éste en reversa. Esto es porque `var1` continua
sólo hace una nueva versión de éste en reversa. Esto es porque `var1` continúa
`'parar'` aún después de que llamamos `reverse` sobre `var1`.

Otro método para texto es `length`, el cual nos dice el número de caracteres
Expand Down Expand Up @@ -229,10 +229,10 @@ pero es importante entenderlo. Hay algunos métodos los cuales *hacen* cambios a
objetos asociados, pero no los hemos visto aún, y no lo haremos por algún tiempo.

El último tipo de métodos que veremos son los de formato visual. El primero es, `center`,
suma espacios al comienzo y final para hacer que este centrado. Sin embargo, sólo tienes
suma espacios al comienzo y final para hacer que esté centrado. Sin embargo, sólo tienes
que decir `puts` a lo que quieres imprimir, y `+` a lo que quieres sumar, pero
tienes que decir a `center` que ancho tiene que tener el string centrado. Entonces si quiero
centrar las lineas de un poema, debería hacer algo como esto:
centrar las líneas de un poema, debería hacer algo como esto:

*Código:*

Expand Down Expand Up @@ -261,7 +261,7 @@ cansado para buscar esto. (Entonces, quise alinear la parte
de los textos. Esto es así sólo porque pienso que es más lindo de
esta forma. Los programadores generalmente tienen duros conceptos acerca
de que es lindo en un programa, y a menudo confrontan acerca de esto.
Cuanto más programes, más lograras tu propio estilo.) Hablando de ser
Cuanto más programes, más lograrás tu propio estilo.) Hablando de ser
perezoso a la hora de programar, lo cual no es siempre algo malo en
programación. Por ejemplo, fíjate como guardé el ancho del poema en la
variable `lineWidth`? Esto es que si entonces quiero regresar
Expand All @@ -272,7 +272,7 @@ una virtud en programación.

Entonces, acerca del centrado... tú te darás cuenta que esto no es muy
lindo como podría serlo un procesador de texto. Si realmente quieres un
perfecto centrado (y quizás una fuente mas linda), entonces deberías
perfecto centrado (y quizás una fuente más linda), entonces deberías
¡sólo usar un procesador de textos!. Ruby es una herramienta maravillosa,
pero no la herramienta correcta para *cualquier* trabajo.

Expand Down Expand Up @@ -333,7 +333,7 @@ sin problemas. Aunque, una rápida vista de esta sección sobre
No hay tantos métodos numéricos como los hay para textos (pienso
que aun no los conozco a todos sin recurrir a la ayuda de documentación).
Aquí, vamos a mirar el resto de los métodos aritméticos, un generador
de números aleatorios, y el objeto `Math` , con sus métodos trigonométricos
de números aleatorios, y el objeto `Math`, con sus métodos trigonométricos
y transcendentales.

Más de aritmética
Expand All @@ -345,7 +345,7 @@ escribir algo así `5**2`. También puedes usar flotantes para tus
exponentes, entonces si quieres una raíz cuadrada de 5, deberías escribir
`5**0.5`. Los métodos módulo te dan el sobrante después de una división
por un número. Entonces, por ejemplo, si divido 7 por 3, obtengo 2 con un remanente
de 1. Vamos a ver como es que trabaja en un programa:
de 1. Vamos a ver cómo es que trabaja en un programa:

*Código:*

Expand All @@ -371,7 +371,7 @@ De la última línea, aprendimos que un año (no bisiesto) tienen algún
número de semanas, más un día. Entonces si tu cumpleaños fue un Martes
este año, el próximo año será un Miércoles. Tu también puedes usar
flotantes con el método módulo (`%`). Básicamente, funciona de una manera
lógica... pero voy a mostrar un poco mas como trabajar con esto.
lógica... pero voy a mostrar un poco más como trabajar con esto.

Hay un último método para mencionar: `abs`. Éste sólo toma el valor
absoluto de un número:
Expand Down Expand Up @@ -416,7 +416,7 @@ puts(rand(1))
puts(rand(1))
puts(rand(99999999999999999999999999999999999999999999999999999999999))
puts('El pronosticador del tiempo dijo que hay '+rand(101).to_s+'% chances de que llueva,')
puts('pero nunca debes confiar en el.')
puts('pero nunca debes confiar en él.')
```

*Resultado:*
Expand All @@ -433,22 +433,22 @@ puts('pero nunca debes confiar en el.')
0
22982477508131860231954108773887523861600693989518495699862
El pronosticador del tiempo dijo que hay 47% chances de que llueva,
pero nunca debes confiar en el.
pero nunca debes confiar en él.
```

Fijate que utilicé `rand(101)` para obtener números entre `0`
y `100`, y que el `rand(1)` siempre devuelve `0`. No
entender el rango posible de retorno de valores es el error más grande que veo
en gente que hace `rand`; aún programadores profesionales, más aún en
productos finalizados que puedes comprar. Incluso tenía un reproductor de CD
que si se configuraba en "Reproducción aleatoria," reproducia
todas las canciones menos la última ... (Me pregunto ¿qué hubiera pasado si hubiera
que si se configuraba en "Reproducción aleatoria," reproducía
todas las canciones menos la última... (Me pregunto ¿qué hubiera pasado si hubiera
puesto un CD con sólo una canción en ella?)

Algunas veces querrás que `rand` retorne el *mismo*
random de números incluso en la misma secuencia en dos diferentes ejecuciones
random de números incluso en la misma secuencia en dos ejecuciones diferentes
de tu programa. (Por ejemplo, una vez estaba utilizando números generados
aleatoriamente para crear un mundo al azar por un juego de computadoras.
aleatoriamente para crear un mundo al azar para un juego de computadoras.
Encontré un mundo que realmente me gustó, quizás me hubiera gustado jugar de nuevo
con éste o enviarlo a un amigo.) Con el fin de hacer esto, tu necesitas configurar
la *"generación de éste"*, lo que se puede hacer con `srand`. Como
Expand Down