Inicio | Artículos | Cursos | Frases | Libros | Diccionario | Presentaciones | Servicios | Videos Mapa Web | Enlazar | Contactar

CURSO DE DISEÑO DE ALGORITMOS
Introducción
¿Qué es un Algoritmo?
¿Qué es un Ordinograma?
Elementos Básicos
Tipos de Datos
Identificadores
Variables
Constantes
Operadores y Expresiones
Tipos de Datos Definidos por el Programador
Datos de Tipos Enumerados
Datos de Tipos Subrangos
Instrucciones Primitivas
Instrucción de Asignación
Instrucción de Salida
Instrucción de Entrada
Estructura de un Algoritmo
Partes de un Algoritmo
Cabecera
Declaraciones
Cuerpo
Sintaxis de un Algoritmo
Comentarios
Introducción a los Diagramas de Flujo
Asignación
Entrada y Salida
Inicio y Fin
Decisiones
Instrucciones de Control
Instrucciones Alternativas
Instrucciones Repetitivas
Instrucciones De Salto
Llamadas a Subalgoritmos
¿Qué es un Subalgoritmo?
CarlosPes.comCurso de Diseño de Algoritmos > Procedimientos en Pseudocódigo

Procedimientos en Pseudocódigo

¿Qué es un procedimiento?

En pseudocódigo, la sintaxis que se utiliza para escribir un pricedimiento es muy similar a la que se usa para escribir un algoritmo.
/* Cabecera */

procedimiento <nombre_del_procedimiento>(
[ <lista_de_parámetros_formales> ] )

/* Declaraciones */

[ constantes
     <declaraciones_de_constantes> ]
[ tipos_de_datos
     <declaraciones_de_tipos_de_datos> ]
[ variables
     <declaraciones_de_variables> ]

/* Cuerpo */

inicio
   <bloque_de_instrucciones>
fin
Existen dos diferencias importantes entre la sintaxis de un algoritmo y la de un procedimiento:
  1. En vez de la palabra reservada algoritmo, se debe escribir la palabra reservada procedimiento.
  2. En un procedimiento, después del <nombre_del_procedimiento>, se deben escribir los paréntesis "( )", entre los cuales, opcionalmente, se pueden declarar parámetros formales.
En el apartado "Parámetros Formales" estudiaremos qué son y para qué sirven los parámetros formales. De momento, para entender cómo se puede hacer uso de los procedimientos (sin parámetros) estúdiese el siguiente problema.

Ejemplo: Se quiere diseñar el algoritmo de un programa que:

1º) Muestre un menú con 4 opciones:

1. Mostrar los números del 1 al 10 (ambos inclusive).
2. Mostrar la tabla de multiplicar del 8.
3. Mostrar las primeras diez potencias de 2.
4. Salir.

2º) Pida por teclado la opción deseada (dato carácter). Deberá ser introducida, mientras que, no sea mayor o igual que '1' y menor o igual que '4'.

3º) Ejecute la opción del menú seleccionada.

4º) Repita los pasos 1º, 2º y 3º, mientras que, el usuario no seleccione la opción 4 (Salir) del menú.

En pantalla:
>>> MENÚ DE OPCIONES <<<

1. Números del 1 al 10.
2. Tabla de multiplicar del 8.
3. Primeras diez potencias de 2.
4. Salir.

Introduzca opción (1-4): 1

1 2 3 4 5 6 7 8 9 10

>>> MENÚ DE OPCIONES <<<

1. Números del 1 al 10.
2. Tabla de multiplicar del 8.
3. Primeras diez potencias de 2.
4. Salir.

Introduzca opción (1-4): 3

2 4 8 16 32 64 128 256 512 1024

>>> MENÚ DE OPCIONES <<<

1. Números del 1 al 10.
2. Tabla de multiplicar del 8.
3. Primeras diez potencias de 2.
4. Salir.

Introduzca opción (1-4): 2

8 * 1 = 8
8 * 2 = 16
8 * 3 = 24
8 * 4 = 32
8 * 5 = 40
8 * 6 = 48
8 * 7 = 56
8 * 8 = 64
8 * 9 = 72
8 * 10 = 80

>>> MENÚ DE OPCIONES <<<

1. Números del 1 al 10.
2. Tabla de multiplicar del 8.
3. Primeras diez potencias de 2.
4. Salir.

Introduzca opción (1-4): 4
Sin usar subalgoritmos, la solución al problema puede ser la siguiente:
algoritmo Menu_de_opciones

variables
   caracter opcion
     entero numero, contador, resultado

inicio

   hacer

      escribir( ">>> MENÚ DE OPCIONES<<<" )
      escribir( "1. Números del 1 al 10." )
      escribir( "2. Tabla de multiplicar del 8." )
      escribir( "3. Primeras diez potencias de 2." )
      escribir( "4. Salir." )
      escribir( "Introduzca opción: " )

      /* Filtramos la opción elegida por el usuario. */

      hacer
         leer( opcion )
      mientras ( opcion < '1' o opcion > '4' )

      /* La opción sólo puede ser 1, 2, 3 ó 4. */

      segun_sea ( opcion )

         '1' : para numero ← 1 hasta 10 hacer
                  escribir( numero )
               fin_para

         '2' : para contador ← 1 hasta 10 hacer
                  contador ← contador * 8
                  escribir( "8 * ", contador,
                            " = ", resultado )
               fin_para

         '3' : para contador ← 1 hasta 10 hacer
                  escribir( 2 ** contador )
               fin_para

      fin_segun_sea

   mientras ( opcion <> '4' )

fin
En este caso, parece obvio que cada una de las opciones del menú puede considerarse como un subproblema:

Subproblema 1: Mostrar los números del 1 al 10 (ambos inclusive).
Subproblema 2: Mostrar la tabla de multiplicar del 8.
Subproblema 3: Mostrar las primeras diez potencias de 2.

Los subalgoritmos (procedimientos) que dan solución a dichos subproblemas, pueden ser:
procecimiento Numeros_del_1_al_10()

variables
   entero numero

inicio
   para numero ← 1 hasta 10 hacer
      escribir( numero )
   fin_para
fin
procedimiento Tabla_de_multiplicar_del_8()

variables
   entero contador, resultado

inicio
   para contador ← 1 hasta 10 hacer
      contador ← contador * 8
      escribir( "8 * ", contador,
                " = ", resultado )
   fin_para
fin
procedimiento Primeras_diez_potencias_de_2()

variables
   entero contador

inicio
   para contador ← 1 hasta 10 hacer
      escribir( 2 ** contador )
   fin_para
fin
Además, al conjunto de instrucciones de salida que se utilizan para mostrar el menú por pantalla, también se le puede considerar como un subproblema:

Subproblema 4: Mostrar menú por pantalla.

Para ello, el procedimiento propuesto es:
procedimiento Menu_por_pantalla()

inicio
   escribir( ">>> MENÚ DE OPCIONES<<<" )
   escribir( "1. Números del 1 al 10." )
   escribir( "2. Tabla de multiplicar del 8." )
   escribir( "3. Primeras diez potencias de 2." )
   escribir( "4. Salir." )
   escribir( "Introduzca opción: " )
fin
De manera que, la solución al problema planteado puede venir dada por un módulo principal (programa principal):

Menu_de_opciones

y cuatro submódulos (subprogramas):

Numeros_del_1_al_10()

Tabla_de_multiplicar_del_8()

Primeras_diez_potencias_de_2()

Menu_por_pantalla()


Por otra parte, para hacer una llamada a un procedimiento, la sintaxis es:
<nombre_del_procedimiento>( [ <lista_de_parámetros_actuales> ] )
En una llamada a un procedimiento se debe escribir el identificador de dicho procedimiento, seguido de los parentesis "( )", entre los cuales, opcionalmente, se puede indicar una lista de parámetros actuales. En el apartado "Parámetros Actuales" vamos a estudiar qué son y para qué sirven los parámetros actuales.

Por tanto, usando los cuatro subalgoritmos (procedimientos) anteriores, la solución algorítmica al problema del ejemplo planteado, puede ser la siguiente:
algoritmo Menu_de_opciones

variables
   caracter opcion

inicio

   hacer

      Menu_por_pantalla()  /* Llamada a subalgoritmo */

      /* Filtramos la opción elegida por el usuario. */

      hacer
         leer( opcion )
      mientras ( opcion < '1' o opcion > '4' )

      /* La opción sólo puede ser 1, 2, 3 ó 4. */

      segun_sea ( opcion )

         '1' : Numeros_del_1_al_10()

         '2' : Tabla_de_multiplicar_del_8()

         '3' : Primeras_diez_potencias_de_2()

      fin_segun_sea

   mientras ( opcion <> '4' )

fin
Nota: En el apartado "Declaración de Subprogramas" veremos como se pueden declarar los procedimientos utilizados en el algoritmo.

Cuando se hace una llamada a un procedimiento, éste se ejecuta y, al finalizar, devuelve el control del flujo al programa (o subprograma) llamante, el cual continuará su ejecución con la siguiente instrucción a la llamada.
Artículos Interesantes
Artículos de Desarrollo Web
Artículos de Informática
Artículos de Programación
Artículos de SEO
Cursos de Informática
Curso de Diseño de Algoritmos
Curso de Informática Básica
Curso de Ingeniería del Software
Curso de Lenguaje C
Curso de Marketing en Internet
Curso de Turbo Pascal
Curso de Representación de los Datos
Curso de SEO
Curso para Webmasters
Curso Web 2.0
Enlaces Web
Libros de Carlos Pes
36 Pasos Básicos para Desarrollar un Sitio Web
Empezar de Cero a Programar en Lenguaje C
Libros Recomendados
Libros de Analítica Web
Libros de Desarrollo Web
Libros de Java
Libros de Lenguaje C
Libros de Marketing Online
Libros de Pascal (Turbo Pascal)
Libros de SEO
Libros de Visual Basic
Recursos de Informática
Diccionario de Informática
Ejercicios de Programación
Guías de uso de Software
Sintaxis de Lenguajes de Programación
Frases y Citas
Frases de Amistad
Frases de Amor
Frases de Belleza
Frases de Ciencia
Frases de Éxito
Presentaciones Educativas
Recursos Educativos
Servicios
Desarrollo de Sitios Web
Diseño Web
Aplicaciones Web
Marketing Online
Formación y Conferencias
Consultoría
Videos Educativos
Directorio de Enlaces Web
Acerca de Carlos Pes
Bibliotecas
Colaboradores
Contactar
Enlazar
Librerías
Perfiles en Internet
Mapa Web
Blog de Carlos Pes Blog de Carlos Pes
© 2006-2012 CarlosPes.com