Control de Flujo
Vamos ahora a manejar un poco el flujo del programa con cosas mas divertidas que solo preguntar cosas de a una.
Las palabras claves de esta clase son:
Iterando.
Uh se puso dificil la cosa!!. Esto de iterar suena raro pero van a ver que es una pavada, y no se asusten pero encima les tengo que contar como se dice en ingles, se dice loop. Raro no?. Bueno no tanto en realidad, les cuento un poco cuando se usa.
Resulta que cuando tenemos que repetir muchas veces una accion, como mostrar los numeros de uno a 20, es medio aburrido hacer
| Instruccion a la computadora | Lenguaje Humano |
|---|---|
puts 1 puts 2 puts 3 puts 4 puts 5 puts 6 ... ... puts 19 puts 20 |
mostra el uno mostra el dos mostra el tres mostra el cuatro mostra el cinco mostra el seis ... ... mostra el 19 mostra el 20 |
y asi…hasta mi abuela que es re pilas se aburre y se va de viaje a Mar del Plata con los jubilados. Entonces como podemos hacer con la compu??
Podemos decirle algo asi:
| Instruccion a la computadora | Lenguaje Humano |
|---|---|
numero = 0;
while numero < 20
puts numero
numero = numero + 1
end
|
defini la variable numero en cero mientras numero es menor a veinte mostra el valor de numero suma en uno a numero repetir eso |
No se ustedes pero mi abuela y yo preferimos hacerlo asi porque ademas si en vez de veinte son cien, es mas dificil y para algo tenemos la compu no?
La estructura estandard de un loop.
Analicemos ahora un poco mas en detalle el ejemplo anterior, veamos la primer linea de codigo:
numero = 0;
Esto que parece tan trivial, realmente tiene mucha importancia, estamos inicializando la variable numero en cero, hacemos esto porque queremos contar desde 0 hasta 19, ahora que pasaria si quisieramos contar desde 1?, simplemente cambiariamos el valor de numero por un valor inicial en uno:
numero = 1
Veamos ahora la siguiente linea
while numero < 20
En esta linea, tenemos algo que es clave, es la condicion que se tiene que cumplir para que la compu siga iterando en nuestro caso el numero que se muestra llegaria hasta el 19, pero que pasaria si queremos que llegue hasta el 20, que tenemos que cambiar?
La respuesta es, la condicion, tenemos que hacer una que incluya el 20, ya que menor que 20 no lo incluye, pero menor o igual a 20 si.
while numero <= 20
Aca estariamos diciendole hace mientras el numero sea menor o IGUAL a 20 y esa condicion si la cumple el 20.
La siguiente linea es bastante simple, es imprimir el numero.
puts numero
Es era facil pero la que se viene es otra importantisima es el incremento de la variable numero que significa eso? significa el pequenio paso que voy a avanzar en cada uno de las iteraciones, en este caso como estoy sumando los numeros consecutivos de a uno
numero = numero + 1
Iterando con preguntas
Bueno pero ahora tenemos que repetir cosas con preguntas y palabras, que se pensaban??? que era joda esto?. Bueno vamos a ver que no es tan dificil, al contrario les va a resultar tan facil que se van a terminar llendo de vacaciones con la abuela.
Miremos el ejemplo de despedida:
input = ' '
while input != 'chau'
puts input
input = gets.chomp
end
puts 'Vuelvan prontoooo !!!!'
Aca usamos bastantes cosas divertidas como el hacer mientras que aprendimos recien y el gets del primer programa interactivo. Se lo dejamos para que nos lo expliquen ustedes.
Ejercicios
Hacer un programa que muestre los numeros que van del 30 al 50
Hacer un programa que muestre los numeros pares entre 1 y 70
Hacer un programa que muestre los numeros impares entre 2 y 90
Hacer un programa que muestre los numeros entre 1 y 70, pero al reves, o sea empezando por el 70, siguiendo por el 69, 68, etc… !!!
Hacer un programa que ingresando un numero lo eleve al cuadrado.
Ejemplo
Ingrese un numero
-> 5
El numero al cuadrado es: 25
Hacer un programa que ingresando un numero lo eleve al cubo
Ejemplo
Ingrese un numero
-> 2
El numero al cubo es: 8
Hacer un programa que ingresando un numero lo eleve a cualquier potencia.
Ejemplo
Ingrese un numero
-> 2
Ingrese la potencia a la que desea elever el numero:
-> 4
El numero 2 elevado a la 4 potencia es: 16
Hacer un programa que escriba al reves una palabra
Ejemplo
Ingrese una palabra:
->Mariano
La palabra al reves es: onairaM
Hacer un programa que calcule el resto en una division
Ejemplo
Ingrese el numerador
-> 7
Ingrese el divisor
-> 2
El resto de la division es: 1 y el resultado 3.
Ayuda
Solucion ejercicio palabra:
# Pido al usuario que ingrese una palabra p 'Ingrese una palabra' # Leo del teclado palabra = gets.chomp # Defino las palabras i=0 largo = palabra.length palabra_al_reves='' # Mientras no sea el final de la palabra, o sea el largo sea mayor a cero while largo > 0 # Leo al reves la palabra y cargo el resultado en palabra_al_reves palabra_al_reves[i,1] = palabra[largo - 1,1].to_s # Retrocedo un elemento en la cadena largo = largo - 1 # Incremento el contador para la palabra al reves i = i + 1 end # Imprimo el resultado puts palabra_al_reves