Pseudocódigos
Conceptos Básicos.
El pseudocódigo
El pseudocódigo (falso lenguaje) es una descripción de alto nivel de un algoritmo que
emplea una mezcla de lenguaje natural con algunas convenciones sintácticas propias de
lenguajes de programación, como asignaciones, ciclos y condicionales. Es utilizado para
describir algoritmos en libros y publicaciones científicas, y como producto intermedio
durante el desarrollo de un algoritmo.
El pseudocódigo está pensado para facilitar a las personas el entendimiento de un
algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una
implementación. Programadores diferentes suelen utilizar convenciones distintas, que
pueden estar basadas en la sintaxis de lenguajes de programación concretos. Sin embargo,
el pseudocódigo en general es comprensible sin necesidad de conocer o utilizar un
entorno de programación específico, y es a la vez suficientemente estructurado para que
su implementación se pueda hacer directamente a partir de él
Después de haber escrito el pseudocódigo se tiene una idea clara de los pasos que deben
seguirse para construir el programa, pero aún tendría que ser codificado en un lenguaje.
Cuanto más detallado sea el pseudocódigo, más sencillo será este proceso.
El pseudocódigo es una herramienta muy útil utilizada en el diseño de algoritmos para
resolver problemas que, si emplea los principios de la programación estructurada,
permite expresar el flujo de ejecución de las instrucciones de una forma clara, sin
ambigüedad y usando un lenguaje natural.
El pseudocódigo es una forma de describir la solución a un problema de manera que su
traducción posterior a un lenguaje de programación de alto nivel sea sencilla. Trata de
definir la solución del problema en un lenguaje intermedio entre el humano y el de
programación.
Reglas generales del pseudocódigo
No hay una forma estándar de diseñar un pseudocódigo, depende en gran medida del
criterio del programador. A pesar de ello, es aconsejable respetar lo más rigurosamente
posible las siguientes normas de carácter general:
— Todo pseudocódigo comienza con la palabra «Inicio» y termina con la palabra «Fin».
— Cada instrucción se debe escribir en una línea.
— Para su descripción, se utilizan una serie de palabras reservadas: Inicio, fin, si,
entonces, si no, fin-si, mientras, etc.
— Debe escribirse «identado» (tabulado) para mostrar claramente las dependencias de
control dentro de los módulos.
— Cada estructura utilizada tendrá un solo punto de comienzo y un solo punto de fin de
estructura. Algunos autores suelen utilizar un corchete para unir el principio y fin de
cada estructura.
— Se escribirá en minúscula, excepto aquellos nombres que elige el programador, como
son los nombres de variables, de ficheros, de módulos, etc., que se escribirán con
mayúsculas.
A continuación se verá en pseudocódigo las tres estructuras básicas de control en las que
se apoya la programación estructurada.
Estructura secuencial
EJEMPLO:
Calcular la suma y el producto de dos números.
La solución es sencilla, lo primero que se tiene que hacer es introducir los números A y
B, después sumarlos, luego multiplicarlos y, por último, presentar los resultados al
usuario en pantalla. Estas acciones se deben ejecutar en ese orden y secuencialmente,
la estructura secuencial expresa perfectamente la solución al problema.
El pseudocódigo siguiendo las reglas descritas anteriormente sería:
Inicio
Introducir A y B
SUMA = A + B
PRODUCTO = A * B
Mostrar SUMA, PRODUCTO
Fin
Estructura condicional
Es la que realiza un conjunto de instrucciones de entre varios posibles, dependiendo del
cumplimiento, o no, de una determinada condición.
Existen tres tipos de estructuras condicionales:
— Estructura condicional simple.
— Estructura condicional doble.
— Estructura condicional múltiple.
Estructura Condicional Simple
Aquí se evalúa la condición y, sólo si es cierta, se ejecuta el conjunto de acciones
correspondiente. El no cumplimiento de la condición implica que no se realizará
ninguna de las acciones indicadas.
EJEMPLO:
El problema a resolver es el de introducir un número, que se denominará NUM, por
teclado y, si es mayor de 20, mostrarlo por pantalla.
Inicio
Introducir NUM
Si NUM > 20
Entonces
Mostrar NUM
Fin_si
Fin
En esta ocasión se tiene que si, y sólo si, el valor NUM es mayor de 15, se debe mostrar
el valor NUM; si no se cumple la condición no se mostrará el valor de NUM.
Estructura Condicional Doble
En este tipo de estructura se ejecutará un bloque de instrucciones u otro, dependiendo
de la certeza o falsedad de una condición.
EJEMPLO:
Decidir cuál de dos valores es el mayor
IInicio
Introducir A y B
Si A > B
Entonces
Mostrar «El mayor es» A
Si no
Mostrar «El mayor es» B
Fin_si
Fin
El problema es sencillo puesto que, dependiendo de la condición A > B, se ejecutará una
instrucción u otra.
La instrucción Mostrar escribiría en la pantalla el texto entrecomillado y a continuación
mostraría el valor de A o B según sea el caso.
Estructura condicional múltiple
En este caso, dependiendo del valor que tome la variable numérica que controla la
condición que vaya a evaluarse, se ejecutará una de las n acciones correspondientes.
EJEMPLO:
Introducir por teclado un valor numérico, denominado NUM_CARTA, asociado a una
carta (01-12), y mostrar el nombre de la carta asociado a ese número.
Inicio
Introducir NUM_MES
Según NUM_MES Hacer
=1 Mostrar «As»
=2 Mostrar «Dos»
...
=12 Mostrar «Rey»
Fin_según
Fin
En primer lugar, se lee el número de la carta y, a continuación, gracias a la estructura
condicional múltiple, se entra en la instrucción que muestra el nombre de la carta.
Dependiendo del valor de la variable num_carta se mostrará el nombre de la carta.
Estructura repetitiva
Permite la repetición de un bloque de instrucciones dependiendo de la veracidad o
falsedad de una condición. La condición se conoce como Condición de Salida y a estas
estructuras se las denomina también Bucles.
Las estructuras repetitivas pueden ser:
— Estructura tipo Mientras.
— Estructura tipo Hasta.
— Estructura tipo Para.
Estructura tipo mientras
El bloque de acciones se repetirá mientras que la condición sea cierta. La condición se
evalúa al comienzo de la estructura. Esto implica que el bloque de instrucciones puede
no ejecutarse ninguna vez si la condición de salida es inicialmente falsa.
EJEMPLO:
Una empresa tiene grabados los datos personales de sus empleados. Se desea imprimir
el nombre de los empleados mayores de 55 años.
Inicio
Leer Empleado
Mientras Hay_Empleados
Si Empleado_Edad> 55
Entonces
Mostrar Empleado
Fin_si
Leer Empleado
Fin_mientras
Fin
En primer lugar, se leen los datos de un empleado, a continuación se evalúa la condición
de salida (Hay_Empleados) y se comprueba, con una estructura condicional simple, si la
edad del empleado es mayor de 55 años; si lo es, se muestra el nombre del empleado.
Después se vuelve a leer otro empleado y se retorna a la evaluación de la condición de
salida del bucle, cuya finalización vendrá cuando no existan más empleados.
Estructura tipo hasta
El bloque de acciones se repetirá hasta que la condición sea cierta.
Dicha condición se evalúa al final de la estructura. Esto implica que el bloque de
instrucciones se ejecutará al menos una vez, aunque la condición de salida ya sea cierta
al entrar en dicha estructura.
La diferencia fundamental entre ambas estructuras repetitivas es que, en el primer tipo,
las acciones del bucle puede que no se realicen nunca si la condición de salida del
mismo es inicialmente cierta. Por el contrario, las acciones del bucle, en el segundo tipo,
se realizarán, al menos una vez, ya que la condición se evalúa después de haber sido
realizadas dichas acciones.
EJEMPLO:
Visualizar la tabla de multiplicar del número 3
Inicio
CONT = 0
Repetir
CONT = CONT + 1
PROD = CONT * 3
Mostrar PROD
Hasta CONT = 10
Fin
Para resolver este problema se necesitan dos variables: CONT que es un contador que
almacenará cuantos números se han visualizado, de ahí que sea la variable que controle
el bucle (condición de salida), y PROD que almacena el valor del número a mostrar y
que corresponde a los números de la tabla.
Estructura tipo para
Si el número de iteraciones (repeticiones) es fijo o se conoce de antemano, se puede
utilizar una estructura tipo Para o Desde en lugar de utilizar una estructura tipo
Mientras.
La estructura Para ejecuta las acciones del bucle un número específico de veces y
controla automáticamente el número de repeticiones.
Para dicho control, hay que definir dentro de la estructura el nombre de una variable
numérica, su valor inicial, su valor final y un incremento fijo. Es la propia estructura la
que se encarga de inicializar la variable con el valor indicado, incrementarla en cada
iteración y, cuando sobrepasa el valor final especificado, termina la repetición del bucle.
La evaluación de la condición de salida se hace al comienzo de cada iteración.
La diferencia fundamental entre los dos tipos de estructuras radica en que en la
estructura Mientras hay que realizar, mediante instrucciones, la inicialización de la
variable que controle el bucle, así como su incremento; y en la estructura Para esto se
hace automáticamente.
EJEMPLO:
Construir un programa en pseudocódigo que calcule y muestre la suma de los números
comprendidos entre 1 y 100, ambos inclusive.
Inicio
SUMA = 0
Para NUM desde 1 hasta 100
SUMA = SUMA + NUM
Fin_para
Mostrar SUMA
Fin
Se necesita utilizar dos variables: SUMA en donde se va a calcular la suma de los 100
primeros números, y NUM que es la variable que controla el bucle. Empieza en 1 y llega
hasta 100. Cuando NUM sobrepase el valor 100, indicará que ya se han sumado todos los
números, con lo que el bucle de tipo Para terminará y en SUMA se tendrá el valor
buscado.

Pseudocodigos

  • 1.
    Pseudocódigos Conceptos Básicos. El pseudocódigo Elpseudocódigo (falso lenguaje) es una descripción de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintácticas propias de lenguajes de programación, como asignaciones, ciclos y condicionales. Es utilizado para describir algoritmos en libros y publicaciones científicas, y como producto intermedio durante el desarrollo de un algoritmo. El pseudocódigo está pensado para facilitar a las personas el entendimiento de un algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementación. Programadores diferentes suelen utilizar convenciones distintas, que pueden estar basadas en la sintaxis de lenguajes de programación concretos. Sin embargo, el pseudocódigo en general es comprensible sin necesidad de conocer o utilizar un entorno de programación específico, y es a la vez suficientemente estructurado para que su implementación se pueda hacer directamente a partir de él Después de haber escrito el pseudocódigo se tiene una idea clara de los pasos que deben seguirse para construir el programa, pero aún tendría que ser codificado en un lenguaje. Cuanto más detallado sea el pseudocódigo, más sencillo será este proceso. El pseudocódigo es una herramienta muy útil utilizada en el diseño de algoritmos para resolver problemas que, si emplea los principios de la programación estructurada, permite expresar el flujo de ejecución de las instrucciones de una forma clara, sin ambigüedad y usando un lenguaje natural. El pseudocódigo es una forma de describir la solución a un problema de manera que su traducción posterior a un lenguaje de programación de alto nivel sea sencilla. Trata de definir la solución del problema en un lenguaje intermedio entre el humano y el de programación. Reglas generales del pseudocódigo No hay una forma estándar de diseñar un pseudocódigo, depende en gran medida del criterio del programador. A pesar de ello, es aconsejable respetar lo más rigurosamente posible las siguientes normas de carácter general: — Todo pseudocódigo comienza con la palabra «Inicio» y termina con la palabra «Fin». — Cada instrucción se debe escribir en una línea.
  • 2.
    — Para sudescripción, se utilizan una serie de palabras reservadas: Inicio, fin, si, entonces, si no, fin-si, mientras, etc. — Debe escribirse «identado» (tabulado) para mostrar claramente las dependencias de control dentro de los módulos. — Cada estructura utilizada tendrá un solo punto de comienzo y un solo punto de fin de estructura. Algunos autores suelen utilizar un corchete para unir el principio y fin de cada estructura. — Se escribirá en minúscula, excepto aquellos nombres que elige el programador, como son los nombres de variables, de ficheros, de módulos, etc., que se escribirán con mayúsculas. A continuación se verá en pseudocódigo las tres estructuras básicas de control en las que se apoya la programación estructurada. Estructura secuencial EJEMPLO: Calcular la suma y el producto de dos números. La solución es sencilla, lo primero que se tiene que hacer es introducir los números A y B, después sumarlos, luego multiplicarlos y, por último, presentar los resultados al usuario en pantalla. Estas acciones se deben ejecutar en ese orden y secuencialmente, la estructura secuencial expresa perfectamente la solución al problema. El pseudocódigo siguiendo las reglas descritas anteriormente sería: Inicio Introducir A y B SUMA = A + B PRODUCTO = A * B Mostrar SUMA, PRODUCTO Fin Estructura condicional Es la que realiza un conjunto de instrucciones de entre varios posibles, dependiendo del cumplimiento, o no, de una determinada condición. Existen tres tipos de estructuras condicionales:
  • 3.
    — Estructura condicionalsimple. — Estructura condicional doble. — Estructura condicional múltiple. Estructura Condicional Simple Aquí se evalúa la condición y, sólo si es cierta, se ejecuta el conjunto de acciones correspondiente. El no cumplimiento de la condición implica que no se realizará ninguna de las acciones indicadas. EJEMPLO: El problema a resolver es el de introducir un número, que se denominará NUM, por teclado y, si es mayor de 20, mostrarlo por pantalla. Inicio Introducir NUM Si NUM > 20 Entonces Mostrar NUM Fin_si Fin En esta ocasión se tiene que si, y sólo si, el valor NUM es mayor de 15, se debe mostrar el valor NUM; si no se cumple la condición no se mostrará el valor de NUM. Estructura Condicional Doble En este tipo de estructura se ejecutará un bloque de instrucciones u otro, dependiendo de la certeza o falsedad de una condición. EJEMPLO: Decidir cuál de dos valores es el mayor IInicio Introducir A y B Si A > B Entonces Mostrar «El mayor es» A Si no Mostrar «El mayor es» B Fin_si Fin El problema es sencillo puesto que, dependiendo de la condición A > B, se ejecutará una instrucción u otra.
  • 4.
    La instrucción Mostrarescribiría en la pantalla el texto entrecomillado y a continuación mostraría el valor de A o B según sea el caso. Estructura condicional múltiple En este caso, dependiendo del valor que tome la variable numérica que controla la condición que vaya a evaluarse, se ejecutará una de las n acciones correspondientes. EJEMPLO: Introducir por teclado un valor numérico, denominado NUM_CARTA, asociado a una carta (01-12), y mostrar el nombre de la carta asociado a ese número. Inicio Introducir NUM_MES Según NUM_MES Hacer =1 Mostrar «As» =2 Mostrar «Dos» ... =12 Mostrar «Rey» Fin_según Fin En primer lugar, se lee el número de la carta y, a continuación, gracias a la estructura condicional múltiple, se entra en la instrucción que muestra el nombre de la carta. Dependiendo del valor de la variable num_carta se mostrará el nombre de la carta. Estructura repetitiva Permite la repetición de un bloque de instrucciones dependiendo de la veracidad o falsedad de una condición. La condición se conoce como Condición de Salida y a estas estructuras se las denomina también Bucles. Las estructuras repetitivas pueden ser: — Estructura tipo Mientras. — Estructura tipo Hasta. — Estructura tipo Para. Estructura tipo mientras El bloque de acciones se repetirá mientras que la condición sea cierta. La condición se evalúa al comienzo de la estructura. Esto implica que el bloque de instrucciones puede no ejecutarse ninguna vez si la condición de salida es inicialmente falsa. EJEMPLO:
  • 5.
    Una empresa tienegrabados los datos personales de sus empleados. Se desea imprimir el nombre de los empleados mayores de 55 años. Inicio Leer Empleado Mientras Hay_Empleados Si Empleado_Edad> 55 Entonces Mostrar Empleado Fin_si Leer Empleado Fin_mientras Fin En primer lugar, se leen los datos de un empleado, a continuación se evalúa la condición de salida (Hay_Empleados) y se comprueba, con una estructura condicional simple, si la edad del empleado es mayor de 55 años; si lo es, se muestra el nombre del empleado. Después se vuelve a leer otro empleado y se retorna a la evaluación de la condición de salida del bucle, cuya finalización vendrá cuando no existan más empleados. Estructura tipo hasta El bloque de acciones se repetirá hasta que la condición sea cierta. Dicha condición se evalúa al final de la estructura. Esto implica que el bloque de instrucciones se ejecutará al menos una vez, aunque la condición de salida ya sea cierta al entrar en dicha estructura. La diferencia fundamental entre ambas estructuras repetitivas es que, en el primer tipo, las acciones del bucle puede que no se realicen nunca si la condición de salida del mismo es inicialmente cierta. Por el contrario, las acciones del bucle, en el segundo tipo, se realizarán, al menos una vez, ya que la condición se evalúa después de haber sido realizadas dichas acciones. EJEMPLO: Visualizar la tabla de multiplicar del número 3 Inicio CONT = 0 Repetir CONT = CONT + 1 PROD = CONT * 3 Mostrar PROD Hasta CONT = 10 Fin
  • 6.
    Para resolver esteproblema se necesitan dos variables: CONT que es un contador que almacenará cuantos números se han visualizado, de ahí que sea la variable que controle el bucle (condición de salida), y PROD que almacena el valor del número a mostrar y que corresponde a los números de la tabla. Estructura tipo para Si el número de iteraciones (repeticiones) es fijo o se conoce de antemano, se puede utilizar una estructura tipo Para o Desde en lugar de utilizar una estructura tipo Mientras. La estructura Para ejecuta las acciones del bucle un número específico de veces y controla automáticamente el número de repeticiones. Para dicho control, hay que definir dentro de la estructura el nombre de una variable numérica, su valor inicial, su valor final y un incremento fijo. Es la propia estructura la que se encarga de inicializar la variable con el valor indicado, incrementarla en cada iteración y, cuando sobrepasa el valor final especificado, termina la repetición del bucle. La evaluación de la condición de salida se hace al comienzo de cada iteración. La diferencia fundamental entre los dos tipos de estructuras radica en que en la estructura Mientras hay que realizar, mediante instrucciones, la inicialización de la variable que controle el bucle, así como su incremento; y en la estructura Para esto se hace automáticamente. EJEMPLO: Construir un programa en pseudocódigo que calcule y muestre la suma de los números comprendidos entre 1 y 100, ambos inclusive. Inicio SUMA = 0 Para NUM desde 1 hasta 100 SUMA = SUMA + NUM Fin_para Mostrar SUMA Fin Se necesita utilizar dos variables: SUMA en donde se va a calcular la suma de los 100 primeros números, y NUM que es la variable que controla el bucle. Empieza en 1 y llega hasta 100. Cuando NUM sobrepase el valor 100, indicará que ya se han sumado todos los números, con lo que el bucle de tipo Para terminará y en SUMA se tendrá el valor buscado.