Inicio | Artículos | Biografías | Cursos | Entrevistas | Frases | Libros | Diccionario | Presentaciones | Servicios | Videos | Mapa Web | Enlazar | Contactar | Acerca de


CURSO/TUTORIAL 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?
Subprogramas
Procedimientos
Declaraciones Locales y Globales
Parámetros
Funciones
Representación mediante Diagramas de Flujo
CarlosPes.comCurso de Diseño de Algoritmos > Procedimientos en Pseudocódigo

Procedimientos en Pseudocódigo

¿Cómo representar procedimientos en pseudocódigo?

En pseudocódigo, la sintaxis que se utiliza para escribir un procedimiento 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 cómo 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/Tutoriales de Informática
Curso/Tutorial de Algoritmos
Curso/Tutorial de Informática Básica
Curso/Tutorial de Ingeniería del Software
Curso/Tutorial de Lenguaje C
Curso/Tutorial de Marketing en Internet
Curso/Tutorial de Turbo Pascal
Curso/Tutorial de Representación de los Datos
Curso/Tutorial para Webmasters
Curso/Tutorial Web 2.0
Curso de SEO
Libros de Carlos Pes
36 Pasos Básicos para Desarrollar un Sitio Web
Empezar de Cero a Programar en Lenguaje C
Fundamentos del SEO
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
Biografías
Entrevistas
Frases y Citas
Recursos Educativos
Presentaciones Educativas
Videos Educativos
Enlaces Web
Servicios
Desarrollo de Sitios Web
Diseño Web
Aplicaciones Web
Marketing Online
Formación y Conferencias
Consultoría
Acerca de Carlos Pes
Bibliotecas
Colaboradores
Contactar
Enlazar
Librerías
Perfiles en Internet
Mapa Web
Blog de Carlos Pes Blog de Carlos Pes
Google+ CarlosPes.Com en Google+
© 2006-2017 CarlosPes.com