Documente Academic
Documente Profesional
Documente Cultură
Primavera 2010
Contenido
Introduccin
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)
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
Programa Principal
Definicin de Funciones
{
declaraciones e instrucciones }
Ejemplo de funcin
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; }
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);
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>
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>
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) {
Ejemplo
#include <stdio.h> #include <stdlib.h>
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) {
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)
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; }
Las variables locales tiene prioridad sobre las variables globales que cuentan con el mismo nombre