Descargar la presentación
La descarga está en progreso. Por favor, espere
1
FUNCIONES Y PROCEDIMIENTOS
Cátedra de Informática I – Ing. José Tortone
2
DESCRIPCIÓN DEL PROGRAMA
#include <stdio.h> int fibo(int n); int main(int argc, char *argv[]) { int cant; int x; printf(“Termino de la Serie " ); scanf("%d", &cant ); x = fibo(cant); printf("%d\n", x ); return 0; } int fibo(int n ) int a=0, b=1, c; int cant= 2; do c = a + b; a=b; b=c; cant = cant + 1; }while(cant < n); return c; DESCRIPCIÓN DEL PROGRAMA Este es un programa en C que llama a una función llamada fibo que devuelve el término n de la serie de Fibonacci. Programa Principal Declaración de la Función fibo int fibo(int n); NOMBRE DE LA FUNCIÓN Puede llevar cualquier nombre con las mismas reglas que las variables. Los nombres no deben repetirse. Desarrollo de la función fibo PARÁMETRO/S Son los datos que se le pasa a la función para que sean procesados. En este caso un número que indica cuál término de la serie de Fibonacci queremos obtener. Los parámetros pueden ser ninguno o la cantidad que creamos necesaria. VALOR DE RETORNO Devuelve uno o ninguno. Si devuelve un valor tenemos una FUNCION. Si no devuelve ninguno tenemos un PROCEDIMIENTO.
3
TIPOS DE FUNCIONES Y PROCEDIMIENTOS
#include <stdio.h> int fibo(int n); int main(int argc, char *argv[]) { int cant; int x; printf("Termino de la Serie " ); scanf("%d", &cant ); x = fibo(cant); printf("%d\n", x ); return 0; } int fibo(int n ) int a=0, b=1, c; int cant= 2; do c = a + b; a=b; b=c; cant = cant + 1; }while(cant < n); return c; TIPOS DE FUNCIONES Y PROCEDIMIENTOS Funciones de Librería. Ya están hechas y vienen compiladas en unos archivos llamados Archivos de Librería, y sus declaraciones están en los Archivos de Cabecera. Dentro del archivo stdio.h están declaradas las funciones printf y scanf. Funciones definidas por el Usuario. Se las debe programar y pueden ser ejecutadas todas las veces que se quiera desde el programa principal o desde cualquier otra función o procedimiento definidos por el usuario con sola condición que antes de utilizarse estén declaradas. En este caso la función fibo es llamada desde la función principal (main)
4
EJECUTAMOS EL PROGRAMA
#include <stdio.h> int fibo(int n); int main(int argc, char *argv[]) { int cant; int x; printf("Termino de la Serie " ); scanf("%d", &cant ); x = fibo(cant); printf("%d\n", x ); return 0; } int fibo(int n ) int a=0, b=1, c; int cant= 2; do c = a + b; a=b; b=c; cant = cant + 1; }while(cant < n); return c; EJECUTAMOS EL PROGRAMA Al llamarse a la función, el control del programa pasa a fibo(). El Parámetro cant se copia a la variable n de fibo(). Las variables a, b, c, cant de la función fibo() son locales y no pueden ver a las variables x, cant de main(), también locales. Notar que las variables cant de main() y cant de fibo() SON DIFERENTES (ocupan distintas direcciones de memoria) aunque tengan el mismo nombre. El valor de retorno c se lo asigna a la variable x de main().
5
UTILIZACIÓN DE VARIABLES DE PUNTERO
CUÁNDO SE UTILIZAN? Cuando se necesita que una variable del programa que llama pueda ser modificada desde la función o el procedimiento. Para pasar vectores como parámetro. SI NO HUBIÉRAMOS UTILIZADO VARIABLES DE PUNTERO NO SE HABRÍA PRODUCIDO EL CAMBIO DE VARIABLES Antes de llamar a la función cambiar() Después de llamar a la función cambiar() PRIMER CASO Aquí el procedimiento cambiar() en vez de recibir como parámetros los valores de a y b, recibe las DIRECCIONES DE MEMORIA de a y b mediante variables de puntero. #include <stdio.h> void cambiar( int *m, int *n) { int aux = *m; *m = *n; *n = aux; } int main(int argc, char *argv[]) int a=10, b=20; printf("a=%d b=%d\n\n", a, b ); cambiar( &a, &b ); return 0; La variable aux (variable local) tomará el valor que está guardado en la dirección de memoria m o sea el valor de la variable a de main(). El valor que está guardado en la dirección de memoria de m (a) tomará el valor que está guardado en la dirección de memoria de n (b). El valor que está guardado en la dirección de memoria de n (b) tomará el valor de aux (variable local).
6
CASO 2: LOS VECTORES SIEMPRE SON PASADOS A LAS FUNCIONES Y PROCEDIMIENTOS COMO VARIABLES DE PUNTERO
#include <stdio.h> #include <stdlib.h> #include <time.h> #define Terms 20 void mostrar(int *x, int cant) { int i; for( i = 0; i < cant; i++) printf("%d\t", x[i]); } printf("\n\n"); int main(int argc, char *argv[]) int a[Terms], i; srand(time(NULL) ); for( i = 0; i < Terms; i++) a[i] = (rand()%501)+500; mostrar(a, Terms); return 0; OBSERVAR Al pasar un vector como parámetro NO SE PASA la dirección del vector. EL NOMBRE DEL VECTOR ES UNA VARIABLE DE PUNTERO. Cuando llamamos a la función o procedimiento para los vectores se utilizan los corchetes con la variable local, puesto que la utilización de los mismos ES OTRA MANERA DE INDIRECCIONAR. X[i]
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.