Programacion

Ξ 35 comentarios

Cómo aprender a programar y no morir en el intento – Parte 3

por Xabadu
Cómo aprender a programar y no morir en el intento – Parte 3

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.

Cómo aprender a programar y no morir en el intento – Parte 3

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:

Contenidos:

  1. Definición de variables.
  2. Leyendo datos desde teclado.
  3. Operaciones matemáticas.
  4. Iteraciones condicionales.

Es harta información, así que vamos de lleno a los temas:

1.- Definición de variables

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:

  1. Número: Este tipo de variables almacenarán cualquier valor de tipo número, ya sea entero (conjunto Z) o bien real (conjunto R del universo de las matemáticas, o sea, enteros más decimales). Cabe recordar que en los lenguajes reales hay distintos tipos para los enteros y para los decimales, pero aquí los agruparemos todos dentro de este mismo tipo.
  2. Letra: Este tipo de variables almacenarán cualquier valor de tipo alfanumérico, ya sean caracteres (0-9 o A-Z) o palabras y/o frases (como “gato”, o “la casa roja”). Tal como en el tipo anterior, hay que recordar que en los lenguajes de programación reales hay distintos tipos para tratar los caractéres y las cadenas de palabras, pero aquí los agruparemos dentro de un mismo tipo.
  3. Lógico: Este tipo de variables almacenarán valores de tipo lógico (verdadero o falso). En vez de almacenar las palabras “verdadero” o “falso” le asignaremos un 0 si se trata del primero y un 1 si se trata del segundo.

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:

  1. Debe ser único. No pueden haber 2 variables con el mismo nombre.
  2. No puede empezar con un número ni un underscore. Sin embargo pueden contenerlos dentro de su nombre. Si bien no se puede nombrar variables como “2auto” o “_perro” si podemos tener otras como “auto2” o “perro_”.
  3. No pueden llevar como nombre una palabra reservada del lenguaje. Todos los lenguajes tienen ciertas “palabras reservadas” que son utilizadas para definir tipos de variables o funciones del lenguaje propiamente tal. Por ejemplo, nunca podríamos nombrar una variable como “while” ya que los lenguajes reservan esa palabra para una función de tipo ciclo. De a poco iremos conociendo las palabras que están reservadas para cada lenguaje, aunque no hay de que preocuparse, ya que siempre nos avisará al momento de compilar el programa y nos obligará a cambiarla para que no hayan conflictos.

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.

2.- Leyendo datos desde teclado

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.

3.- Operaciones matemáticas

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:

  1. +: Suma.
  2. -: Resta.
  3. *: Multiplicación.
  4. /: División.
  5. Raíz cuadrada (la sentencia depende de cada lenguaje).
  6. Potenciación (la sentencia depende de cada lenguaje).
  7. %: Módulo de la división (resto).
  8. ++: Incremento.
  9. –: Decremento.
  10. <: Menor a.
  11. >: Mayor a.
  12. ==: Igual a. (Se debe usar doble signo ya que el signo simple es para asignar valores).
  13. !=: Distinto de.
  14. &&: Y.
  15. ||: ó.

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.

4.- Iteraciones condicionales

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”:

  1. Iteraciones condicionales multiples y uso de más de una condición.
  2. Switch: Otra iteración condicional.
  3. Ciclos o búcles.

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.

Sello de GarantÍa CLH

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.

Comparte este tutorial

El culpable de todo esto

Las tardes gloriosas de domingo y las grandes ovaciones a estadio lleno, no son algo extraño para Xabadu. Luego de ser descubierto a los 4 años en un partido de barrio por los ojeadores del gran Aviación F.C., sacudió el mercado nacional al ser traspasado en $500 pesos chilenos (1 USD) y 3 coca colas al renombrado Estrella Blanca de Lolol. Luego de una impresionante carrera por equipos como Lozapenco, Santa Cruz, Deportivo Lago Chungará y una incursión en la 3a división del futbol de Kazajstan, su record imbatible hasta la fecha de 1257 goles en 20 partidos lo llevo a ser elegido como uno de los arqueros más recordados en la historia pelotera nacional. Una lesión en el colmillo superior derecho lo llevó al retiro el año 2003, pero está de vuelta y sin duda que su jerarquía y experiencia internacional será un gran aporte.

En los barrios marginales se le conoce como: Xabadu

Comentarios en Facebook

35 Comentarios

  • super bueno todo en general, bastante.
    El mejor tutorial y mas simple que conosco, felicitaciones.

    le falta difussion a la pag, ojala que auemte porque es bien buena y util, saludos.

  • @pedro: Muchas gracias por tu comentario y la buena onda.

    Pronto se viene la parte 4 de este tutorial.

    Sobre la difusión, todo se soluciona el Lunes 3 de Nov 😉

  • Muy buena la página y muy bueno los tutoriales, tambien me gusta el humor con el que explican. En general, muy bueno.

  • jeje ami tambn me
    gusta el humor q
    le ponen!!!!!:):)

  • en el codigo de la edad en 10 años dice:
    “mostrar (”Su edad en 10 años sera: %numero”,edad);”, no debería decir:
    “mostrar (“Su edad en 10 años sera: %resultado”,edad);” ?

  • @ChilenoFromChile: Muchas gracias por notificarnos del error, aunque revisando nos dimos cuenta que era en la misma línea, pero de otra forma:

    En vez de “mostrar(“Su edad en 10 años sera: %numero”,edad);” es:

    “mostrar (”Su edad en 10 años sera: %numero”,resultado);”

    Recuerda que %numero solo indica el tipo de variable que estamos desplegando (en este caso una variable de tipo numero) y no el nombre de la variable propiamente tal.

    Saludos y gracias nuevamente, hemos corregido la falla.

  • si, tienes razon.
    gracias por responder, exelente el tutorial.
    ahora a leer la parte 4.

  • el tutorial esta muy bueno pero tengo una pregunta en donde dice

    Si (edad > 18)

    mostrar “Ud. es mayor de edad”;

    Si no

    mostrar “Ud. es menor de edad”;

    no deberia ser

    Si (edad >= 18)

    mostrar “Ud. es mayor de edad”;

    Si no

    mostrar “Ud. es menor de edad”;

    pues eso es lo que creo

  • Estaba aprendiendo python sin saber previamente solucionar problemas en pseudocodigo y se me dificultaba mucho, gracias a estos tutoriales se me hace mucho mas llevadero.
    PD: En el ultimo ejemplo practico, creo que falto la sentencia ” leer numero,edad; “

  • la verdad los mejores tutos que tengo entre manos sobre programacion sin duda menos mal que alguien piensa en los que empiezan desde 0………

1 2 3 4

Responder a santiago Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Gente linda que nos quiere

Donde mas estamos