16
Funciones “En C” Semestre de Otoño 2006 Claudio Gutiérrez- Soto

Funciones “En C”

  • Upload
    danno

  • View
    126

  • Download
    3

Embed Size (px)

DESCRIPTION

Funciones “En C”. Semestre de Otoño 2006. Claudio Gutiérrez-Soto. Aprendizajes Esperados. Contextualización de las funciones Definición de Funciones. Funciones. - PowerPoint PPT Presentation

Citation preview

Page 1: Funciones “En C”

Funciones“En C”

Semestre de Otoño 2006

Claudio Gutiérrez-Soto

Page 2: Funciones “En C”

Aprendizajes Esperados

Contextualización de las funciones Definición de Funciones

Page 3: Funciones “En C”

Funciones

Sea C(x) una definición de la complejidad de un problema x y E(x) una función que define el esfuerzo (en tiempo) requerido para resolver un problema x. Para dos problemas, p1 y p2 , si

C(p1) > C(p2) 1.a

se deduce que

E(p1) > E(p2) 1.b

Page 4: Funciones “En C”

Funciones

Para un caso general, este resultado es intuitivamente obvio. Se tarda más tiempo en resolver un problema difícil.

Se ha encontrado otra propiedad interesante, a partir de la experimentación sobre la resolución humana de problemas. Se trata de lo siguiente:

C(p1 + p2) > C(p1) + C(p2)1.c

Page 5: Funciones “En C”

Funciones

La ecuación 1.c indica que la complejidad de un problema compuesto por p1 y p2 es mayor que la complejidad total cuando se considera cada problema por separado . Considerando la desigualdad 1.c y la condición implicada por las desigualdades 1.a y 1.b, se deduce que :

E(p1+p2) > E(p1) + E(p2) 1.d

Page 6: Funciones “En C”

Funciones

Esto nos lleva a una conclusión del tipo “Divide y Vencerás".

Por consiguiente deberemos considerar las funciones como “Cajas Negras", las cuales se encargaran de ejecutar una tarea especifica.

Por lo tanto deberemos concentrarnos en el "Diseño Global de Programa" en lugar de los detalles.

Page 7: Funciones “En C”

Funciones

La estructura de una función es como sigue:

tipo_de_funcion nombre_de_la_funcion(argumentos)

{

Cuerpo de la Función

return(variable ó valor); /* opcional sólo cuando la función es de tipo void*/

}

Page 8: Funciones “En C”

Funciones

Donde el tipo_de_funcion corresponde al tipo de datos que retorna ó devuelve dicha función, la cual puede ser del tipo entero ( int ) , flotante (float), carácter (char )

Page 9: Funciones “En C”

Funciones

argumentos: corresponde a valores recibidos por la función, los cuales también se deben definir de un tipo determinado, como si se tratase de una definición de variable común y corriente, cabe destacar además que no necesariamente una función debe recibir un valor, si no que esta puede estar vacía.

La estructura de los argumentos pueden ser:

nombre_de_la_funcion(tipo_dato arg1,tipo_dato arg2,...,tipo_dato argN)

Page 10: Funciones “En C”

Funciones

ó también: nombre_de_la_funcion(arg1, arg2,..., argN)tipo_dato arg1,tipo_dato arg2,...,tipo_dato argN;{

Cuerpo de la Función return(variable ó valor); }

Page 11: Funciones “En C”

Ejemplo

Crear un programa que sume dos valores utilizando una función llamada suma, la cual recibe como argumentos de tipo entero.

Page 12: Funciones “En C”

Ejemplo#include<stdio.h>#include<conio.h>int suma(int a,int b); void main(){ int a,b,result; clrscr( ); printf("Ingrese el primer valor \n"); scanf("%d",&a); printf("Ingrese el segundo valor \n"); scanf("%d",&b); result=suma(a,b); //se ingresan las variables

//adecuadas como parámetros y el valor devuelto por //la función es asignada a la variable result.

printf("El resultado es : %d \n",result);}int suma(int a,int b){ return(a+b);}

Page 13: Funciones “En C”

Otro Forma#include<stdio.h>#include<conio.h>int suma(int a,int b); void main(){ int a,b,result; clrscr( ); printf("Ingrese el primer valor \n"); scanf("%d",&a); printf("Ingrese el segundo valor \n"); scanf("%d",&b); result=suma(a,b); printf("El resultado es : %d \n",result);}int suma(int a,int b){ int result; result=a+b; return(result);}

Page 14: Funciones “En C”

Ejercicio

Crear un programa que calcule la potencia utilizando funciones

Page 15: Funciones “En C”

Solución

#include<stdio.h>#include<conio.h>float potencia(int base, int exp);void main( ){ int a,b; float pot; clrscr( ); printf("Ingrese el valor de la base \n"); scanf("%d",&a); printf("Ingrese el valor del exponente \

n"); scanf("%d",&b); pot=potencia(a,b); printf("El resultado es: %f \n",pot);}

float potencia(int base, int exp)

{

int i;

float pot;

if(exp>=0)

for(i=1,pot=1.0 ; i<=exp ; i++)

pot=pot*base;

else{

for(i=1,pot=1.0 ; i<= (-1*exp) ; i++)

pot=pot*base;

pot=1/pot;

}

return(pot);

}

Page 16: Funciones “En C”

Conclusiones

La idea general es poder resolver el problema abstrayéndose de la implementación.

Es mejor dividir el problema, en pequeños subproblemas y luego resolver dichos subproblemas. (Dividir para Vencer)

Las funciones reciben argumentos. Dichos argumentos se utilizan como variables que sólo existen en el cuerpo de esa función.

Las funciones son del tipo, de acuerdo al valor que retornan.