Upload
karlalopezbello
View
602
Download
4
Embed Size (px)
DESCRIPTION
Citation preview
MODULO II - FUNDAMENTOS DEL LENGUAJE C
TEMA Nº 0 pág. 1/6
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
PROGRAMACION II
LECCION III – BLOQUE DE FUNCIONES
FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones - Concepto
PROGRAMACION II
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.
FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones - Concepto
PROGRAMACION II
FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones - Concepto
PROGRAMACION II
FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones - Estructura
PROGRAMACION II
FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Parámetros
PROGRAMACION II
FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Parámetros
PROGRAMACION II
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).
FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Parámetros
PROGRAMACION II
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.
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.
FUNDAMENTOS DEL LENGUAJE C - Bloque de funciones – Parámetros
PROGRAMACION II
FUNDAMENTOS DEL LENGUAJE C - Bloque de funciones – Parámetros
PROGRAMACION II
FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Parámetros
PROGRAMACION II
FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Parámetros
PROGRAMACION II
PROGRAMACION II
FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – variables locales
/* Fichero: simpson.c */
#include <stdio.h>
#include <math.h>
double f( double x )
{
return 1.0/(1.0 + x*x);
} /* f */
double integral_f( double a, double b, int
n )
{
double result;
double x, dx;
int i;
result = 0.0;
if( (a < b) && (n > 0) ) {
x = a;
dx = (b-a)/n;
for( i = 0; i < n; i = i + 1 ) {
result = result + f(x);
x = x + dx;
} /* for */
} /* if */
return result;
} /* integral_f */
void main( void )
{
double a, b;
int n;
printf( "Integración numérica de f(x).\n" );
printf( "Punto inicial del intervalo, a = ? " );
scanf( "%lf", &a );
printf( "Punto final del intervalo, b = ? " );
scanf( "%lf", &b );
printf( "Número de divisiones, n = ? " );
scanf( "%d", &n );
printf(
"Resultado, integral(f)[%g,%g] = %g\n",
a, b, integral_f( a, b, n )
); /* printf */
} /* main */
FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Ejemplo
PROGRAMACION II
FUNDAMENTOS DEL LENGUAJE C – Funciones de entrada/salida de datos
PROGRAMACION II
FUNDAMENTOS DEL LENGUAJE C – Funciones de entrada estándar
PROGRAMACION II
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.
FUNDAMENTOS DEL LENGUAJE C – Funciones de entrada estándar
PROGRAMACION II
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.
FUNDAMENTOS DEL LENGUAJE C – Funciones salida estándar
PROGRAMACION II
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 ] )
%[-][+][anchura[.precisión]]tipo_de_dato
Los especificadores de campo tienen el formato siguiente:
printf( "El importe de la factura núm.: %5d", num_fact );
printf( "de Sr./-a. %s sube a %.2f_\n", cliente, importe );
FUNDAMENTOS DEL LENGUAJE C – Funciones salida estándar
PROGRAMACION II
%[-][+][anchura[.precisión]]tipo_de_dato
FUNDAMENTOS DEL LENGUAJE C – Funciones salida estándar
PROGRAMACION II
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" );
FUNDAMENTOS DEL LENGUAJE C - Funciones de entrada/salida de datos
PROGRAMACION II
• 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: %f\n", 27*12, 3.1416);
FUNDAMENTOS DEL LENGUAJE C – Lenguaje C – Ejercicios
PROGRAMACION II
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.