Continuando con esta saga, hoy les traemos la 3a edición de estas guías donde estamos cubriendo el tema de la programación paso a paso desde sus principios más básicos.
Ya hemos visto en los dos números anteriores toda la información básica antes de empezar a llevar código a papel, por lo que de este número en adelante nos dedicaremos de lleno a la programación en sí.
Todo el detalle, como siempre, después del salto.
Nota: Recomendamos leer las primeras 2 partes de esta guía si no lo han hecho, las cuales pueden encontrarlas en:
Como es habitual, partamos por revisar los contenidos de esta edición:
Es harta información, así que vamos de lleno a los temas:
En el tutorial anterior ya dimos una explicación de lo que son las variables y como se encuentran involucradas en los procesos de la programación, por lo que hoy nos enfocaremos solamente a su definición y uso dentro del código propiamente tal.
Las variables tienen lo que se llama un “ciclo de vida”, que representa toda la duración de una variable a través de un programa. Este ciclo de vida se inicia con la definición o creación de la variable y termina con la finalización del programa o la liberación del área de memoria donde estaba contenida.
Para crear o definir una variable en pseudocódigo siempre se utiliza la siguiente sintaxis, la cual representa fielmente la utilizada en los lenguajes de programación reales:
Tipo Nombre Valor Inicial (opcional)
Tal como vimos en el tutorial anterior, en los lenguajes de programación se utilizan ciertos tipos para definir los tipos (valga la redundancia) de información que puede almacenar la variable en cuestión. Les recomiendo revisar ese tutorial como recordatorio de los tipos que vimos. En pseudocódigo utilizaremos los siguientes tipos:
Vale la pena mencionar, que a pesar de que las variables de tipo Letra puedan almacenar caracteres correspondientes a números, no podremos realizar operaciones matemáticas sobre ellos, por lo que si necesitamos este tipo de operaciones es recomendable almacenar en variables de tipo Número.
Durante el ciclo de vida de la variable (periodo entre su declaración y su fin) podemos modificar su contenido cuantas veces queramos, siendo bastante útil al momento de querer reciclar una variable para no tener que crear otra del mismo tipo, hecho que nos termina ayudando a ahorrar memoria en uso.
Tal como indicamos en la sintaxis, toda variable debe llevar un nombre, el cual puede ser cualquiera, pero debe respetar los siguientes criterios:
Además, indicamos en la sintaxis que a una variable podemos asignarle opcionalmente un valor inicial. El “opcionalmente” se debe a que al momento de crear la variable podemos asignarle un valor, pero si no lo hacemos no afecta, ya que lo podemos hacer más adelante. Lo único en lo que hay que fijarse es que la variable contenga ya algún valor cuando queramos operar con ella. Por ejemplo, si deseamos sumar un valor almacenado en una variable, esta no puede estar en blanco.
Veremos a continuación, algunos ejemplos que cubren todo lo que hemos visto en las líneas anteriores:
Retomando el ejemplo del “hola mundo” que vimos en el tutorial anterior, ahora en vez de desplegar directamente el mensaje, lo desplegaremos con el uso de una variable. (comentarios en negrita, cursiva y entre /* y */):
Inicio /* Establecemos el inicio del programa */ Letra mensaje = "Hola mundo"; /* A continuación definimos una variable de tipo "Letra", de nombre "mensaje" y le damos un valor inicial de "Hola mundo", el mensaje que queremos mostrar. Luego de la sentencia ponemos un punto y coma para indicar el fin de esta, algo que utilizaremos mucho cuando estemos programando en algún lenguaje, ya que eso le indica al entorno de programación que es el fin de la sentencia */ Principal() /* Definimos la función “Principal” que es donde irá el cuerpo del programa. Ya adentraremos el tema de las funciones */ mostrar mensaje; /* Utilizamos la sentencia "mostrar" para enviar un mensaje que se despliegue en pantalla y luego la variable que contiene el mensaje, en este caso "mensaje". Cerramos la sentencia con un punto y coma para indicar que se ejecute la línea */ Fin /* Finalizamos el programa */
Como podemos ver, en este ejemplo hemos definido una variable de tipo Letra, llamada mensaje y le hemos asignado como valor inicial el mensaje que vamos a mostrar por pantalla. Ahora, ¿Qué pasa si no queremos asignar un valor inicial, y se lo damos más adelante?, sería algo como esto:
Inicio /* Establecemos el inicio del programa */ Letra mensaje; /* A continuación definimos una variable de tipo "Letra", de nombre "mensaje". Luego de la sentencia ponemos un punto y coma para indicar el fin de esta, algo que utilizaremos mucho cuando estemos programando en algún lenguaje, ya que eso le indica al entorno de programación que es el fin de la sentencia */ Principal() /* Definimos la función “Principal” que es donde irá el cuerpo del programa. Ya adentraremos el tema de las funciones */ mensaje = "Hola mundo"; /* Asignamos el valor "Hola mundo" a la variable mensaje y cerramos con punto y coma*/ mostrar mensaje; /* Utilizamos la sentencia "mostrar" para enviar un mensaje que se despliegue en pantalla y luego la variable que contiene el mensaje, en este caso "mensaje". Cerramos la sentencia con un punto y coma para indicar que se ejecute la línea */ Fin /* Finalizamos el programa */
Esos son los pasos fundamentales para ir trabajando con variables. Todo esto se irá haciendo cada vez más claro a medida que vayamos desarrollando nuestros programas.
Hasta ahora, toda la información que hemos ido desplegando en nuestros programas ha sido proporcionada por nosotros mismos, algo que cuando estemos realizando programas para “terceros” nunca será suficiente, ya que muchas veces deberemos operar con información proporcionada por los usuarios que utilizan los programas o por fuentes de datos externas. Para esto se utiliza el término “Leer datos”.
Leer datos se refiere a recopilar información desde una fuente externa, ya sea un usuario que los ingrese vía teclado, o de una fuente de datos como un archivo con registros o una base de datos. En esta primera etapa nos centraremos en la lectura de datos desde teclado, o sea, proporcionada por los usuarios.
Los datos se leen y se almacenan en una variable de tipo concordante al dato que se ingresa, por lo que es muy importante definir el tipo de dato correcto, ya que si indicamos una variable de tipo letra y el usuario ingresa un número, se guardará como caracter. Ya veremos esto en más detalle en el ejemplo.
Esta información podemos manipularla de la forma que estimemos conveniente y despues desplegarla en pantalla de la misma forma que lo hemos hecho hasta ahora.
Veamos un ejemplo, basandonos en el mismo ejercicio “Hola mundo” que hemos visto hasta ahora. En vez de desplegar nosotros el mensaje, le diremos al usuario que ingrese un mensaje para mostrar. (comentarios en negrita, cursiva y entre /* y */):
Inicio /* Establecemos el inicio del programa */ Letra mensaje; /* A continuación definimos una variable de tipo "Letra", de nombre "mensaje". Luego de la sentencia ponemos un punto y coma para indicar el fin de esta, algo que utilizaremos mucho cuando estemos programando en algún lenguaje, ya que eso le indica al entorno de programación que es el fin de la sentencia */ Principal() /* Definimos la función "Principal" que es donde irá el cuerpo del programa. Ya adentraremos el tema de las funciones */ mostrar("Ingrese un mensaje para mostrar: "); leer(%letra,mensaje); /* Utilizamos la función mostrar para desplegar un mensaje por pantalla . Luego con la función leer indicamos entre parentesis el tipo de dato que recolectaremos, en este caso letra (acompañado de un porcentaje, esto es netamente para ir acostumbrándonos a como leeremos los datos en lenguajes reales) y luego de la coma el segundo parámetro, correspondiente a la variable donde almacenaremos la información, o sea, mensaje. Terminamos todo con un punto y coma. */ mostrar mensaje; /* Utilizamos la sentencia “mostrar” para enviar un mensaje que se despliegue en pantalla y luego la variable que contiene el mensaje, en este caso “mensaje”. Cerramos la sentencia con un punto y coma para indicar que se ejecute la línea */ Fin /* Finalizamos el programa */
Con esto podemos recibir toda la infromación que necesitemos por parte del usuario y desplegarla sin problemas en pantalla.
En los lenguajes de programación, una forma de realizar operaciones con los valores almacenados en las variables es mediante las operaciones matemáticas. Los lenguajes soportan las operaciones más comunes que podemos utilizar en la matemática y con ellas se puede trabajar tanto variable vs variable, como variable vs constante, y constante vs constante. Las operaciones más comunes soportadas son:
Hay algunas otras que iremos viendo más adelante.
Ahora veremos un ejemplo donde operaremos con un número ingresado por teclado (comentarios en negrita, cursiva y entre /* y */):
Inicio /* Establecemos el inicio del programa */ Numero edad; Numero resultado; /* A continuación definimos una variable de tipo "Numero", de nombre "edad" y luego una variable de tipo "Numero", de nombre "resultado". Luego de la sentencia ponemos un punto y coma para indicar el fin de esta, algo que utilizaremos mucho cuando estemos programando en algún lenguaje, ya que eso le indica al entorno de programación que es el fin de la sentencia */ Principal() /* Definimos la función “Principal” que es donde irá el cuerpo del programa. Ya adentraremos el tema de las funciones */ mostrar("Ingrese su edad: "); leer(%numero,edad); /* Utilizamos la función mostrar para desplegar un mensaje por pantalla . Luego con la función leer indicamos entre parentesis el tipo de dato que recolectaremos, en este caso numero (acompañado de un porcentaje, esto es netamente para ir acostumbrándonos a como leeremos los datos en lenguajes reales) y luego de la coma el segundo parámetro, correspondiente a la variable donde almacenaremos la información, o sea, edad. Terminamos todo con un punto y coma. */ resultado = edad + 10; /* En la variable resultado ahora almacenamos lo que nos dará el sumarle 10 al valor ingresado para edad */ mostrar ("Su edad en 10 años sera: %numero",resultado); /* Utilizamos la sentencia “mostrar” para enviar un mensaje que se despliegue en pantalla, seguido del tipo de variable que desplegaremos, o sea numero y luego la variable que contiene la información, en este caso “resultado”. Cerramos la sentencia con un punto y coma para indicar que se ejecute la línea */ Fin /* Finalizamos el programa */
De esta forma desplegaremos un resultado de operar con un dato ingresado por el usuario. Dentro de esas operaciones podemos hacer todas las detalladas con anterioridad.
Dentro de la programación, en muchas ocasiones nos encontraremos con situaciones en donde se deberá seleccionar uno de dos o varios caminos a seguir dependiendo de los datos con los que se este trabajando. Para esto se cuenta con lo que se llama “iteraciones condicionales”, lo que básicamente nos dará el pie de tomar un camino a seguir dependiendo de una condición que indiquemos. Cada uno de estos caminos puede incluir una serie de operaciones que perfectamente pueden ser distintas las unas de las otras.
La iteración condicional por excelencia es, en el caso del pseudocódigo el “Si” y “Si no”(if y else en los lenguajes reales). Un “Si” puede o no llevar un “Si no”, mientras que un “Si no” debe ir necesariamente a continuación de un “Si” ya que trabaja a partir de la condición especificada más arriba. Además es bueno indicar que dentro de un “Si no”, pueden ir infinitos “Si” y “Si no”.
Ejemplificando un poco esto, podría ser algo así:
Recogemos un dato respectivo a la edad de un usuario. Si (edad cumple una condición) sentencia 1; sentencia 2; Si no
sentencia 3; sentencia 4;
Veamos un ejemplo práctico sobre el uso de estas iteraciones condicionales, basándonos en el ejemplo anterior:
Inicio /* Establecemos el inicio del programa */ Numero edad; /* A continuación definimos una variable de tipo "Numero", de nombre "edad". Luego de la sentencia ponemos un punto y coma para indicar el fin de esta, algo que utilizaremos mucho cuando estemos programando en algún lenguaje, ya que eso le indica al entorno de programación que es el fin de la sentencia */
Principal() /* Definimos la función “Principal” que es donde irá el cuerpo del programa. Ya adentraremos el tema de las funciones */ mostrar(“Ingrese su edad: “); Si (edad > 18) mostrar “Ud. es mayor de edad”; Si no mostrar “Ud. es menor de edad”; /* Utilizamos la iteración condicional “Si” con la condición si la edad es mayor a 18, y en caso de que sea desplegamos el mensaje “Ud. es mayor de edad” con la función mostrar. Luego utilizamos “Si no” lo que significa “Si no es mayor a 18” y mostramos el mensaje “Ud. no es mayor de edad con la función mostrar. */ Fin /* Finalizamos el programa */
Claramente el ejemplo anterior presenta una de las iteraciones condicionales más básicas. Pueden realizarse modificaciones para hacer iteraciones multiples e incluso más de una condición, ya sea excluyente o no excluyente, pero eso lo veremos en una próxima edición, ya que hoy hemos cubierto más que suficiente.
En la próxima edición de “Como aprender a programar y no morir en el intento – Parte 3”:
Así que a armarse de paciencia, que hemos avanzado bastante pero aún queda un largo camino por recorrer.
Como siempre este tutorial ha sido desarrollado, probado y documentado por el equipo de Como Lo Hago, por lo que cuenta con nuestro Sello de Garantía.
Cualquier consulta o problema que puedan tener, no duden en dejarnos unas líneas a continuación.
Esperamos que este tutorial haya sido de utilidad para Uds.
Muchas gracias por leer y será hasta una próxima oportunidad.
5:40:47 pm
esta muy chingón este manual, o como diran por alla, esta bakan… muchas gracias… diria un amigo: compartir es vivir…
2:19:18 pm
gracias por el tuto me a sido de ayuda y tengo 15 años jeje. me siento interesado.
9:47:35 pm
ammmm kisiera saber en q programa empiezo a guardar mis programas y con q extencion…
es muy claro lo q se explica me gusta muxo, le entiendo super bien…
slo quiero saber q lenguaje de prog usar? xfis
7:36:06 pm
bien tuto
10:04:42 am
Con la duda de German aunque no contestaron creo que es como esta en el tutorial. Creo que le asignas valor cuando le pones la operacion. aunque esta contradictorio porque tambien esta el = en las operaciones que es para dar valor. 😀
3:44:37 pm
WoW!! explicado de esta forma se entiende todo muy fasil, Felisidadez y sigan asi esta muy bueno este tutorial 🙂
5:19:56 pm
Excelente tutorial, yo me dedico al transporte pero siempre me ha gustado la idea de aprender a programar. Creo que con este tuto lo lograré… gracias por compartir tus conocimientos. Pasaremos a la lección nº 5 !!
5:22:43 pm
Excelente tutorial, yo me dedico al transporte pero siempre ha sido mi sueño aprender programación. Gracias por compartir tus conocmientos!!!
11:33:28 am
muy buenooo!gracias
9:30:47 pm
Hola. ¿Que programa usamos para escribir la programación? esta genial el tutorial.