Está en la página 1de 6

Programación de Computadoras - Curso Básico - Prof. John J. Muñoz P.

17

Introducción a los Subprogramas


Diseño Descendente: uno de los métodos fundamentales para resolver un problema es dividirlo en
problemas más pequeños llamados sub-problemas. Estos sub-problemas pueden a su vez dividirse
repetidas veces en problemas más pequeños hasta que estos son solucionados.

Problema
Principal

Sub-problema Sub-problema Sub-problema


1 2 3

Cada -problema es deseable que sea independiente de los restantes y se denomina modulo.

El problema principal es resuelto por el programa principal (también llamado conductor del
programa) y los sub-problemas (módulos) por subprogramas.

Ejemplo:
Notas de
Estudiantes

Leer Notas Visualizar Ordenar Asignar Visualizar


Notas Notas Calificación Resultados

Notas: 0 al 5 6 al 10 11 al 15 16 al 20
Calificación: Terrible Recuperable Notable Excelente

Subprogramas
Los subprogramas son un conjunto de una o varias instrucciones definidas para ejecutar una tarea
especifica (operación, cálculo, etc.).

La ventaja que ofrecen los subprogramas es que se pueden utilizar (ejecutar) tantas veces como
sea necesario sin tener que repetir el mismo conjunto de instrucción. Además la elaboración de los
programas resulta mejor organizada y auditable, permitiendo la intervención de varios
programadores en un mismo programa al subdividirse las tareas y facilitarse su integración.

Tipos de Subprogramas

1. Según su origen
• Predefinidos: disponibles a través del lenguaje, ejemplo: Read, Write, otros.
• Definidos por el usuario: diseñados por el programador e incluidos en un programa.
2. Según su estructura
• Procedimientos: pueden devolver cero, uno o varios valores al programa principal o
subprograma que hace uso de ellos.
• Funciones: normalmente devuelven un solo valor al programa principal o subprograma que
las utiliza. No se deben emplear para lectura ni impresión de datos.

Orden de Ejecución de los Subprogramas

Al ser llamados por una unidad del programa (programa principal u otro subprograma) el control de
ejecución se transfiere al subprograma, una vez concluido este el control regresa a la instrucción
inmediata siguiente al llamado del subprograma.
Programación de Computadoras - Curso Básico - Prof. John J. Muñoz P. 18

Diferencias Básicas entre Procedimientos y Funciones.

Procedimientos Funciones
1. Puede recibir cero o más valores de la • Puede recibir cero o más valores de la
unidad que lo utiliza y devuelve cero o más unidad que lo utiliza y devuelve un único
valores a dicha unidad. valor a esta.
2. Puede incluir lectura de variables, impresión • No debe incluir lectura de variables,
o modificación de las variables de la unidad impresión o modificación de las variables de
que las utiliza. la unidad que las utiliza.
3. No se puede asignar valores al nombre del • Debe contener una asignación a una
procedimiento. variable de su mismo nombre, ejemplo:
4. Su llamado es en si misma una instrucción Nombre_función = expresión
del programa. • Su llamado es parte de una instrucción del
programa.

PROCEDIMIENTOS

Declaración de procedimientos

Al igual que cualquier otro identificador los procedimientos deben ser declarados y definidos antes
que un llamado a los mismos.

Sub nombre_procedimiento(lista de parámetros formales)


Declaraciones locales
Instrucciones
:
End Sub

donde:
• nombre_procedimiento: identificador valido
• Lista de parámetros formales: lista de uno o más parámetros separados por coma e indicando
su tipo)

Ejemplos:
Sub estrellas
:
Sub geometría(ByVal long As single, ByRef area As single, ByRef perimetro As single))
:

Llamado a procedimientos

Los procedimientos pueden ser llamados dentro del programa principal u otro subprograma
directamente por su nombre.

nombre_procedimiento(lista de parámetros actuales)

Ejemplos:
estrellas()
geometría(2.1, A, P)

Estructura de un Procedimiento

Al igual que cualquier programa un procedimiento consta de:


• Encabezado: nombre y lista de parámetros formales.
• Sección de declaraciones: declaración de constantes, variables, procedimientos, etc. de uso
local.
• Sección ejecutable: cuerpo del procedimiento.
Programación de Computadoras - Curso Básico - Prof. John J. Muñoz P. 19

Parámetros
Cualquier información que se requiera transferir entre un subprograma y la unidad de programa que
lo utiliza o viceversa debe realizarse por medio de parámetros.

Parámetros Actuales: son aquellos que se incluyen en la sentencia de llamado a un subprograma.


Indican los valores enviados o recibidos al o desde el subprograma.

Parámetros Formales: son aquellos se incluyen en la declaración de los subprogramas. Indican el


orden, cantidad y tipo de los datos recibidos o enviados por el subprograma.

Debe existir correspondencia entre los parámetros actuales y los formales. Ejemplo:

Sub geometría(ByVal long As single, ByRef area As single, ByRef perímetro As single)
:

geometria(2.0, A, P)

Según el tipo de comunicación requerida entre la unidad que utiliza el subprograma y esta pueden
utilizarse dos tipos dee parámetros formales:

Parámetros Formales Por Valor: cuando la información que debe ingresar al subprograma se
caracteriza por:
• Son variables de entrada al subprograma.
• Están representadas por variables locales del subprograma.
• Se crean al ejecutarse el subprograma y toman los valores provenientes de la llamada
(parámetros actuales)
• Quedan indefinidas una vez concluido el subprograma.

Parámetros Formales Por Referencia: cuando la información que debe ingresar y salir del
subprograma a través de estos parámetros. Se caracteriza por:
• Son variables de entrada y salida al subprograma.
• Están representadas por variables del subprograma que equivalen a las enviadas por la
llamada.
• Cualquier modificación dentro del subprograma afecta al valor original recibido.

Ámbito de un Identificador
Las secciones de un programa en las cuales un identificador es valido o puede ser utilizado se
conoce como ámbito del identificador. Las reglas que rigen dicho ámbito son:
• Un identificador declarado en un programa o subprograma puede ser utilizado en estos o dentro
de cualquier subprograma incluido en ellos.
• Si un identificador declarado en un programa o subprograma es redeclarado en algún
subprograma interno, este subprograma y cualquier otro encerrado en este quedan excluidos
del ámbito del identificador declarado en el programa o subprograma original.
Programación de Computadoras - Curso Básico - Prof. John J. Muñoz P. 20

Ejemplo:

'Programa que escribe un mensaje en la pantalla


'Elaborado por: J. Muñoz Fecha: 05-07-2016
Module Module1
Sub estrellas()
Console.WriteLine("*****************")
End Sub
Sub Main()
estrellas()
Console.WriteLine(" Mensaje")
estrellas()
Console.ReadKey() 'Pausa
End Sub

End Module

Ejemplo:

Área y
perímetro

Leer datos Calcular área Visualizar


y perímetro resultados

'Programa que determina el área y perímetro de un cuadrado


'Elaborado por: J. Muñoz Fecha: 05-07-2016
Module Module1
Dim L, A, P As Single
Sub leer()
Console.Write("Indique la longitud del lado: ")
L = Console.ReadLine()
End Sub
Sub geometria()
A = L * L
P = 4 * L
End Sub
Sub visualizar()
Console.WriteLine("El área es: " & A)
Console.WriteLine("El perímetro es: " & P)
End Sub
Sub Main()
leer()
geometria()
visualizar()
Console.ReadKey() 'Pausa
End Sub

End Module
Programación de Computadoras - Curso Básico - Prof. John J. Muñoz P. 21

Ejemplo:

'Programa que determina el área y perímetro de un cuadrado


'Elaborado por: J. Muñoz Fecha: 05-07-2016
Module Module1

Sub leer(ByVal L As Single)


Console.Write("Indique la longitud del lado: ")
L = Console.ReadLine()
End Sub
Sub geometria(ByVal L As Single, ByRef A As Single, ByRef P As Single)
A = L * L
P = 4 * L
End Sub
Sub visualizar(ByVal A As Single, ByVal P As Single)
Console.WriteLine("El área es: " & A)
Console.WriteLine("El perímetro es: " & P)
End Sub
Sub Main()
'Declaración de variables
Dim l, a, p As Single
'Procesamiento de datos
leer(l)
geometria(l, a, p)
visualizar(a, p)
Console.ReadKey() 'Pausa
End Sub

End Module

FUNCIONES

Una función es un subprograma que recibe como argumentos o parámetros datos provenientes de
la unidad de programa que hace uso de él y devuelve a esta un único resultado.

Tipos de Funciones

Según su origen
• Predefinidas: disponibles a través del lenguaje, ejemplo: Abs, Sin, otras.
• Definidas por el usuario: diseñadas por el programador e incluidos en un programa.

Declaración de una función

Function nombre_función(lista de parámetros formales) As Tipo


Declaraciones locales
Instrucciones
:
nombre_función = valor de la función
End Function

donde:
• Nombre_función: identificador valido
• Lista de parámetros formales: lista de uno o más parámetros separados por coma e indicando
su tipo)
• Tipo: tipo de dato resultante que devuelve la función

Ejemplos:
Function triple(ByVal num As single) As Single
triple = 3 * num
End Funtion
Programación de Computadoras - Curso Básico - Prof. John J. Muñoz P. 22

Llamado a una función

Las funciones pueden ser llamadas dentro del programa principal u otro subprograma directamente
por su nombre, pero como parte de una instrucción de estos.

nombre_función(lista de parámetros actuales)

Ejemplos:
Console.WriteLine(“El triple es: “ & triple(n))
suma = suma + triple(a)

También podría gustarte