Sunteți pe pagina 1din 18

PROGRAMACIN UNIDAD 1 FUNCIONES

Primavera 2010

Contenido
Introduccin

Variables locales, globales y estticas


Paso de parmetros
Por Valor Por referencia

Recursividad

Introduccin
Encuentra el Mximo de x,y,z y w max = x; if (y > max) max = y; else if (z > max) max = z; else if (w > max) max = w; Encuentra el Mximo de x,y,z y w M1=Maximo(x,y ) M2=Maximo(z,w )
M=Maximo(M1,M 2)

int Maximo(int x, int y) { if (x > y) return (x); else return (y); }

Introduccin

Divide y Vencers
La

principal idea detrs de las funciones es dividir un problema en sub-problemas de solucin sencilla Utilizando bloques (funciones) podemos alcanzar la solucin al problema mas fcilmente

Ventajas
Facilitan

la escritura y lectura de programas Facilitan la reutilizacin del cdigo. Desarrollo modular de los programas Permiten la construccin de bibliotecas

Definicin

Una funcin es un segmento del programa que realiza determinadas tareas bien definidas Todo programa en C consta de una o mas funciones

Estructura del programa


Inclusin de Libreras Prototipos de Funciones

#include <stdio.h> int maximo(int x, int y);

main() { int a,b,c; c = maximo (a,b) return 0; }

Programa Principal

int maximo(int x, int y) { return }

Definicin de Funciones

Formato de las funciones

El formato para la declaracin de funciones es:


tipo-devuelto nombre-de-funcin(lista-de-parmetros)

{
declaraciones e instrucciones }

Ejemplo de funcin

El factorial se define como:

N! 1 2 3 N 1 N
int factorial(int N) { int f = 1;

int i;
for(i=2; i<=N; i++) f *= i; return f; }

Acceso a una funcin

Se puede acceder (llamar) a una funcin especificando su nombre seguido de sus lista de parmetros encerrados en parntesis y separados por comas. Ejemplo:
factorial(m); maximo(x,y);

La llamada a la funcin puede aparecer sola o como parte de una expresin mas compleja
x = factorial(m)*factorial(n);

Acceso a una funcin

Los argumentos que aparecen el la llamada de la funcin se denominan argumentos actuales Los argumentos que aparecen en la definicin de la funcin son llamados argumentos formales. Debe existir una argumento actual por cada argumento formal. Los argumentos actuales pueden ser variables simples, constantes o expresiones

Ejemplo
#include <stdio.h> #include <stdlib.h>

Este programa calcula el cubo de los 10 primeros nmeros naturales

int cubo(int a); int main(){ int i,x;

argumento formal

for(int i = 1; i <= 10 ; i++) argumento { actual x = cubo(i); printf("El cubo de %i es %i\n",i,x); } system("pause"); return 0; } int cubo(int a) {

return (a*a*a);
}

Ejemplo
Este programa calcula los coeficientes de la expansin de un binomio a la potencia N.

#include <stdio.h> #include <stdlib.h> int fact(int N); int main(){ int p; printf("Teclee la potencia del binomio: "); scanf("%i",&p); printf("Los coeficientes son: "); for(int i= 0; i<=p ; i++) printf("%i ",fact(p)/(fact(p-i)*fact(i))); printf("\n"); system("pause"); return 0; } argumento int fact(int N) { int i,f =1; for(i=2; i<=N; i++) f *= i; return f; }

actual

Ejemplo
#include <stdio.h> #include <stdlib.h>

Este programa calcula el cubo de los 10 primeros nmeros naturales

int maximo(int x, int y); int main(){ int a,b,c,d; printf("a = ");scanf("%i",&a); printf("b = ");scanf("%i",&b); printf("c = ");scanf("%i",&c); d = maximo(a,b); printf(El maximo numero es %i \n,maximo(d,c)); system("pause"); return 0; } int maximo(int x, int y) {

if (x > y)return (x); else return(y);


}

Ejemplo
#include <stdio.h> #include <stdlib.h>

Este programa calcula el cubo de los 10 primeros nmeros naturales

int maximo(int x, int y); int main(){ int a,b,c,d; printf("a = ");scanf("%i",&a); printf("b = ");scanf("%i",&b); printf("c = ");scanf("%i",&c); d = maximo(maximo(a,b),c); printf(El maximo numero es %i \n,d); system("pause"); return 0; } int maximo(int x, int y) {

if (x > y)return (x); else return(y);


}

Variables

Las variables son objetos que pueden cambiar su valor durante la ejecucin de un programa Existen tres tipos de variables
Locales

Globales
Estticas

Las variables locales son objetos definidos tanto en el programa principal como en las funciones. Su alcance se limita a al programa principal o funcin

Variables locales

Cada variable local definida en una funcin comienza a existir solo cuando se llama a esa funcin

Esta variable desaparece cuando el control regresa al programa principal Debido a que no retiene su valor, debe ser inicializada cada vez que se ejecuta la funcin, de otra manera contendr basura

Ejemplo
Variable local main()

#include <stdio.h> #include <stdlib.h> int fact(int N); int main(){ int p; printf("Teclee la potencia del binomio: "); scanf("%i",&p); printf("Los coeficientes son: "); for(int i= 0; i<=p ; i++) printf("%i ",fact(p)/(fact(p-i)*fact(i))); printf("\n"); system("pause"); return 0; } int fact(int N)

Variable local fact()

{ int i,f =1; for(i=2; i<=N; i++) f *= i; return f; }

Variables Globales

Las variables globales son objetos definidos antes del inicio del programa principal y su alcance es muy amplio, ya que tiene influencia tanto en el programa principal como en las funciones

#include <stdio.h> #include <stdlib.h> int x; int suma(int a); main() { x = suma(5); } int suma(int a) {

Variables globales

int b
b = a + x; return b; }

Conflicto entre variables

Las variables locales tiene prioridad sobre las variables globales que cuentan con el mismo nombre

S-ar putea să vă placă și