Programacion ii modulo2-leccion3

22
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

description

 

Transcript of Programacion ii modulo2-leccion3

Page 1: Programacion ii modulo2-leccion3

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

Page 2: Programacion ii modulo2-leccion3

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.

Page 3: Programacion ii modulo2-leccion3

FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones - Concepto

PROGRAMACION II

Page 4: Programacion ii modulo2-leccion3

FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones - Concepto

PROGRAMACION II

Page 5: Programacion ii modulo2-leccion3

FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones - Estructura

PROGRAMACION II

Page 6: Programacion ii modulo2-leccion3

FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Parámetros

PROGRAMACION II

Page 7: Programacion ii modulo2-leccion3

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).

Page 8: Programacion ii modulo2-leccion3

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.

Page 9: Programacion ii modulo2-leccion3

FUNDAMENTOS DEL LENGUAJE C - Bloque de funciones – Parámetros

PROGRAMACION II

Page 10: Programacion ii modulo2-leccion3

FUNDAMENTOS DEL LENGUAJE C - Bloque de funciones – Parámetros

PROGRAMACION II

Page 11: Programacion ii modulo2-leccion3

FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Parámetros

PROGRAMACION II

Page 12: Programacion ii modulo2-leccion3

FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – Parámetros

PROGRAMACION II

Page 13: Programacion ii modulo2-leccion3

PROGRAMACION II

FUNDAMENTOS DEL LENGUAJE C – Bloque de funciones – variables locales

Page 14: Programacion ii modulo2-leccion3

/* 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

Page 15: Programacion ii modulo2-leccion3

FUNDAMENTOS DEL LENGUAJE C – Funciones de entrada/salida de datos

PROGRAMACION II

Page 16: Programacion ii modulo2-leccion3

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.

Page 17: Programacion ii modulo2-leccion3

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.

Page 18: Programacion ii modulo2-leccion3

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 );

Page 19: Programacion ii modulo2-leccion3

FUNDAMENTOS DEL LENGUAJE C – Funciones salida estándar

PROGRAMACION II

%[-][+][anchura[.precisión]]tipo_de_dato

Page 20: Programacion ii modulo2-leccion3

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" );

Page 21: Programacion ii modulo2-leccion3

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);

Page 22: Programacion ii modulo2-leccion3

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.