sábado, 24 de octubre de 2015

COMPONENTES DE UNA FUNCION

Una función tiene tres componentes importantes:
Los parámetros, que son los valores que recibe la función como entrada.
Ecódigo de la función, que son las operaciones que hace la función. Eresultado (o valor de retorno)que es el valor final que entrega la función.
En esencia, una función es un mini programa. Sus tres componentes son análogos a la entrada, el proceso y la salida de un programa.
Declaración: una declaración es una sentencia que introduce un nombre en una unidad de compilación, dándole existencia semántica.
Argumentos: son los valores realmente suministrados a un procedimiento  cuando éste es invocado o llamado. En ocasiones se considera sinónimo de parámetro, pero técnicamente no significan lo mismo.
Parámetro: Un parámetro es una propiedad intrínseca de un procedimiento, dado que está incluido en su definición.

Invocación de funciones

Las invocación de funciones se realiza colocando el nombre de la función y los argumentos actuales en el mismo orden que los parámetros formales correspondientes. Ejemplo:
void funcion (int x, char c);
...int z = 12;char ch = 'Z';funcion(ch, z);   // Error: orden de argumentos cambiado !!funcion(z, ch);   // Ok: invocación con orden correcto


 valor de retorno de una función
Una función puede devolver cualquier tipo de valor a la función que la invoca; incluso main puede devolver un valor al ámbito en que se está ejecutando el programa, pero téngase en cuenta que aunque una función devuelva un valor, es potestad de la función invocante recibirlo o ignorarlo.
En otros lenguajes las funciones que no devuelven nada reciben el nombre de procedimientos ("Procedures"). Así pues, los procedimientos serían un caso particular de las funciones C++.

Ámbito o alcance de las variables
Es la parte del programa donde la variable es accesible.
Esta definición es también aplicable a constantes y objetos.
En C++ existen tres tipos de ámbitos:
- Global o de programa
- Local o de función.
- De bloque.
Variables globales.
Son variables declaradas fuera de cualquier función, normalmente al comienzo del programa.
// Ejemplo de variable global
#include <iostream>
using namespace std;

//se declara x como global.
int x = 1
Variables locales.
Las variables locales son las que se declaran dentro de una función. Son accesibles desde el punto donde se declaran hasta el final del bloque donde se han declarado. 
#include <iostream>
using namespace std;

bool es_primo(int);

int main()
{   int numero, i; // variables locales de main
    cout << "Introduzca 10 numeros enteros > 0: ";
    for(i=1;i<=10;i++)
    {
        do
        {
           cout << "numero " << i << ": ";
           cin >> numero;
        }while(numero <= 0);
        if (es_primo(numero))
            cout << "Es primo" << endl;
        else
            cout << "No es primo" << endl;
    }
    system("pause");
}
Variables de bloque.
Una función puede contener bloques definidos dentro de otros. Los límites de los bloques están definidos por las llaves de apertura y cierre { }.

Paso de argumentos por valor:


Al realizar la definición de la función colocamos los parámetros que ésta recibe especificando el tipo de dato de los mismos.Luego, cuando hacemos el llamado y especificamos los argumentos, estos se evalúan y se le pasa a la función una copia de los mismos. A esto es lo que llamamos paso por valor 



}

Paso de argumentos  por referencia:


En el pasaje por referencia se pasa a la función las direcciones de memoria de las variables en cuestión en lugar de su valor. A diferencia del paso por valor, aquí no se realizan copias de las variables sino que se trabaja sobre la dirección de memoria que pasamos, lo que nos permite modificar el valor de la variable en cuestión.


Luego hacemos el llamado a la función de la misma manera, pero pasando las direcciones de memoria de x e y:

Obteniendo lo siguiente al compilar el programa y ejecutarlo:










}


Paso de argumentos  por referencia:


En el pasaje por referencia se pasa a la función las direcciones de memoria de las variables en cuestión en lugar de su valor. A diferencia del paso por valor, aquí no se realizan copias de las variables sino que se trabaja sobre la dirección de memoria que pasamos, lo que nos permite modificar el valor de la variable en cuestión.


Luego hacemos el llamado a la función de la misma manera, pero pasando las direcciones de memoria de x e y:

Obteniendo lo siguiente al compilar el programa y ejecutarlo:









2 comentarios:

  1. este tema es interesante ya que nos da a conocer todos los parametros de una funsiòn, la invocaciòn de funciones y los pasos de argumentos por valor y por referencia donde nos explica claramente cada uno de ellos.

    ResponderBorrar
  2. Es muy interesante profundizar cada uno de estos parametros argumentos y funciones; ya que estos facilitan en un momento dado al programador al momento de realizar su programa.

    ResponderBorrar