Está en la página 1de 2

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 parmetros adecuados.
DEFINICIN, DECLARACIN Y USO DE FUNCIONES
- El lenguaje C se basa en el uso de funciones. No se puede escribir ninguna lnea de cdigo
ejecutable que no pertenezca a una funcin.
- El lenguaje C no dispone de procedimientos, slo 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 ningn dato).
- No se puede definir una funcin dentro de otra funcin. Todas las funciones deben estar en el
mismo nivel.
- Siempre debe existir una funcin denominada main dentro del cdigo del programa. Esta funcin
ser la que se ejecutar cuando se arranque el programa.
# include <stdio.h>
float suma (int, int); 1.Prototipo de funcin
int main ()
{
int a, b;
float z;
printf (Dame dos enteros:);
scanf (%d %d, &a, &b);
z= suma(a, b); 2. Llamada a la funcin
printf (La suma vale %f \n", z);
return o;
float suma (int x, int y)
{
float w;
w= x+y; 3. Cdigo de la funcin
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 funcin.

Por referencia: La funcin tiene acceso al argumento(s) del mbito de llamada. En C se


hace con punteros. Es decir, se pasa la direccin de memoria de argumento(s).

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

Prototipo: Se explicita tipo, nombre y dimensiones. En C se puede omitir la primera


dimensin (vectores y matrices).
float escalar (int n, float v1[DIM], float v2[DIM]);

Definicin: Aqu es necesario nombre y dimensiones. En C se puede omitir la primera


dimensin (vectores y matrices).
float escalar (int n, float v1[DIM], float v2[DIM])
{
float prod = 0
for (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 funcin (su cdigo) ocupa un espacio fsico en memoria, por
tanto es posible apuntar a ese espacio. El puntero correspondiente, definido en un prototipo
idntico al de la funcin que va a apuntar, adquiere la direccin de memoria correspondiente en
una asignacin a travs del nombre de la funcin.

También podría gustarte