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.
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.
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.
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
Me gusta, tiene información muy interesante.
ResponderEliminarMe parece interesante , tiene buena informaciòn
ResponderEliminarfelicitaciones esta quedando bien el blog
ResponderEliminar