Pseudocódigo: ¿Qué es? ¿Cómo hacer uno? Ejemplos

No cabe ninguna duda que una de las mejores formas de acercarnos a un lenguaje de programación es a través del llamado Pseudocódigo y los diagramas de flujo, ya que estas herramientas serán las encargadas de ofrecernos la posibilidad de entender de forma gráfica los conceptos que queremos aprender. Además nos permiten sumergirnos más fácilmente en el mundo de la resolución de problemas a través de algoritmos.

Podría decirse en este caso que básicamente el Pseudocódigo es la manera más sencilla de poder graficar las distintas instrucciones que se deben llevar a cabo para que un programa o software realizase una determinada función o tarea, de una forma parecida a como lo haríamos en un lenguaje de programación real, pero sin las convenciones propias del tipo de lenguaje en el cual estamos trabajando.

pseudocodigo-que-es- (1)

Si quieres saber más acerca del Pseudocódigo como por ejemplo su implementación y usos más habituales, no dudes en leer completo el siguiente post, en donde encontrarás mucha y muy interesante información al respecto de los pseudocódigos.

Que es un pseudocódigo

Antes de comenzar, sobre todo si recién estamos empezando en el tema de los lenguajes de programación, es sumamente importante intentar conocer el concepto detrás del seudocódigo. Cabe destacar que la palabra “Pseudo” proviene del griego y significa “Falso”. En ámbitos como el de las ciencias de la computación, las carreras en informática y el análisis numérico, se denomina como pseudocódigo a un método usado para visualizar la solución de un algoritmo de manera detallada.

Entonces, el pseudocódigo es una manera relativamente sencilla de expresar los distintos pasos que debe realizar un programa hasta alcanzar su objetivo, sin tener que ejemplificar el mismo y tener que desarrollarlo en un lenguaje de programación específico, con lo cual estaríamos limitando el diseño a las características propias del lenguaje de programación utilizado.

pseudocodigo-que-es- (2)

Sin embargo, una definición más exacta del pseudocódigo es que se trata de la descripción de un algoritmo informático de programación de alto nivel compacto e informal, el cual utiliza las convenciones estructurales de un lenguaje de programación verdadero pero que a su vez es independiente de cualquiera de ellos.

A pesar que el pseudocódigo utiliza las convenciones de desarrollo de un lenguaje de programación estándar, lo cierto es que con el pseudocódigo estamos eliminado la barrera de las limitaciones estructurales, ya que tenemos total libertad de diseño, es decir que no tenemos que pensar en las diferentes implantaciones de una idea para cada tipo de lenguaje de programación.

Obviamente este pseudocódigo no puede ejecutarse en una computadora, ya que no está estructurado para que pueda ser interpretado por una PC, debido a que como lo mencionamos y su propio nombre así lo indica, se trata de un código falso. El seudocódigo es un código escrito para que pueda ser interpretado a simple vista por los usuarios, no por el procesador de un dispositivo. Cabe destacar que también se le llama “Lenguaje de descripción algorítmico”.

pseudocodigo-que-es- (3)

Para lograr el objetivo de que el usuario entienda la estructura de un programa y no deba tener conocimientos de cada uno de los lenguajes de programación existentes, el pseudocódigo usa las convenciones estructurales de un lenguaje de programación estándar, lo cual facilita mucho el trabajo al momento de evaluar problemas o características.

También con el propósito de facilitar la comprensión de un programa de software y su algoritmo, cuando se realizan pseudocódigos suelen omitirse parte de la estructura del programa como por ejemplo subrutinas, variables y demás, es decir todo aquello relativo a un lenguaje específico o que no sea esencial para el programa. Para que la descripción sea más completa y eficaz, suelen remarcarse ciertas partes del mismo en un lenguaje más natural, y si es necesario con las fórmulas matemáticas adecuadas.

Precisamente este es la máxima ventaja del pseudocódigo: Le permite a un programador comenzar a desarrollar un programa aplicando un algoritmo específico, pero sin tener que preocuparse por la estructura y sintaxis el lenguaje final en el cual será escrito el programa, ya que luego la idea fundamental, es decir la que está desarrollada en pseudocódigo, será traducida a los distintos lenguajes de programación que sea necesario.

pseudocodigo-que-es- (4)

Para finalizar, también podríamos decir que el pseudocódigo es una especie de lenguaje intermedio entre nuestro propio lenguaje y el lenguaje de programación, al cual podemos acudir para poder explicar o comprender con eficiencia y seguridad el funcionamiento de un programa, independientemente de la sintaxis o de la estructura del lenguaje de programación que estemos usando.

Aplicaciones de un seudocódigo

En la actualidad el pseudocódigo es una de las formas más sencillas y eficaces de demostrar y comprender el funcionamiento de un programa de software, y aprender a utilizarlo correctamente nos permitirá llevar a cabo su programación de manera mucho más eficaz y rápida. Es decir que la principal aplicación del pseudocódigo es en la programación de software.

Es por ello que la mayoría de las publicaciones científicas y libros de texto relacionados con el tema de la informática, la programación y el software, es habitual que se utilice pseudocódigo para describir los algoritmos necesarios para el desarrollo de programas, ya que de esta manera todos los lectores del mismo entenderán su funcionamiento de igual manera, aunque no todos ellos entiendan el mismo lenguaje de programación.

pseudocodigo-que-es- (5)

Ventajas y desventajas del seudocódigo

Sin duda alguna, una de las ventajas más importantes de la aplicación de pseudocódigo es cualquier tarea de desarrollo, por compleja o repetitiva que sea esta, puede ser representada de manera mucho más sencilla que si lo tuviéramos que hacer en un lenguaje de programación real.

El seudocódigo permite que la transición de las ideas y estructuras contenidas en su interior pueden ser trasladadas a otros lenguajes de programación, mucho más complejos y estructurados, de manera mucho más sencilla y entendible.

pseudocodigo-que-es- (6)

Otra de las ventajas del seudocódigo es que cuando tenemos un desarrollo realizado en este sistema, nos facilita la escritura final en el lenguaje elegido en mejores condiciones ya que nos es mucho mejor a la hora de encontrar problemas y errores, todo lo que se traduce en un desarrollo de software más compacto, limpio y eficaz, ya que habremos podido estudiar el algoritmo de manera mucho más precisa.

SI bien algunos programadores argumentan que los diagramas de flujo son mejores para establecer estructuras y prevenir errores, lo cierto es que no es sencillo traducirlo luego aun lenguaje de programación real para desarrollar el programa verdadero.

En estos casos, la utilización de pseudocódigo permite que el desarrollo del software y su implementación final sean muy similares, ya que el pseudocódigo, al ser independiente del lenguaje de programación que se utilizará para crear el resultado final, logra total independencia entre el desarrollador del software y quien lo traduce a un lenguaje de programación específico.

pseudocodigo-que-es- (7)

Otra de las enormes ventajas de la utilización del pseudocódigo es la curva de aprendizaje, que es bastante baja. Esto permite que el salto de aprendizaje hacia lenguajes de programación más complicados y avanzados sea mucho más sencillo de entender.

Lamentablemente, la implementación del pseudocódigo también tiene sus desventajas, siendo la principal la falta de normas específicas que lo enmarquen. Esto provoca que muchas veces que quien vaya a implementar un código sea vea complicado al no comprender la lógica de un determinado programa. Otra desventaja, en el caso de implementarse el seudocódigo en programas muy extensos, puede llegar a ser bastante difícil de entender, sobre todo si somos programadores novatos o estudiantes de alguna carrera de informática.

pseudocodigo-que-es- (8)

Sintaxis del seudocódigo

Como mencionamos más arriba en este mismo post, se suele utilizar el pseudocódigo en las primeras etapas de desarrollo de muchas implementaciones de software, ya que es mucho más sencillo de entender para todo tipo de programadores que si estuviera escrito en un lenguaje de programación específico. Esto lo hace independiente de cualquier plataforma.

Básicamente el pseudocódigo no sigue los lineamientos de sintaxis de ningún lenguaje de programación específico ni ofrece una forma estándar para ser escrito. Si bien se puede escribir tomando como referencia sintaxis de otros lenguajes de programación, lo cierto es que el pseudocódigo depende demasiado de quien lo escribe, por lo cual a veces suele llevar complicaciones.

pseudocodigo-que-es- (9)

La sintaxis de los lenguajes de programación a los cuales suelen acudir los programadores al momento de comenzar a crear sus desarrollos son por ejemplo Lisp, Pascal, C++, Java, Algol y BASIC, entre otros, mezclando estas sentencias con lenguaje natural para evitar errores de interpretación, ya que algunas variables, llamadas a funciones y líneas de código pueden ser exclusivas de determinado lenguaje. Sin embargo, para poder comenzar a desarrollar un programa mediante pseudocódigo es más que necesario seguir determinadas pautas o normas de sintaxis con el objetivo de que pueda ser interpretados correctamente por los programadores al momento de traducirlos a un lenguaje de programación real.

Para no tener que lidiar con esta problemática, nada mejor que utilizar herramientas de software que nos puedan facilitar el trabajo de hacer el seudocódigo con una estructura estándar, para ello nada mejor que PSeInt, un software gratuito que es capaz de ofrecernos mucha ayuda al momento de tener que escribir pseudocódigo, y que además es sencillo de usar e incluye opciones como la posibilidad de crear diagramas de flujo.

pseudocodigo-que-es- (10)

Si lo deseas, puedes descargar PSeInt de forma completamente gratuita pulsando sobre este enlace.

Estructura del Pseudocódigo

Un desarrollo de software escrito en pseudocódigo debe permitir la ejecución de instrucciones primitivas, de proceso, de control, de descripción y compuestas. Para ello, en la redacción de pseudocódigo, los usuarios tienen disponibles tres tipos de estructuras básicas de control: las secuenciales, las selectivas y las iterativas.

Estructuras secuencialesLas instrucciones se siguen en una secuencia fija que normalmente se encuentra definida por el número de renglón. Esto significa que las instrucciones se ejecutan de arriba hacia abajo.
Estructuras selectivasLas instrucciones selectivas representan instrucciones que pueden o no ejecutarse, de acuerdo el cumplimiento de una condición.
Selectiva doble (alternativa)La instrucción alternativa realiza una instrucción de dos posibles, de acuerdo al cumplimiento de una condición.
Selectiva múltipleOtro uso común es también la utilización de una selección múltiple, lo que equivaldría a anidar varias funciones de selección. En este tipo de situaciones, existen una serie de condiciones que tienen que ser mutuamente excluyentes, si una de ellas se cumple las demás tienen que ser necesariamente falsas, hay un caso “Si no” que será verdadero cuando las demás condiciones sean falsas.
Selectiva múltiple-CasosEste caso es similar al anterior. Aquí nos encontramos con un “Indicador” que es una variable o una función cuyo valor es comparado en cada caso con los valores “Valor¡”. En el caso que coincidan ambos valores, entonces se ejecutarán las “Instrucciones¡” correspondientes.
Estructuras iterativasLa estructura iterativa o de repetición permite ejecutar una o varias instrucciones un número determinado de veces o de forma indefinida mientras se cumpla una determinada condición.
Bucle mientrasEn este caso, el objetivo principal del bucle es repetir un bloque de código mientras una condición se mantenga verdadera.
Bucle repetirEl bucle repetir comprueba que las instrucciones del cuerpo del bucle hayan llegado a su final, entonces si es verdadera continua con la ejecución resto del programa.
Bucle hacerEl Bucle es utilizado en programación para repetir un bloque de código de un programa mientras se cumpla cierta condición.
Bucle paraEste bucle es utilizado para cuando se desea iterar un número conocido de veces, empleando como índice una variable que aumenta o disminuye.
Bucle para cadaEsta sentencia, de uso muy extendido, es utilizada cuando se tiene una lista o un conjunto.
El anidamientoEl anidamiento permite incorporar llamadas a funciones o procedimientos dentro de otros procedimientos, gracias a la inclusión de diversos niveles de paréntesis. Esto significa que cualquier instrucción puede ser sustituida por una estructura de control.

En este punto es necesario volver a mencionar que el seudocódigo no es un lenguaje que tenga una estructura estándar, por lo cual podríamos encontrarnos frente a desarrolladores que hayan utilizado estructuras de control o anotaciones diferentes. Sin embargo, las funciones matemáticas y lógicas van a tener el mismo significado que tienen en matemática y lógica, por lo cual siempre expresarán lo mismo.

Seudocódigos y diagramas de flujo

En el mundo de la programación existen dos modos de representar un algoritmo cualquiera: El pseudocódigo y el diagrama de flujo. La diferencia fundamental entre ambos métodos radica en el modo en cómo se representa dicho algoritmo.

El diagrama de flujo representa el algoritmo mediante un diagrama utilizando diversa simbología gráfica, denominados “bloques”, en las cuales se describen las acciones que debe ejecutar el algoritmo, conectados entre sí mediante líneas indicando el orden en que deben ser llevadas a cabo las instrucciones. Además de ello, el diagrama de flujo siempre contiene dos bloques fundamentales, el de inicio y el de final.

En el caso del seudocódigo, es un poco menos estricto en cuanto a la estructura, conteniendo estructuras de datos menos detalladas también, pero que pretenden acercar el algoritmo a las estructuras más complejas de los lenguajes de programación de alto nivel. Otra diferencia importante con respecto al diagrama de flujo es que el seudocódigo se centra más en ser entendido por personas, y por lo tanto no utiliza estructuras complicadas de comprender plagadas de detalles sintácticos.

pseudocodigo-que-es- (11)

Ejemplos de pseudocódigos

Debajo de estas líneas encontraremos una serie de ejemplos de algoritmos escritos en pseudocódigo, con el objetivo de poder comprender mejor su estructura y lo relativamente sencillo que es su implementación.

Pedir dos números enteros y mostrar ‘Verdadero’ si el primero es mayor

1. ALGORITMO Decir;

2. VAR

3. ENTERO x, z;

4. INICIO

5. ESCRIBIR(«Ingresar dos números»);

6. LEER( x, z );

7. SI( x > z )

8. ESCRIBIR(«Verdadero»);

9. FIN SI

10. FIN

Leer tres números y deducir si se han introducido en orden creciente

1. ALGORITMO N32;

2. VAR

3. ENTERO a, b, c ;

4. INICIO

5. ESCRIBIR(«Ingresar tres números»);

6. LEER( a, b, c );

7. SI (a < b) AND (b < c)

8. ESCRIBIR(«En orden ascendente»);

9. SINO

10. ESCRIBIR(«En orden descendente»);

11. FIN SI

12. FIN

pseudocodigo-que-es- (12)

Pedir dos valores y en caso de que no sean iguales indicar cuál es el mayor

1. ALGORITMO Leer;

2. VAR

3. ENTERO x, y;

4. INICIO

5. ESCRIBIR(«Ingresar dos números»);

6. LEER(x, y);

7. SI( x == y )

8. ESCRIBIR(«Son iguales»);

9. SINO

10. SI( x > y )

11. ESCRIBIR(«x es mayor»);

12. SINO

13. ESCRIBIR(«y es mayor»);

14. FIN SI

15. FIN_SI

16. FIN

Pedir un número y mostrarlo por pantalla

1. ALGORITMO Mostrar;

2. VAR

3. ENTERO entrada;

4. INICIO

5. ESCRIBIR(«Ingresar un número»);

6. LEER( entrada );

7. ESCRIBIR( entrada );

8. FIN

Pedir un número al usuario y mostrar el nombre del día al corresponde (1=lunes)

1. Usando CASO:

2. ALGORITMO DIA_CASO;

3. VAR

4. ENTERO d;

5. INICIO

6. ESCRIBIR(«Ingresar un número del 1 al 7»);

7. LEER( d );

8. SI (d >=1 ) AND (d <= 7)

9. EN_CASO_DE d HACER

10. a: ESCRIBIR(«Lunes»);

11. b: ESCRIBIR(«Martes»);

12. c: ESCRIBIR(«Miércoles»);

13. d: ESCRIBIR(«Jueves»);

14. e: ESCRIBIR(«Viernes»);

15. f: ESCRIBIR(«Sábado»);

16. g: ESCRIBIR(«Domingo»);

17. FIN CASO

18. SINO

19. ESCRIBIR(«El valor ingresado no es válido»);

20. FIN SI

21. FIN

pseudocodigo-que-es- (13)

Usando PARA

1. ALGORITMO DIA_PARA;

2. VAR

3. ENTERO contador;

4. INICIO

5. PARA contador DESDE 1 HASTA 7

6. EN_CASO_DE contador HACER

7. a: ESCRIBIR(«Lunes»);

8. b: ESCRIBIR(«Martes»);

9. c: ESCRIBIR(«Miércoles»);

10. d: ESCRIBIR(«Jueves»);

11. e: ESCRIBIR(«Viernes»);

12. f: ESCRIBIR(«Sábado»);

13. g: ESCRIBIR(«Domingo»);

14. FIN CASO

15. FIN_PARA

16. FIN

Pedir dos números y mostrar la suma de ambos

1. ALGORITMO Sumar;

2. VAR

3. ENTERO Numero1, Numero2, Resultado;

4. INICIO

5. ESCRIBIR(«Ingresar dos números para sumar: «);

6. LEER(Numero1, Numero2);

7. Resultado <- Numero1 + Numero2;

8. ESCRIBIR(«La suma es: «, Resultado);

9. FIN

pseudocodigo-que-es- (14)

Algoritmo que muestra por pantalla el triple de un número real

1. ALGORITMO Multiplicar;

2. VAR

3. REAL a, y;

4. INICIO

5. ESCRIBIR(«Ingresar un número»);

6. LEER( a );

7. a <- a * 3;

8. ESCRIBIR(a);

9. FIN

Algoritmo que pide un número y escribe su cuadrado

1. ALGORITMO Cuadrados_1;

2. VAR

3. ENTERO nNumero, nCuadrado;

4. INICIO

5. ESCRIBIR(«Ingresar un número»);

6. LEER( nNumero );

7. nCuadrado <- SQR(nNumero);

8. ESCRIBIR(nCuadrado);

9. FIN

pseudocodigo-que-es- (15)

Usando MIENTRAS

  1. ALGORITMO N53_Mientras;
  2. VAR
  3. ENTERO Contador;
  4. INICIO
  5. Contador <- 1;
  6. MIENTRAS( Contador <= 100 ) HACER
  7. ESCRIBIR( Contador );
  8. Contador <- Contador + 1;
  9. FIN MIENTRAS
  10. FIN

Usando REPETIR

  1. ALGORITMO N53_Repetir;
  2. VAR
  3. ENTERO Contador;
  4. INICIO
  5. Contador <- 0;
  6. REPETIR
  7. Contador <- Contador + 1;
  8. ESCRIBIR(«Número actual: «, Contador);
  9. HASTA( Contador == 100 )
  10. FIN

Usando PARA

  1. ALGORITMO N53_Para;
  2. VAR
  3. ENTERO contador;
  4. INICIO
  5. PARA contador DESDE 1 HASTA 100
  6. ESCRIBIR( contador );
  7. FIN_PARA
  8. FIN

Programa que permite calcular la suma de los 5 primeros números enteros positivos

Usando MIENTRAS

  1. ALGORITMO N55_Mientras;
  2. VAR
  3. ENTERO contador, suma;
  4. INICIO
  5. contador <- 1;
  6. suma <- 0;
  7. MIENTRAS( contador <= 5 ) HACER
  8. suma <- suma + contador;
  9. contador <- contador + 1;
  10. FIN MIENTRAS
  11. ESCRIBIR(«La suma es: «, suma);
  12. FIN

pseudocodigo-que-es- (16)

Usando REPETIR

  1. ALGORITMO N55_Repetir;
  2. VAR
  3. ENTERO contador, suma;
  4. INICIO
  5. contador <- 0;
  6. suma <- 0;
  7. REPETIR
  8. contador <- contador + 1;
  9. suma <- suma + contador;
  10. HASTA( contador == 5 )
  11. ESCRIBIR(«Resultado: «, suma);
  12. FIN

Usando PARA

  1. ALGORITMO N55_Para;
  2. VAR
  3. ENTERO contador;
  4. ENTERO suma <- 0;
  5. INICIO
  6. PARA contador DESDE 1 HASTA 5
  7. suma <- suma + contador;
  8. FIN_PARA
  9. ESCRIBIR(«La suma es: «, suma);
  10. FIN

Leer desde el teclado una serie de números hasta obtener uno inferior a 100

Usando MIENTRAS

  1. ALGORITMO N50;
  2. VAR
  3. ENTERO Numero;
  4. INICIO
  5. ESCRIBIR(«Dime un número menor de 100»);
  6. LEER( Numero );
  7. MIENTRAS( Numero >= 100 ) HACER
  8. ESCRIBIR(«Dime un número menor de 100»);
  9. LEER( Numero );
  10. FIN MIENTRAS
  11. ESCRIBIR(«Ha introducido un número inferior a 100: «, Numero);
  12. FIN

pseudocodigo-que-es- (17)

Usando REPETIR

  1. ALGORITMO N50_2;
  2. VAR
  3. ENTERO Numero;
  4. INICIO
  5. ESCRIBIR(«Ingresar un número menor de 100»);
  6. LEER( Numero );
  7. REPETIR
  8. ESCRIBIR(«Ingresar un número menor de 100»);
  9. LEER(Numero);
  10. HASTA( Numero < 100 )
  11. ESCRIBIR(«Se ingresó un número inferior a 100: «, Numero);
  12. FIN

Pedir una contraseña utilizando REPETIR hasta que la clave sea 201, 784 ó 988

  1. ALGORITMO N64;
  2. VAR
  3. ENTERO Clave, Intentos;
  4. INICIO
  5. Intentos <- 0;
  6. REPETIR
  7. Intentos <- Intentos + 1;
  8. ESCRIBIR(«Ingresar la clave: «);
  9. LEER(Clave);
  10. HASTA (Clave == 201) OR (Clave == 784) OR (Clave == 988) OR (Intentos == 3);
  11. SI (Intentos == 3) AND (Clave <> 201) AND (Clave <> <>) AND (Clave == 988)
  12. ESCRIBIR(«Demasiados intentos»);
  13. SINO
  14. ESCRIBIR(«Clave correcta»);
  15. FIN SI
  16. FIN

Pedir 10 números al usuario, y mostrar cuántos de ellos han sido mayores de cero

  1. ALGORITMO ContarNumeros_Para;
  2. VAR
  3. ENTERO contador;
  4. ENTERO positivos <- 0;
  5. ENTERO numero;
  6. INICIO
  7. PARA contador DESDE 1 HASTA 10
  8. ESCRIBIR(«Ingresar un número: «);
  9. LEER( numero );
  10. SI( numero > 0 )
  11. positivos <- positivos + 1;
  12. FIN SI
  13. FIN_PARA
  14. ESCRIBIR(«Se introdujeron», positivos, » números mayores de cero»);
  15. FIN

pseudocodigo-que-es- (18)

Mostrar los cinco primeros números pares

1. ALGORITMO Pares;

2. VAR

3. ENTERO contador;

4. INICIO

5. PARA contador DESDE 1 HASTA 10 INCREMENTO 2

6. ESCRIBIR( contador );

7. FIN_PARA

8. FIN