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
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.

Ensayo funciones

  • 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.