Ya hemos hablado un poco del concepto de algoritmo, o de cómo se parecen laprogramación a cocinar. Vamos a ir entrando un poco más en materia abordando el
siguiente concepto a desarrollar que todo programador debe conocer
perfectamente, el pseudocódigo.
Foto tomada de freedigitalphotos.net |
En ciencias de la computación el pseudocódigo es una representación
informal de un algoritmo, elevando a éste a su más alto nivel, entendible por
humanos y que funciona a modo informativo y aclaratorio para el programador,
gracias al pseudocódigo se pueden diseñar algoritmos en lenguaje natural para
que el programador lo traduzca al lenguaje de programación pertinente.
Aunque el pseudocódigo se desarrolla en lenguaje humano, debemos atenernos
a ciertas normas sintácticas para que se asemeje lo máximo posible al lenguaje
de programación que se vaya a utilizar, de ésta forma la implementación
posterior por parte del programador es mucho más sencilla.
El pseudocódigo no está sujeto a ningún estándar de ningún tipo y
cualquiera puede realizar el suyo propio, es muy raro encontrar pseudocódigos
con un alto porcentaje de elementos comunes entre ellos, no obstante deben ser
lo suficientemente legibles, recordemos que su fin es ser claro y entendible
por el programador.
Una buena práctica por parte del programador consiste en plantear el
pseudocódigo de un algoritmo concreto y desconocido, una vez realizado éste se
puede ir traduciendo poco a poco al lenguaje correspondiente y adaptándolo para
su correcto funcionamiento dentro del programa.
Dentro de la sintaxis del pseudocódigo podemos encontrar estructuras de
control, declaración de variables, subprocesos o incluso el estilo de un
lenguaje concreto. Como en la programación de videojuegos C++ y Java son
esenciales y comparten casi toda la sintaxis vamos a basar el pseudocódigo en
la sintaxis de C++.
Estructura básica del pseudocódigo.
El pseudocódigo aunque se exprese en lenguaje humano debe ser muy parecido
al código final, para ello se va a utilizar la estructura de un procedimiento
en C++:
Cabecera.
Programa.
Módulo.
Tipos de datos.
Constantes.
Variabes.
Cuerpo.
Inicio.
Instrucciones.
Fin.
Como ya hemos visto en post anteriores, lo esencial dentro de un programa
es el manejo de datos, esto es posible mediante el uso de variables, recordemos
que las variables tienen las propiedades de longitud y de tipos de datos. En
pseudocódigo tenemos las opciones de especificar estas propiedades o no.
Normalmente en algoritmos no demasiado complejos estos datos se dan por supuestos.
Lo siguiente sería tener claro cómo vamos a asignar valores a las
variables, en algunos pseudocódigos esto se puede representar mediante frases
como “dar el valor XX a la variable YY” o mediante símbolos como “=” o “:=” o
“<-”, como vamos a utilizar un pseudocódigo basado en C++ usaremos el
símbolo “=”.
La programación estructurada se basa en procedimientos y funciones, C++ es
un lenguaje perfecto para esto, por lo tanto lo primero que tendremos que hacer
es nombrar nuestro bloque de código utilizando primero la palabra
“procedimiento” o “función” seguido del identificador y (opcionalmente) los
parámetros que va a recibir.
Como en todo programa básico, nuestro pseudocódigo deberá mostrar en la
pantalla texto con petición de un valor o bien para mostrar el resultado, en
nuestro pseudocódigo usaremos la sentencia “escribir” seguido de comillas
dobles con el texto. Las fórmulas matemáticas las representaremos de la misma
forma común. Para pedir un valor por teclado usaremos la palabra “leer” seguido
de la variable donde se va a almacenar el valor en cuestión.
Para respetar la sintaxis de C++ vamos a terminar las instrucciones con “;”
y comentar el código con “//”
Ya con esto podemos ir construyendo un pseudocódigo bastante aceptable,
veamos el de un procedimiento que toma dos números y muestra en pantalla su
suma, resta, multiplicación y división:
Procedimiento operaciones
x,y,z;
Leer x;
Leer y;
z=x+y;
Escribir “Suma: ” || z;
z=x-y;
Escribir “Resta: ” || z;
z=x*y;
Escribir “Multiplicación: ” || z;
z=x/y;
Escribir “División: ” || z;
FinProcedimiento
Como se puede comprobar, el entendimiento no complicado y
entregando éste pseudocódigo a un programador éste no tendrá ningún problema a
la hora de implementarlo en el computador.
En el pseudocódigo también se pueden representar todo tipo de elementos que
existe en cualquier lenguaje de programación, elementos tales como:
Estructuras
selectivas (if, elsif, else, case).
Si condición
Entonces
Instrucciones;
FinSi
Si condición
Entonces
Instrucciones;
Sino
Instrucciones;
FinSi
Si condición
Entonces
Instrucciones;
Sino Si condición Entonces
Instrucciones;
Sino
Instrucciones;
FinSi
Según variable Hacer
Caso valor1;
Instrucciones;
Caso valor2;
Instrucciones;
...
De Otro Modo;
Instrucciones;
Fin Según
Estructuras
iterativas (while, loop, do...while).
Mientras
condición Hacer
Instrucciones;
FinMientras
Hacer
Instrucciones;
Hasta Que condición
Para x=0 hasta x==10 con Paso de 1 hacer
Instrucciones;
FinPara
Comparaciones
(<,>,>=,<=).
…….
Si x<y Entonces
Instrucciones;
FinSi;
.......
Booleanos (AND,
OR, &&, ||).
………..
Mientras x<y AND x>0 Hacer
Instrucciones;
FinMientras;
..............
Llamadas a procedimientos o funciones y paso de parámetros.
..............
Si x+y>0 Entonces
Resta(x,y);
FinSi
..............
A continuación os dejo el pseudocódigo de algunas de las funciones más
comunes para que las implementéis en el lenguaje que deseéis.
Procedimiento que compara dos números y escribe en pantalla cual es el
mayor:
Procedimiento comparar (x,y)
Si x>y Entonces
Escribir “x es
mayor”;
Sino Si x<y Entonces
Escribir “y es
mayor”;
Sino
Escribir “Son
iguales”;
FinSi
FinProcedimiento
Procedimiento que pide la base y la altura de un rectángulo y escribe en
pantalla su área:
Procedimiento area_rectangulo
base, altura, area;
leer base;
leer altura;
area=base*altura;
escribir “El área del
rectángulo es: ” area;
FinProcedimiento
Procedimiento que muestra los números entre el 1 y el 100 que son
divisibles entre un número dado:
Procedimiento divisibles
Divisor,x;
Leer divisor;
Para x=1 Hasta x==100 con
Paso 1 Hacer
Si x es
divisible entre divisor Hacer
Escribir
x;
FinSi
FinPara
FinProcedimiento
Como se puede comprobar, el pseudocódigo es una herramienta muy importante
a la hora de programar, es preferible tener las cosas claras antes de comenzar
a implementar y el pseudocódigo puede solucionarnos más de un momento de
atasco, no dejéis de usarlo.
¿Qué grado de importancia tiene el pseudocódigo para vosotros?