3
CONCEPTO DE SUBPROGRAMA. FUNCIONES Y PROCEDIMIENTOS Un subprograma es una parte de un programa con un nombre y ámbito propio, que se invoca por su nombre y con los parámetros adecuados. DEFINICIÓN, DECLARACIÓN Y USO DE FUNCIONES - El lenguaje C se basa en el uso de funciones. No se puede escribir ninguna línea de código ejecutable que no pertenezca a una función. - El lenguaje C no dispone de procedimientos, sólo permite el uso de funciones. Para emular el uso de procedimientos se utilizan funciones que devuelvan como valor de retorno un dato de tipo void (lo que es igual a no devolver ningún dato). - No se puede definir una función dentro de otra función. Todas las funciones deben estar en el mismo nivel. - Siempre debe existir una función denominada main dentro del código del programa. Esta función será la que se ejecutará cuando se arranque el programa. # include <stdio.h> float suma (int, int); 1.Prototipo de función int main () { int a, b; float z; printf (“Dame dos enteros:”); scanf (“%d %d”, &a, &b); z= suma(a, b); 2. Llamada a la función printf (“La suma vale %f \n", z); return o; float suma (int x, int y) { float w; w= x+y; 3. Código de la función return w; } PASO DE PARAMETROS POR VALOR Y POR REFERENCIA Por valor: se hace una copia local de las variables que van como argumento de la función.

Control de Subprogramas (Funciones)

Embed Size (px)

DESCRIPTION

Funciones de subprogramas

Citation preview

Page 1: Control de Subprogramas (Funciones)

CONCEPTO DE SUBPROGRAMA. FUNCIONES Y PROCEDIMIENTOSUn subprograma es una parte de un programa con un nombre y ámbito propio, que se invoca por su nombre y con los parámetros adecuados.

DEFINICIÓN, DECLARACIÓN Y USO DE FUNCIONES- El lenguaje C se basa en el uso de funciones. No se puede escribir ninguna línea de código ejecutable que no pertenezca a una función.

- El lenguaje C no dispone de procedimientos, sólo permite el uso de funciones. Para emular el uso de procedimientos se utilizan funciones que devuelvan como valor de retorno un dato de tipo void (lo que es igual a no devolver ningún dato).

- No se puede definir una función dentro de otra función. Todas las funciones deben estar en el mismo nivel.

- Siempre debe existir una función denominada main dentro del código del programa. Esta función será la que se ejecutará cuando se arranque el programa.

# include <stdio.h>float suma (int, int); 1.Prototipo de funciónint main (){int a, b;float z;printf (“Dame dos enteros:”);scanf (“%d %d”, &a, &b);z= suma(a, b); 2. Llamada a la funciónprintf (“La suma vale %f \n", z);

return o;float suma (int x, int y){float w;w= x+y; 3. Código de la funciónreturn w;}

PASO DE PARAMETROS POR VALOR Y POR REFERENCIA

Por valor:  se hace una copia local de las variables que van como argumento de la función. Por referencia:  La función tiene acceso al argumento(s) del ámbito de llamada. En C se hace con

punteros. Es decir, se pasa la dirección de memoria de argumento(s).

Page 2: Control de Subprogramas (Funciones)

PASO DE ARRAYS A FUNCIONES: (El paso es por referencia)

Prototipo:  Se explicita tipo, nombre y dimensiones. En C se puede omitir la primera dimensión (vectores y matrices).

float escalar (int n, float v1[DIM], float v2[DIM]);

Definición:  Aquí es necesario nombre y dimensiones. En C se puede omitir la primera dimensión (vectores y matrices).

float escalar (int n, float v1[DIM], float v2[DIM]){float prod = 0for (i = 0, i < n, i ++)prod + = v1[i]*v2[i];return prod; }

Llamada:  Se llama poniendo como argumento el nombre del array.

int main (){int k;float x[DIM], y[DIM], z;…………..…………..…………..z = escalar (x, y);}

Punteros a funciones:  Una función (su código) ocupa un espacio físico en memoria, por tanto es posible apuntar a ese espacio. El puntero correspondiente, definido en un prototipo idéntico al de la función que va a apuntar, adquiere la dirección de memoria correspondiente en una asignación a través del nombre de la función.