You are on page 1of 36

Facultad de Ingeniera de Sistemas y Electrnica

Algoritmo y Estructura de Datos


Tema : Procedimientos_Funciones

Sub-Programas
La programacin estructurada permite la escritura de programas fciles de leer y modificar. En esta programacin, el flujo lgico se gobierna por las estructuras de control bsicas vista hasta hoy: secuenciales, repetitivas y de seleccin.

Sub-Programas
Permiten descomponer un problema en un conjunto de problemas independientes entre s, ms sencillos de resolver y que pueden ser tratados separadamente unos de otros.
Se pueden probar los subprogramas de manera independiente, depurndose sus errores antes de su inclusin en el programa principal y almacenarse para su posterior utilizacin cuantas veces se precise.

Ventajas de los Sub-programas


Independientes, el desarrollo de un programa se puede efectuar con mayor facilidad. Se podr modificar un mdulo sin afectar a los dems.
Los subprogramas slo se escribirn una vez, aunque se necesiten en distintas ocasiones a lo largo del algoritmo. Permite buscar los errores en un programa ya que stos se pueden aislar fcilmente.

Tiempo de Vida de las Variables


Globales: las variables permanecen activas durante todo el programa. Se utilizan en cualquier procedimiento o funcin.
Locales: las variables son creadas dentro de una funcin o procedimiento. Al finalizar la funcin o el procedimiento, desaparecen de la memoria. Dos variables locales pueden tener el mismo nombre siempre que estn declaradas en funciones o procedimientos diferentes.

Son subprogramas que forman parte de un programa y realizan una tarea especfica. La diferencia entre un procedimiento y una funcin es que el primero solo indica la ejecucin de una secuencia de instrucciones en funcin de unos parmetros, mientras que las funciones representa un valor que se genera como resultado de su ejecucin.

Un procedimiento una funcin puede tener sus propias variables que se declaran en la seccin variables del propio procedimiento. Estas se llaman variables locales.

As, las variables locales para el procedimiento o funcin slo se pueden usar en el cuerpo del procedimiento y no en el cuerpo principal del programa.

Para llamar a un procedimiento funcin, se hace uso del nombre del mismo, opcionalmente se puede pasar valores si es que el procedimiento o funcin implementa parmetros. El paso de valores a los parmetros de un procedimiento funcin se puede hacer por valor y/o referencia.

Parmetros
Es un tipo especial de variables a los que se pueden pasar valores desde el exterior del procedimiento. Se declaran en la cabecera del procedimiento.

Los parmetros se clasifican en: 1. Por Valor 2. Por Referencia

Parmetros por Valor


Son los parmetros que pueden recibir valores pero que no pueden devolverlos. Es una variable global que se conecta con una variable local mediante el envo de su valor, despus de lo cual ya no hay relacin. Lo que le sucede a la variable local no afectar a la global.

Parmetros por Referencia


Son los que pueden recibir y devolver valores. Son variables globales que se conectan con una local a travs de su contenido; al establecerse dicha conexin las variables se convierten en sinnimos, lo que afecte a la variable local le suceder a la variable global.

Cuando pasas un parmetro por valor se crea una copia del valor de esa variable y la funcin trabaja con esa copia. Luego cuando vuelve al programa principal el valor no se ha modificado. Lo contrario ocurre cuando lo pasas por referencia, ah, en lugar de enviarle a la funcin una copia del valor, se le enva la posicin en memoria en la que se encuentra. Como resultado, cualquier modificacin que le hagas habindolo pasado por referencia se mantendr

Sintaxis :

Opcional

PROCEDIMIENTO Nombre(Lista_Parametros) VAR : <variables_locales> Instrucciones INICIO y/o : Sentencias : FIN-PROCEDIMIENTO

Ejemplo : Implementar un procedimiento que permita visualizar un texto un nmero determinado de veces.
ALGORITMO Ejemplo1 VARIABLES ENTERO N PROCEDIMIENTO IMPRIME(CADENA Texto, ENTERO Numero) VARIABLES mbito Local ENTERO I INICIO PARA I 1 HASTA Numero ESCRIBIR( Texto ) FIN-PARA FIN-PROCEDIMIENTO INICIO LEER( N ) IMPRIME(HOLA, N) IMPRIME(CETIS, 20) IMPRIME(UTP, 50) FIN

mbito Global Lista de Parmetros

Ejemplo1. Realizar una subrutina del siguiente ejemplo.

Ejemplo2. Realizar una funcin que permita calcular el mayor de dos nmeros ingresados por teclado.

Ejemplo3. Realizar una subrutina que visualice la suma de dos nmeros ingresados por teclado.

Ejemplo3A. Realizar una subrutina que visualice la suma los nmeros impares menores que 10

Ejemplo3b. Realizar una subrutina que que permita calcular el promedio de n nmeros ingresados por teclado.

Ejemplo4. Realizar una subrutina que visualice los nmeros primos menores que 30.

Ejemplo5. Realizar una subrutina que ingresado la base y el exponente de un numero muestre en pantalla la potencia de dicho numero.

Ejemplo6. Realizar una subrutina que muestre los divisores de un numero ingresado por teclado.

Algoritmo y Estructura de Datos


amendozaa@utp.edu.pe