1. Por: Paola Chamba
Subprogramas: Funciones
INTRODUCCIÓN
Soluciona problemas complejos al dividirlos en subprogramas y luego dividirlos estos en otros más simples,
hasta que estos sean más fáciles de resolver. Esta técnica se llama “divide y vencerás”. El problema principal
denominado controlador o conductor (drive) y la solución de los subproblemas conocidos como
procedimientos (subrutinas) o funciones.
SUBPROGRAMAS O SUBALGORITMOS:
La resolución de los problemas complejos se facilita considerablemente si se dividen en problemas más pequeños
(subproblemas). La solución de estos subproblemas se realiza con sub algoritmos.
Un subprograma, sin embargo se utiliza por el programa para un propósito específico. El subprograma recibe datos
desde el programa y le devuelve resultados. Se dice que el programa principal llama o invoca al subprograma. El
subprograma ejecuta una tarea, a continuación devuelve el control al programa. Cada vez que el subprograma es
llamado, el control retorna al lugar desde donde fue hecha la llamada.
Pr Su
og bp
ra rog
ma ra
ma
s
Llamada Retorno
Funciones y Procedimientos
SEMEJANZAS
Ambos tipos de subrutinas son definidas por el usuario (el programador)
Ambos tipos pueden definirse para que acepten argumentos (parámetros)
Ambos tipos pueden invocarse de diversas formas para su ejecución y desde varios puntos
dentro del programa principal
Ambos tipos pueden retornar resultados al punto de llamada
Ambos tipos pueden agruparse en librerías de subrutinas que otros programas pueden incluir
DIFERENCIAS
FUNCIÓN PROCEDIMIENTO
Las funciones sólo pueden retornar un único valor los procedimientos más de uno
Las funciones sólo aceptan parámetros de entrada Los procedimientos aceptan tanto parámetros de entrada como
de entrada/salida.
Las funciones no. Los procedimientos pueden contener otras subrutinas
Las funciones no Los procedimientos son autónomos
Una función debe especificar el tipo de dato a Los procedimientos no
devolver
Las funciones se destinan para realizar una única Los procedimientos para más de una.
tarea.
Las funciones deben ser cortas Los procedimientos suelen ser largos
VARIABLES LOCALES Y GLOBALES
2. Locales Globales
- Son definidas dentro de cada función o - Definidas al comienzo del programa, que se
procedimiento, y solo se pueden usar en puede usar a lo largo de todo el programa, es
la función o procedimiento en la que son decir, dentro del algoritmo principal y en
declaradas cada función definida en el programa
EJEMPLO:
#include<iostream>
#include<cmath>
using namespace std;
float media(int a, intb,int c); // variable global
int main()
{
inta,b,c; //variable local
floatresultado; //variable local
cout<<"ingrese el 1 numero:";
cin>>a;
cout<<"ingrese el 2 numero:";
cin>>b;
cout<<"ingrese el 2 numero:";
cin>>c;
cout<<"la media entre "<<a<<", "<<b<<" y "<<c<<" es: "<<media( a, b, c);
}
float media(int a, int b, int c)
{
float resultado;
resultado=(a+b+c)/3;
return resultado;
}
COMUNICACIÓN CON SUBPROGRAMAS: PASO DE PARAMETROS
Cuando un programa llama a una subrutina, la información se comunica a través de losparámetros y se establece
una correspondencia automática entre los parámetros formales y los actuales.Los actuales son sustituidos o
utilizados en lugar de los parámetros formales. La correspondencia entrelos parámetros se establece aparejando los
parámetros actuales y formales según su posición en la listade parámetros.Los parámetros se pueden clasificar
como:
Entradas: son parámetros que sólo aportan el valor que tienen como entrada al subprograma
Salidas: se usan sólo y exclusivamente para devolver resultados a través de ellos.
Entradas/Salidas:aporta información cuando se llama al subprograma y devuelve, a través de él, los resultados
cuando se termina la ejecución del subprograma
PASO POR REFERENCIA
El paso de parámetros por referencia consiste en proporcionar a la
PASO POR VALOR
subrutina a la que se le quiere pasar el argumento la dirección de
El paso de parámetros por valor consiste en copiar el contenido de
memoria del dato. En este caso se tiene un único valor referenciado
la variable que queremos pasar en otra dentro del ámbito local de
(o apuntado) desde dos puntos diferentes, el programa principal y la
la subrutina, consiste pues en copiar el contenido de la memoria
subrutina a la que se le pasa el argumento, por lo que cualquier
del argumento que se quiere pasar a otra dirección de memoria,
acción sobre el parámetro se realiza sobre la misma posición de
correspondiente al argumento dentro del ámbito de dicha
memoria
subrutina. Se tendrán dos valores duplicados e independientes,
con lo que la modificación de uno no afecta al otro.