1. PROGRAMACION II
MODULO II - FUNDAMENTOS DEL LENGUAJE C
LECCION III – BLOQUE DE FUNCIONES
1. Concepto
2. Estructura
3. Declaración de una función
4. Referencia a una función
5. Tipo de parámetros
6. Variables locales
7. Funciones estándar de entrada y salida
8. Recursión
TEMA Nº 0 pág. 1/6
2. PROGRAMACION II
FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones - Concepto
función es una parte de código independiente del programa principal y de
otras funciones, que puede ser llamada enviándole unos datos (o sin
enviarle nada), para que realice una determinada tarea y/o proporcione
unos resultados.
-Las funciones son una parte muy importante del lenguaje C.
-Mediante el uso de funciones se consigue un código limpio, claro y elegante.
-La adecuada división de un programa en funciones constituye un aspecto
fundamental en el desarrollo de programas de cualquier tipo.
-Las funciones, ya compiladas, pueden guardarse en librerías.
Las librerías son conjuntos de
funciones compiladas, normalmente
con una finalidad análoga o relacionada,
que se guardan bajo un determinado
nombre listas para ser utilizadas por
cualquier usuario.
7. PROGRAMACION II
FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Parámetros
El paso de parámetros se refiere a la acción de transformar los parámetros formales
a parámetros reales; es decir, de asignar un contenido a las variables que
representan a los argumentos:
tipo funcion_llamada(
parámetro_formal_1,
parámetro_formal_2,
...
);
funcion_llamadora( ... )
{
/* ... */
funcion_llamada( parámetro_real_1, parámetro_real_2, ... )
/* ... */
} /* funcion_llamadora */
Hay dos posibilidades: que los argumentos reciban el resultado
de la evaluación de la expresión correspondiente o que se
sustituyan por la variable que se indicó en el parámetro real de
la misma posición. El primer caso, se trata de un paso de
parámetros por valor, mientras que el segundo, se trata de un
paso de variable (cualquier cambio en el argumento es un
cambio en la variable que
consta como parámetro real).
8. PROGRAMACION II
FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Parámetros
El paso por valor consiste en asignar a la variable del parámetro formal
correspondiente el valor resultante del parámetro real en su misma posición. El
paso de variable consiste en sustituir la variable del parámetro real por la del
parámetro formal correspondiente y, consecuentemente, poder emplearla dentro de
la misma función con el nombre del parámetro formal.
En C, el paso de parámetros sólo se
efectúa por valor;
es decir, se evalúan todos los parámetros
en la llamada y se asigna el resultado al
parámetro formal correspondiente
en la función.
14. PROGRAMACION II
FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Ejemplo
/* Fichero: simpson.c */ x = x + dx;
#include <stdio.h> } /* for */
#include <math.h> } /* if */
double f( double x ) return result;
} /* integral_f */
{
return 1.0/(1.0 + x*x); void main( void )
} /* f */ {
double a, b;
double integral_f( double a, double b, int int n;
n) printf( "Integración numérica de f(x).n" );
printf( "Punto inicial del intervalo, a = ? " );
{
scanf( "%lf", &a );
double result; printf( "Punto final del intervalo, b = ? " );
double x, dx; scanf( "%lf", &b );
int i; printf( "Número de divisiones, n = ? " );
result = 0.0; scanf( "%d", &n );
if( (a < b) && (n > 0) ) { printf(
x = a; "Resultado, integral(f)[%g,%g] = %gn",
dx = (b-a)/n; a, b, integral_f( a, b, n )
for( i = 0; i < n; i = i + 1 ) { ); /* printf */
result = result + f(x); } /* main */
16. PROGRAMACION II
FUNDAMENTOS DEL LENGUAJE C – Funciones de entrada estándar
Se ocupan de obtener datos de la entrada estándar que, habitualmente, se trata del teclado.
Devuelven algún valor adicional que informa del resultado del proceso de lectura. El valor devuelto no
tiene por qué emplearse si no se necesita, pues muchas veces se conoce que la entrada de datos se
puede efectuar sin mayor problema.
scanf( "formato" [, lista_de_&variables ] )
Para poder depositar los datos leídos en las variables indicadas, esta función requiere que los
argumentos de la lista de variables sean las direcciones de memoria en las que se encuentran. Por
este motivo, es necesario emplear el operador “dirección de” (&). De esta manera, scanf deja
directamente en las zonas de memoria correspondiente la información que haya leído y,
naturalmente, la variable afectada verá modificado su contenido con el nuevo dato
scanf( "%d", &num_articulos ); La función scanf devuelve el
número de datos correctamente
leídos. Es decir, todos aquellos
para los que se ha encontrado
algún texto compatible con una
representación de su tipo.
17. PROGRAMACION II
FUNDAMENTOS DEL LENGUAJE C – Funciones de entrada estándar
getchar( )
Devuelve un carácter leído por la entrada estándar (habitualmente,
el buffer del teclado).
En caso de que no pueda leer ningún carácter, devuelve el carácter
EOF. Esta constante está definida en stdio.h y, por tanto, puede
emplearse para determinar si la lectura ha tenido éxito o, por lo contrario,
se ha producido algún error o se ha llegado al final de los datos
de entrada.
gets( cadena_caracteres )
Lee de la entrada estándar toda una serie de caracteres hasta
encontrar un final de línea (carácter 'n'). Este último carácter es
leído pero no se almacena en la cadena de caracteres que tiene
por argumento.
De no leer nada devuelve NULL, que es una constante definida en
stdio.h y cuyo valor es 0.
18. PROGRAMACION II
FUNDAMENTOS DEL LENGUAJE C – Funciones salida estándar
La salida estándar es el lugar donde se muestran los datos producidos
(mensajes, resultados, etcétera) por el programa que se encuentra en
ejecución. Normalmente, esta salida es la pantalla del ordenador o
una ventana dentro de la pantalla. En este último caso, se trata de la
ventana asociada al programa.
printf( "formato" [, lista_de_campos ] )
Los especificadores de campo tienen el formato siguiente:
%[-][+][anchura[.precisión]]tipo_de_dato
printf( "El importe de la factura núm.: %5d", num_fact );
printf( "de Sr./-a. %s sube a %.2f_n", cliente, importe );
19. PROGRAMACION II
FUNDAMENTOS DEL LENGUAJE C – Funciones salida estándar
%[-][+][anchura[.precisión]]tipo_de_dato
20. PROGRAMACION II
FUNDAMENTOS DEL LENGUAJE C – Funciones salida estándar
putchar( carácter )
Muestra el carácter indicado por la salida estándar.
puts( "cadena de caracteres" )
Muestra una cadena de caracteres por la salida estándar.
Ejemplo
putchar( „n' );
Ejemplo
puts( "Hola a todos!n" );
21. PROGRAMACION II
FUNDAMENTOS DEL LENGUAJE C - Funciones de entrada/salida de datos
• No forman parte del lenguaje, están en librería estándar:
#include <stdio.h>
• Escribir por pantalla: printf
printf ( <cadena> );
printf ( <cadena con formato>, <expresión 1>, <expresión 2>, ...);
printf("¡Buenos días!");
printf("Un entero: %d y un real: %fn", 27*12, 3.1416);
22. PROGRAMACION II
FUNDAMENTOS DEL LENGUAJE C – Lenguaje C – Ejercicios
1- Muestre en pantalla el mensaje "Bienvenido“.
2- Muestre en pantalla el mensaje "C no tiene misterios".
3- Muestre en pantalla la suma de 100 y 120.
4- Muestre en pantalla el producto de 50 y 51.
5- Guarde en la variable x (entera) el número 23, en la variable y (entera) el número 24, en la variable z (entera) el
número 25 y muestre en pantalla la suma de los valores de las tres variables.
6- Guarde en la variable x (entera) el número 10, en la variable y (entera) el número 11, en la variable z (entera) el
número 12, calcule su producto y lo guarde en una variable llamada producto, y finalmente muestre en pantalla
el valor de la variable producto.
7- Pida al usuario dos números enteros (que se guardarán en las variables a y b) y muestre su suma en pantalla.
8- Pida al usuario dos números enteros (que se guardarán en las variables n1 y n2) y muestre su producto en pantalla.
9- Pida al usuario dos números reales (que se guardarán en las variables dato1 y dato2) y muestre en pantalla el
resultado de dividir dato1 entre dato2.
10- Pida al usuario dos números reales (que se guardarán en las variables dato1 y dato2).Si dato2 es cero,deberá
mostrar un mensaje de error, y en caso contrario mostrará en pantalla el resultado de dividir dato1 entre dato2.