lunes, 23 de marzo de 2015

Lógica de Programación (9): Escritura de algoritmos

En las lecciones anteriores hemos estado aprendiendo conceptos y técnicas esenciales para la escritura de algoritmos. En esta lección entraremos de lleno en la escritura de los mismos y vamos a escribir nuestros primeros programas completos. Emocionante, ¿no?

Pues bien, vayamos por partes. Lo primero que debemos saber es que para escribir un algoritmo necesitamos respetar una cierta estructura que hará que nuestros algoritmos sean más legibles y fáciles de implementar en un lenguaje de programación, no sólo por nosotros mismos sino por cualquier persona que llegara a leerlos (como otro desarrollador involucrado en el proyecto, por ejemplo).

Si bien hemos dicho que la escritura de algoritmos no sigue una sintaxis concreta, sí debemos procurar escribirlos en un lenguaje similar al usado por la mayoría de los lenguajes de programación, de modo que su traducción a estos sea más sencilla. La sintaxis con la que voy a enseñarles a escribir algoritmos en este curso es muy similar a los lenguajes de programación C#, Java o JavaScript, aunque no es idéntica.

Componentes de un algoritmo
Todo algoritmo consta de dos componentes básicos: una cabecera y un bloque algoritmo. La cabecera es una acción simple que inicia con la palabra algoritmo, seguida del nombre asignado al programa completo. El bloque algoritmo es el resto del programa y consta a su vez de dos secciones: las acciones de declaración y las acciones ejecutables.

Clic para agrandar
Las declaraciones definen las variables y constantes que vamos a usar en nuestro programa, mientras que las acciones ejecutables son todas las acciones que va a realizar la computadora cuando el algoritmo sea convertido a algún lenguaje de programación.

Veamos más a detalle cada uno de estos componentes:

Cabecera del algoritmo
Todos los programas deben comenzar con una cabecera en la que se exprese el identificador o nombre del programa precedido por la palabra algoritmo. El identificador que usemos debe seguir las mismas reglas que aprendimos en la lección 5. Ejemplo:

algoritmo Calcular_Pago


Declaración de variables y constantes
En esta sección se declaran o describen todas las variables y constantes que serán utilizadas en el algoritmo. Para declarar variables, comenzamos empleando la palabra var (abreviatura de variable) y se sigue esta sintaxis:

var
   tipo-1 : lista de variables 1
   tipo-2 : lista de variables 2
   .
   .
   tipo-n : lista de variables n

En esta sintaxis, tipo es cada uno de los tipos de datos básicos que ya conocemos (como entero, real, caracter, cadena o boolean), mientras que lista de variables representa el nombre (o nombres) de la variable que estamos declarando. Por ejemplo:

var
   entero : num_empleado
   entero : horas_trabajadas
   real : pago_hora
   real : pago_bruto
   real : impuestos
   real : pago_neto
   cadena : nombre_empleado

o lo que es lo mismo:

var
   entero : num_empleado, horas_trabajadas
   real : pago_hora, pago_bruto, impuestos, pago_neto
   cadena : nombre_empleado

Como podemos ver, podemos declarar más de una variable del mismo tipo en una misma línea.

Para el caso de la declaración de constantes, comenzamos la sección con la palabra const, seguida de los nombres de las constantes y sus valores asignados. Por ejemplo:

const
    tasa_impuesto = 2.3

Acciones ejecutables
Una vez que ya declaramos las constantes y variables que vamos a emplear, es hora de comenzar a escribir las distintas acciones que formarán nuestro algoritmo. Aquí incluiremos todas las instrucciones de entrada (lectura), procesamiento y salida de resultados (escritura) que van a darle forma a nuestro programa. Las acciones ejecutables se encasillan entre las palabras inicio y fin.

Acciones de lectura
Las acciones de lectura de datos siguen esta sintaxis:

leer (variable_1[, variable_2, ... variable_n])

Es decir, podemos leer más de una variable a la vez. Por ejemplo:

leer (num_empleado, nombre_empleado, horas_trabajadas, pago_hora)

Acciones de procesamiento
Estas son todas las instrucciones que van a procesar nuestros datos de entrada como fórmulas, expresiones de decisión, expresiones de repetición, etc. Si se trata de fórmulas, simplemente las escribimos en la forma que ya hemos aprendido en lecciones anteriores. Si se trata de expresiones de decisión o repetición, cada una de ellas tiene sus propias palabras y sintaxis que iremos conociendo en lecciones posteriores.

Ejemplos:
       pago_bruto <- horas_trabajadas * pago_hora
   impuestos <- pago_bruto * tasa_impuesto / 100
   pago_neto <- pago_bruto - impuestos


Acciones de escritura
Las acciones de escritura de resultados siguen esta sintaxis:

escribir(expresión_1)

En el caso de la escritura de resultados, procuramos escribir un resultado a la vez en forma de una expresión que puede estar formada, por ejemplo, por un texto fijo seguido de una variable; también podemos escribir directamente el resultado de alguna fórmula matemática. Por ejemplo:

escribir "Desglose de nómina para el empleado " + nombre_empleado + " con número " + num_empleado

En esta expresión, estamos escribiendo algunos textos fijos (escritos entre comillas) y además los valores de algunas variables. Una vez que esas variables tengan valor, la expresión que veremos en pantalla estará completa. Por ejemplo, podríamos ver en pantalla algo como esto:

Desglose de nómina para el empleado Pedro Martínez con número 587954

Comentarios
Una buena práctica cuando escribimos algoritmos o programas es documentar nuestro proceso mediante el uso de comentarios. Los comentarios son líneas que tienen por objetivo funcionar como explicaciones internas de nuestro código. Pensemos en los comentarios como pequeños "post-it" que le ponemos a nuestro código para explicar, ya sea a nosotros mismos o a algún otro desarrollador, qué es lo que estamos haciendo en alguna parte del código. Los comentarios tienen sintaxis libre, pues no son más que notas internas que son sólo explicativas.
Si nuestro comentario es sólo de una línea, ésta irá precedida por dos diagonales (//)
Si el comentario será más extenso y ocupará varias líneas, entonces lo encasillamos entre los caracteres /* y */.

Siguiendo la sintaxis que hemos descrito, el algoritmo para calcular el sueldo de un empleado sería escrito como sigue:

algoritmo Calcular_Pago
var
   entero : num_empleado, horas_trabajadas
   real : pago_hora, pago_bruto, impuestos, pago_neto
   cadena : nombre_empleado
const
   tasa_impuesto = 2.3

inicio
   //leer los valores de entrada
   leer (num_empleado, nombre_empleado, horas_trabajadas, pago_hora)

   //calcular el pago neto
   pago_bruto <- horas_trabajadas * pago_hora
   impuestos <- pago_bruto * tasa_impuesto / 100
   pago_neto <- pago_bruto - impuestos

   /* en esta sección mostramos al usuario
       los resultados del procesamiento */
   escribir("Desglose de nómina para el empleado " + nombre_empleado + " con número " +   num_empleado)
   escribir("Pago Bruto : " + pago_bruto)
   escribir("Deducciones : " + impuestos)
   escribir("Pago Neto : " + pago_neto)
fin

Este, señoras y señores, es nuestro primer algoritmo completo, escrito con las reglas que hemos de seguir de aquí en adelante para escribir nuestros programas.

Veamos otro ejemplo de un algoritmo completo, sólo para reforzar lo que hemos aprendido hasta ahora:

algoritmo Calcular_Area_Poligono
var
   entero: num_lados
   real: medida_lado, medida_apotema, area
inicio
   //lectura de datos de entrada
   escribir "Introducir la cantidad de lados del polígono"
   leer (num_lados)
   escribir "Introducir la medida los lados del polígono"
   leer (medida_lado)
   escribir "Introducir la medida del apotema"
   leer (medida_apotema)

   //cálculo del área
   area <- num_lados * medida_lado * medida_apotema / 2

   //mostrar resultado
   escribir "El área del polígono de " + num_lados + " lados es: "  + area
fin

En este ejemplo estamos usando la instrucción escribir para mostrar algunas instrucciones al usuario de nuestro programa. Este uso también es totalmente válido.

En la próxima lección hablaremos de las estructuras de decisión, que nos permiten dividir el flujo de nuestro programa en base a una o más condiciones. Mientras tanto, es hora de practicar lo aprendido escribiendo nuestros propios algoritmos. ¡Hasta la próxima!

ACTIVIDADES DE APRENDIZAJE

1. El índice de masa corporal (IMC) es una medida de asociación entre la masa y la talla de una persona y se calcula dividiendo el peso en kilogramos entre el cuadrado de la estatura en metros. Escribe un algoritmo para calcular y mostrar el IMC de una persona.

2. Escribe un algoritmo que calcule tanto el perímetro como el área de un círculo en base a la medida de su radio.

3. Crear un programa que reciba como dato una cantidad en pesos y nos muestre su equivalente en dólares, euros y yenes.

4. Crear un programa que permita calcular el costo total de construir un tanque cilìndrico para almacenar agua, sabiendo que el metro cuadrado de aluminio tiene un precio fijo de $255.00

5. Escribir un programa que permita calcular la intensidad de la atracción gravitacional entre dos cuerpos en base a la teoría de la gravitación universal de Isaac Newton, teniendo como datos las masas de ambos cuerpos y la distancia que los separa.

6. Se requiere un programa que reciba como entrada 5 números y calcule y muestre:
   a) la suma de los 5 números
   b) la resta del primero menos el tercero
   c) el cociente del primero entre el cuarto
   d) el producto del segundo por el cuarto
   e) el primero incrementado en 5 unidades
   f) el doble del segundo más el triple del primero
   g) el cuadrado del quinto más el doble producto del primero por el tercero

0 comentarios:

Publicar un comentario

Copyright © IsraelCapetillo.com - Un blog de tecnología, noticias geek y más Compartido por Gooyaabi Templates | Powered By Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com