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

  • MUY BUENO EL TUTORIAL… por lo menos para mi q estaba buscando donde empezar programacion y no encontraba… la verdad q explican muy bn y esta muy bueno el humor… lastima q en esta parte les falto algo..
    En una próxima edición, a la misma batihora y en el mismo baticanal.
    jjeej 😉 son los mejores.. gracias x el tutorial

  • Hola una pregunta,si alguien sabe,este lenguage de programacion es en español,en los programas que utilizan el lenguage de programacion en ingles,es lo mismo?no creo que se entienda mucho la pregunta .P

  • @ignacio: El lenguaje de estos ejemplos es Pseudo-código, el cual no es un lenguaje de programación real, sino que uno utilizado con el fin de practicar la implementación de algoritmos y soluciones de programación.

    En los números siguientes empezamos a trabajar con C, el cual es un lenguaje real.

    Saludos!

  • gracias por la respuesta

  • Hola que tal buenos tutoriales gracias por el aporte pero creo que aqui ahi un pequeñisimo error  en el siguiente ejemplo:
    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: “);
    -> aqui tendriamos que agragar el valor proporcionado a la variable edad, faltaria esta linea leer(%Numero, edad); , por que si no siempre pasaria al “si no” o al else en algunos lenguajes de programacion.
    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 */
    Saludos y Gracias por el aporte….

  • Parcero las mejores esta muy bn explicado todo muchas gracias por el tutorial

  • Hola, de momento solo puedo decir excelente.
    Excelente en las explicaciones y en el tono.
    Muy bien la estética y función de la pagina.

  • ayudemen a saber como hago un diagrama de flujo utilizando vectores :

    realizar un diagrama de flujo que permita ingresar 10 elementos aun vector y desplegar por pantalla para ver cual es menor y cual es mayor

  • ya llegue hasta aqui, pero lo me gustaria sabes es con que lenguaje de programacion puedo iniciarme, y cuando tiempo me llevara aprender dicho lenguaje

    gracias

  • muchas gracias me esta ayudando mucho

1 2 3 4

Deja un comentario

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

news-1701

sabung ayam online

yakinjp

yakinjp

rtp yakinjp

slot thailand

yakinjp

yakinjp

yakin jp

yakinjp id

maujp

maujp

maujp

maujp

slot mahjong

SGP Pools

slot mahjong

sabung ayam online

slot mahjong

SLOT THAILAND

article 888000081

article 888000082

article 888000083

article 888000084

article 888000085

article 888000086

article 888000087

article 888000088

article 888000089

article 888000090

article 888000091

article 888000092

article 888000093

article 888000094

article 888000095

article 888000096

article 888000097

article 888000098

article 888000099

article 888000100

cuaca 898100126

cuaca 898100127

cuaca 898100128

cuaca 898100129

cuaca 898100130

cuaca 898100131

cuaca 898100132

cuaca 898100133

cuaca 898100134

cuaca 898100135

cuaca 898100136

cuaca 898100137

cuaca 898100138

cuaca 898100139

cuaca 898100140

cuaca 898100141

cuaca 898100142

cuaca 898100143

cuaca 898100144

cuaca 898100145

cuaca 898100146

cuaca 898100147

cuaca 898100148

cuaca 898100149

cuaca 898100150

cuaca 898100151

cuaca 898100152

cuaca 898100153

cuaca 898100154

cuaca 898100155

cuaca 898100156

cuaca 898100157

cuaca 898100158

cuaca 898100159

cuaca 898100160

cuaca 898100161

cuaca 898100162

cuaca 898100163

cuaca 898100164

cuaca 898100165

cuaca 898100166

cuaca 898100167

cuaca 898100168

cuaca 898100169

cuaca 898100170

cuaca 898100171

cuaca 898100172

cuaca 898100173

cuaca 898100174

cuaca 898100175

article 710000151

article 710000152

article 710000153

article 710000154

article 710000155

article 710000156

article 710000157

article 710000158

article 710000159

article 710000160

article 710000161

article 710000162

article 710000163

article 710000164

article 710000165

article 710000166

article 710000167

article 710000168

article 710000169

article 710000170

article 710000171

article 710000172

article 710000173

article 710000174

article 710000175

article 710000176

article 710000177

article 710000178

article 710000179

article 710000180

article 710000181

article 710000182

article 710000183

article 710000184

article 710000185

article 710000186

article 710000187

article 710000188

article 710000189

article 710000190

article 710000191

article 710000192

article 710000193

article 710000194

article 710000195

article 710000196

article 710000197

article 710000198

article 710000199

article 710000200

psda 438000036

psda 438000037

psda 438000038

psda 438000039

psda 438000040

psda 438000041

psda 438000042

psda 438000043

psda 438000044

psda 438000045

psda 438000046

psda 438000047

psda 438000048

psda 438000049

psda 438000050

psda 438000051

psda 438000052

psda 438000053

psda 438000054

psda 438000055

psda 438000056

psda 438000057

psda 438000058

psda 438000059

psda 438000060

psda 438000061

psda 438000062

psda 438000063

psda 438000064

psda 438000065

psda 438000066

psda 438000067

psda 438000068

psda 438000069

psda 438000070

psda 438000071

psda 438000072

psda 438000073

psda 438000074

psda 438000075

psda 438000076

psda 438000077

psda 438000078

psda 438000079

psda 438000080

psda 438000081

psda 438000082

psda 438000083

psda 438000084

psda 438000085

psda 438000086

psda 438000087

psda 438000088

psda 438000089

psda 438000090

psda 438000091

psda 438000092

psda 438000093

psda 438000094

psda 438000095

psda 438000096

psda 438000097

psda 438000098

psda 438000099

psda 438000100

psda 438000101

psda 438000102

psda 438000103

psda 438000104

psda 438000105

psda 438000106

psda 438000107

psda 438000108

psda 438000109

news-1701