Diario de un programador.-
Dia 39
En un principio mencioné que un procedimiento se
diferenciaba de una función ya que este no devolvía ningún valor.
Modificaré el programa anterior para mostrar cómo se
vería si fuese un procedimiento.
Sub
BuscaArea
pi = Math.Pi
radioCuadrado = Math.Power(radio,2)
area = pi * radioCuadrado
TextWindow.WriteLine("El area es " +
area)
EndSub
TextWindow.Write("Ingresa el largo del radio ")
radio = TextWindow.ReadNumber()
BuscaArea()
En
este caso, toda la operación e incluso el resultado son mostrados por la
subrutina. Es por eso que se dice que no devuelve o retorna ningún resultado,
ya que la operación finaliza en la subrutina.
Diario de un programador.- Dia 40
Hoy
es el último día de Septiembre y debo reconocer que estuve algunos días sin
programar, pero aquí estoy de nuevo para tomar las riendas del código. Seguiré
profundizando aún más con las funciones.
Otra
de las tantas cosas que se pueden hacer con las funciones, aparte de ejecutar
operaciones o cálculos, es mostrar por ejemplo un menú. Así como lo hice en un
capítulo anterior, donde cada vez que quería mostrar el menú ejecutaba un
"salto" con la instrucción goto. Aquí se realizará esa tarea con una
función. Voy a recordar cómo era el código en ese entonces.
inicio:
TextWindow.WriteLine("INVENTARIO")
TextWindow.WriteLine(" ")
TextWindow.WriteLine("1) Objetos")
TextWindow.WriteLine("2) Armas")
TextWindow.WriteLine("3) Accesorios")
TextWindow.WriteLine("4) Estado")
TextWindow.WriteLine("5) Salir")
TextWindow.WriteLine(" ")
TextWindow.Write("Ingresa una opcion ")
opcion = TextWindow.ReadNumber()
If
opcion = 1 Then
TextWindow.Clear()
TextWindow.WriteLine("OBJETOS")
TextWindow.WriteLine(" ")
TextWindow.WriteLine("Pocion curativa x 10")
TextWindow.WriteLine("Cola de fenix
x 5")
TextWindow.WriteLine("Pocion
de mana x 3")
TextWindow.Pause()
TextWindow.Clear()
Goto
inicio
EndIf
If
opcion = 2 Then
TextWindow.Clear()
TextWindow.WriteLine("ARMAS")
TextWindow.WriteLine(" ")
TextWindow.WriteLine("Mandoble x 1")
TextWindow.WriteLine("Hacha
x 1")
TextWindow.WriteLine("Daga
x 1")
TextWindow.Pause()
TextWindow.Clear()
Goto
inicio
EndIf
If
opcion = 3 Then
TextWindow.Clear()
TextWindow.WriteLine("ACCESORIOS")
TextWindow.WriteLine(" ")
TextWindow.WriteLine("Aro de fuerza x 2")
TextWindow.WriteLine("Collar de magia x 1")
TextWindow.WriteLine("Guante gengi x 1")
TextWindow.Pause()
TextWindow.Clear()
Goto
inicio
EndIf
If
opcion = 4 Then
TextWindow.Clear()
TextWindow.WriteLine("ESTADO")
TextWindow.WriteLine(" ")
TextWindow.WriteLine("Nivel
: 10")
TextWindow.WriteLine("Ataque
: 15")
TextWindow.WriteLine("Defensa
: 3")
TextWindow.WriteLine("Inteligencia : 3")
TextWindow.WriteLine("Agilidad
: 9")
TextWindow.WriteLine("Destreza
: 12")
TextWindow.WriteLine("Suerte
: 2")
TextWindow.Pause()
TextWindow.Clear()
Goto
inicio
EndIf
If
opcion = 5 Then
TextWindow.Clear()
TextWindow.WriteLine("Hasta
luego")
EndIf
Ok, dejaré todo lo anterior en distintas subrutinas.
Veamos si funciona...
Muy bien, aquí tengo listo el código.
Sub inventario
TextWindow.WriteLine("INVENTARIO")
TextWindow.WriteLine("
")
TextWindow.WriteLine("1)
Objetos")
TextWindow.WriteLine("2)
Armas")
TextWindow.WriteLine("3)
Accesorios")
TextWindow.WriteLine("4)
Estado")
TextWindow.WriteLine("5)
Salir")
TextWindow.WriteLine("
")
TextWindow.Write("Ingresa una
opcion ")
opcion = TextWindow.ReadNumber()
If
opcion = 1 Then
objetos()
ElseIf
opcion = 2 Then
armas()
ElseIf opcion = 3 Then
accesorios()
ElseIf opcion = 4 Then
estado()
ElseIf
opcion = 5 Then
salir()
EndIf
EndSub
Sub
objetos
TextWindow.Clear()
TextWindow.WriteLine("OBJETOS")
TextWindow.WriteLine(" ")
TextWindow.WriteLine("Pocion curativa x 10")
TextWindow.WriteLine("Cola de fenix x 5")
TextWindow.WriteLine("Pocion de mana x 3")
TextWindow.Pause()
TextWindow.Clear()
inventario()
Endsub
Sub
armas
TextWindow.Clear()
TextWindow.WriteLine("ARMAS")
TextWindow.WriteLine(" ")
TextWindow.WriteLine("Mandoble x 1")
TextWindow.WriteLine("Hacha
x 1")
TextWindow.WriteLine("Daga
x 1")
TextWindow.Pause()
TextWindow.Clear()
inventario()
EndSub
Sub accesorios
TextWindow.Clear()
TextWindow.WriteLine("ACCESORIOS")
TextWindow.WriteLine("
")
TextWindow.WriteLine("Aro de
fuerza x 2")
TextWindow.WriteLine("Collar
de magia x 1")
TextWindow.WriteLine("Guante gengi x 1")
TextWindow.Pause()
TextWindow.Clear()
inventario()
EndSub
Sub
estado
TextWindow.Clear()
TextWindow.WriteLine("ESTADO")
TextWindow.WriteLine(" ")
TextWindow.WriteLine("Nivel
: 10")
TextWindow.WriteLine("Ataque
: 15")
TextWindow.WriteLine("Defensa
: 3")
TextWindow.WriteLine("Inteligencia : 3")
TextWindow.WriteLine("Agilidad
: 9")
TextWindow.WriteLine("Destreza : 12")
TextWindow.WriteLine("Suerte
: 2")
TextWindow.Pause()
TextWindow.Clear()
inventario()
EndSub
Sub salir
TextWindow.Clear()
TextWindow.WriteLine("Hasta
luego")
EndSub
inventario()
La diferencia de este código con el anterior (además de usar
subrutinas) es que para volver al menú principal, se llama a la subrutina
"inventario()", mientras que en el código anterior se utilizaba la
instrucción "goto inicio". Algo que hay que mencionar es que, a pesar
de que el programa tiene muchas líneas, todas corresponden a subrutinas, que
serán ignoradas al momento de iniciar el programa y solamente se ejecutarán al
momento de llamarlas. Esto es lo que sucede en la última línea del programa,
que es donde en realidad comienza. En la última línea se llama a la subrutina
"inventario()" la cual da inicio al programa. Dicho de otra forma, si
no estuviese esa línea, el programa no funciona. Para comprobar esto, es solo
cosa de borrar esta línea y tratar de hacer correr el programa. Se podrá
observar cómo este no funciona.
Esto es todo por ahora (es lo único que se me ocurre al
momento jajajaja) ¿y no hay ejercicios de programación?, claro que los hay,
pero se están horneando y estarán listos para ser servidos en el próximo
capítulo, el cual será el capítulo final de todo este manual o tutorial de
programación ¿y eso es todo? ¿Ya nos podemos considerar programadores? En
realidad... Sí, si ya hemos llegado a este punto y hemos pasado
satisfactoriamente todos los capítulos en forma sincera y sin hacer trampas, ya
nos podemos considerar programadores, pero de un nivel muy básico, ya que aún
no estamos en condiciones de poder crear grandes programas como los que salen
día a día y se encuentran colgados en la web, pero si somos capaces de crear
pequeños programas que nos pueden facilitar un poco la vida si tenemos algo de
imaginación. Como dije, poseemos un conocimiento muy básico en programación,
pero ya tenemos la base para escoger un
lenguaje de programación de nuestro interés y profundizar en sus
características y bibliotecas propias de ese lenguaje, con lo cual se podrían
lograr cosas mucho más interesantes e interactivas que solo mostrar un
resultado en una pantalla negra. A medida que se profundice en un lenguaje en
específico, se obtendrán conocimientos que nos convertirán en programadores
cada vez más avanzados. Hasta el próximo capítulo.
Gustavo Cerda Nilo
No hay comentarios:
Publicar un comentario