Traductor

II. MÓDULOS (FUNCIONES)


En programación, una función es un grupo de instrucciones con un objetivo en particular y que se ejecuta al ser llamada desde otra función o procedimiento.

2.1  TIPOS DE FUNCIONES: INTERNAS Y CREADAS POR EL USUARIO.

  • Internas: Las funciones internas son funciones escritas en C que han sido enlazadas estáticamente en el proceso backend de Postgres.
  • Creadas por el usuario: Son aquellas que crea usted mismo para usarlas en aplicaciones, a diferencia de las funciones en las clases incorporadas, que realizan funciones predefinidas.
Imagen 6. Programación modular: Funciones.

2.2  COMPONENTE
Es un objeto escrito de acuerdo a unas especificaciones.
       2.2.1 DECLARACIÓN
Es una construcción del lenguaje que asocia un nombre con una entidad. 

Imagen 7.  Ejemplo de la Declaración de funciones.












2.2.2 ARGUMENTOS
es una variable utilizada para recibir valores de entrada en una rutina o subrutina. Dichos valores, que serán enviados desde la rutina invocante, son llamados argumentos.

2.2.3 PARAMÉTROS
Es un valor que la función espera recibir cuando sea llamada (invocada), a fin de ejecutar acciones en base al mismo.


2.2 INVOCACIÓN U RETORNO DEL VALOR DE LA FUNCIÓN
Las funciones se utilizan por invocacion o llamada, su sintaxis es:
Imagen 8. Invocación u retorno del valor de la función.
Nombre Funcion (arg1, arg2,...); donde los argumentos corresponden exactamente en orden y número como se escriben en la declaracion de la funcion.

Funciones que regresan un valor; esto significa que cuando la función es invocada llevará a cabo la ejecución de su código.
 El código calculará un valor de alguna manera y este valor será regresado a quien haya invocado la función. 

La invocación puede haber sido hecha por la función Main () o alguna otra función, y como ésta regresará un valor, necesitamos indicar su tipo.

 El tipo dependerá del valor devuelto. 
Si el valor es un entero, entonces el tipo de la función es int. Si el valor es un flotante, la función tendrá tipo float. 

  
2.4 ÁMBITO O ALCANCE DE LAS VARIABLES
Es la zona del programa en la que se define la variable.

2.5 PASO DE ARGUMENTOS POR VALOR
Este método copia el valor de los argumentos sobre los parámetros formales, de manera que los cambios de valor de los parámetros no afectan a las variables utilizadas como argumentos en la llamada.

Lo importante en el paso por valor es el valor del argumento, por eso es indiferente si este argumento es una variable, una constante o una expresión.

2.6 PASO DE ARGUMENTOS POR REFERENCIA
A diferencia del paso por valor, en el paso por referencia los parámetros no copian el valor del argumento, sino que comparten su valor. 
Por lo que cuando cambia el valor del parámetro también cambia el valor de la variable utilizada como argumento en la llamada. 

La forma de indicar un parámetro por referencia es anexar el símbolo & al final del nombre de la variable de tipo en la lista de parámetros formales, tanto en el prototipo de la función como en el encabezado de su definición.



ACTIVIDADES


A.      EJEMPLO DONDE SE ANALIZA LAS FUNCIONES INTERNAS, ASOCIÁNDOLAS CON LA DEFINICIÓN MATEMÁTICA DE FUNCIÓN.

FUNCIÓN QUE PERMITA CALCULAR EL CUBO DE UN NÚMERO REAL.

#include<stdio.h>
#include <cmath>
//1) Crear una función que permita calcular el cubo de un número real (float)
 void proc(float a,float b){
scanf("%f",&a);
b = pow(a,3);
printf("\n \n El cubo del numero ingresado es: %.2f",b);
}
int main(){ float a,b; 
printf("\n Ingrese un numero: \n \n"); 
proc(a,b);
return 0;

B.1  EJEMPLO DE EJERCICIO DE PROGRAMACIÓN, DONDE SE ANALIZA LA DIFERENCIA ENTRE EL PASO POR VALOR Y PASO POR REFERENCIA.


Por valor sería:
Código:

#include <stdio.h>#include <stdlib.h>
typedef struct
{
    int orden;
    char nombre[30];
}agenda;

void escribir_datos(agenda param)
{
    param.orden = 1;
    strcpy(param.nombre, "Daniel");
    printf("\n Orden....:%d", param.orden);
    printf("\n Nombre...:%s", param.nombre);
}  
int main()
{
    agenda datos;
    escribir_datos(datos);
    printf("\n\n Pulse una tecla para cerrar la aplicacion...");
    getchar();
    getchar();
    return 0;
}

Y por referencia: 
Código:

#include <stdio.h>#include <stdlib.h>
typedef struct
{
    int orden;
    char nombre[30];
}agenda;
void escribir_datos(agenda *param)
{
    param->orden = 1;
    strcpy(param->nombre, "Daniel");
}  
int main()
{
    agenda datos;
    escribir_datos(&datos);
    printf("\n Orden....:%d", datos.orden);
    printf("\n Nombre...:%s", datos.nombre);
    printf("\n\n Pulse una tecla para cerrar la aplicacion...");
    getchar();
    getchar();
    return 0;
}

En el caso de pasar la variable por referencia se envía a la función la dirección en la memoria en que se encuentra la variable, la función lo recibe como puntero y el valor es modificado tanto afuera como dentro de la función. Y el signo "->" es lo mismo que "*.", como se trata de un puntero se ocupa cualquiera de esas 2 notaciones para acceder al campo de una estruct o union.


B.2 VIDEO EXPLICATIVO

C++ - Paso por valor y por referencia

3 comentarios:

Haga su comentario aquí....