Apunfun

15
FUNCIONES EL PROGRAMA SE DIVIDE EN MUCHOS MODULOS (RUTINAS PEQUEÑAS DENOMINADAS FUNCIONES), QUE PRODUCEN MUCHOS BENEFICIOS: AISLAR MEJOR LOS PROBLEMAS ESCRIBIR PROGRAMAS CORRECTOS MAS RAPIDOS Y PRODUCIR PROGRAMAS QUE SON MAS FACILES DE MANTENER. ASI PUES UN PROGRAMA EN C++, SE DIVIDE EN MUCHAS FUNCIONES, CADA UNA DE LAS CUALES REALIZA UNA TAREA PRINCIPAL.

Transcript of Apunfun

Page 1: Apunfun

FUNCIONESEL PROGRAMA SE DIVIDE EN MUCHOS MODULOS (RUTINAS PEQUEÑAS DENOMINADAS FUNCIONES), QUE PRODUCEN MUCHOS BENEFICIOS: AISLAR MEJOR LOS PROBLEMAS ESCRIBIR PROGRAMAS CORRECTOS MAS RAPIDOS Y PRODUCIR PROGRAMAS QUE SON MAS FACILES DE MANTENER.

ASI PUES UN PROGRAMA EN C++, SE DIVIDE EN MUCHAS FUNCIONES, CADA UNA DE LAS CUALES REALIZA UNA TAREA PRINCIPAL.

Page 2: Apunfun

ESTRUCTURA DE UNA FUNCION

O UNA FUNCION ES SENCILLAMENTE, UN CONJUNTO DE SENTENCIAS QUE SE PÚEDEN LLAMAR DESDE CUALQUIER PARTE DEL PROGRAMA. LAS FUNCIONES PERMITEN AL PROGRAMADOR UN GRADO DE ABSTRACCION EN LA RESOLUCION DE PROBLEMAS.

O UNA FUNCION NO SE PUEDE ANIDAR. ES DECIR UNA FUNCION NO SE PUEDE DECLARAR DENTRO DE OTRA FUNCION.

O LA ESTRUCTURA DE UNA FUNCION EN C++ ES LA SIGUIENTE:

O TIPO_DE_RETORNO NOMBRE DE LA FUNCION (LISTA DE PARAMETROS){

CUERPO DE LA FUNCIONRETURN EXPRESION

}

Page 3: Apunfun

ESTRUCTURA DE UNA FUNCION

O TIPO_DE_RETORNO: TIPO DE VALOR DEVUELTO POR LA FUNCION O LA PALABRA RESERVADA VOID SI LA FUNCION NO DEVUELVE NINGUN VALOR

O NOMBRE DE LA FUNCION: IDENTIFICADOR O NOMBRE DE LA FUNCION

O LISTA DE PARAMETROS: LISTA DE DECLARACIONES DE LOS PARAMETROS DE LA FUNCION SEPARADOS POR COMAS

O EXPRESION: VALOR QUE DEVUELVE LA FUNCION

Page 4: Apunfun

ESTRUCTURA DE UNA FUNCION

O ASPECTOS MAS SOBRESALIENTES EN UNA FUNCION:O TIPO DE RESULTADO: ES EL TIPO DE DATOS QUE DEVUELVE LA

FUNCION C++ Y APARECE ANTES DEL NOMBRE DE LA FUNCION

O LISTA DE PARAMETROS: ES UNA LISTA DE PARAMETROS TIPIFICADOS, CON TIPOS QUE UTILIZA EL FORMATO SIGUIENTE: TIPO1 PARAMETRO1, TIPO2 PARAMETRO 2…

O CUERPO DE LA FUNCION: SE ENCIERRA ENTRE LLAVES DE APERTURA { Y CIERRE } NO HAY PUNTOY COMA DESPUES DE LA LLAVE DE CIERRE

O PASO DE PARAMETROS: POSTERIORMENTE SE VERA QUE EL PASO DE PARAMETROS EN C++ SE PUEDE HACER POR VALOR Y POR REFERENCIA.

O NO SE PUEDEN DECLARAR FUNCIONES ANIDADASO DECLARACION LOCAL: LAS CONSTANTES, TIPOS DE DATOS Y

VARIABLES DECLARADAS DENTRO DE LA FUNCION SON LOCALES A LA MISMA Y NO PERDURAN FUERA DE ELLA.

O VALOR DEVUELTO: MEDIANTE LA PALABRA RESERVADA RETURN SE PUEDE DEVOLVER EL VALOR DE LA FUNCION.

Page 5: Apunfun

ESTRUCTURA DE UNA FUNCION

float sum (float num1, float num2){ float resp; resp= num1 + num2 return resp; }

Tipo de resultado Lista de parámetros

Cabecera de la función

Declaración de variables

Valor devuelto

Page 6: Apunfun

Ejemplo de función#include <iostream.h>using namespace std;float suma(float, float);float a,b;main(){system(‘cls’);cout<<"dame el primer numero";cin>>a;cout<<"dame el segundo numero";cin>>b;cout<<"el resultado es"<<suma(a,b);system(‘pause’);return 0;}float suma (float d,float e){

return d+e; }

Page 7: Apunfun

Ejemplo de función#include <iostream.h>using namespace std;float suma(float, float);float a,b;main(){system(‘cls’);cout<<"dame el primer numero";cin>>a;cout<<"dame el segundo numero";cin>>b;Suma();system(‘pause’);return 0;}float suma (float d,float e){Float c;c= d+e;cout<<“el resultado de la suma es”<<c<<endl; }

Page 8: Apunfun

NOMBRE DE LA FUNCION

O COMIENZA CON UNA LETRA O UN SUBRAYADO_ Y PUEDE CONTENER TANTAS LETRAS, NUMEROS O SUBRAYADOS COMO DESEE.

O TIPO DE VALOR DE RETORNO:O SI LA FUNCION NO DEVUELVE UN

VALOR INT, SE DEBE ESPECIFICAR EL TIPO DE DATO DEVUELTO, EL TIPO Y PARAMETRO DEBEN SER EL MISMO

Page 9: Apunfun

RESULTADOS DE UNA FUNCION

O UNA FUNCION PUEDE DEVOLVER UN VALOR UNICO. EL RESULTADO SE MUESTRA CON UNA SENTENCIA RETURN CUYA SINTAXIS ES:

O RETURN (EXPRESION);O RETURN (A+B+C);

Page 10: Apunfun

LLAMADA A UNA FUNCION

O LAS FUNCIONES PUEDEN SER EJECUTADAS, HAN DE SER LLAMADAS O INVOCADAS. CUALQUIER EXPRESION PUEDE CONTENER UNA LLAMADA A UNA FUNCION QUE REDIRIGIRA EL CONTROL DEL PROGRAMA A LA FUNCION NOMBRADA. NORMALMENTE LA LLAMADA A UNA FUNCION SE EALIZARA DESDE LA FUNCION PRINCIPAL MAIN ().

Page 11: Apunfun

PROTOTIPOS DE UNA FUNCION

O C++ REQUIERE QUE UNA FUNCION SE DECLARE O DEFINA ANTES DE SU USO. LA DECLARACION DE UNA FUNCION SE DENOMINA PROTOTIPO. LOS PROTOTIPOS DE UNA FUNCION CONTIENEN LA MISMA CABECERA DE LA FUNCION, CON LA DIFERENCIA DE QUE LOS PROTOTIPOS TERMINAN CON UN PUNTO Y COMA, UN PROTOTIPO CONSTA DE LOS SIGUIENTES ELEMENTOS: NOMBRE DE LA FUNCION, UNA LISTA DE ARGUMENTOS ENCERREDAOS ENTRE PARENTESIS Y UN PUNTOYCOMA.

Page 12: Apunfun

PARAMETRO DE UNA FUNCION

O C++ PROPORCIONA DOS METODOS PARA PASAR VARIABLES (PARAMETROS) ENTRE FUNCIONES. UNA FUNCION PUEDE UTILIZAR PARAMETROS POR VALOR Y PARAMETROS POR REFERENCIA, O PUEDE NO TENER PARAMETROS

Page 13: Apunfun

PASO DE PARAMETRO POR VALOR

O TAMBIEN LLAMADO PASO POR COPIA, SIGNIFICA QUE CUANDO C++, COMPILA LA FUNCION Y EL CODIGO QUE LLAMA A LA FUNCION, LA FUNCION RECIBE UNA COPIA DE LOS VALORES DE LOS PARAMETROS. SI SE CAMBIA EL VALOR DE UN PARMETRO VARIABLE LOCAL, EL CAMBIO SOLO AFECTA A LA FUNCION Y NO TIENE EFECTO FUERA DE LA FUNCION.

O EL METODO POR DEFECTO DE PASAR PARAMETROS ES POR VALOR A MENOS QUE PASEN ARREGLOS. LOS ARREGLOS SE PASAN POR DIRECCION.

Page 14: Apunfun

EJEMPLO PASO POR VALOR#include <iostream.h>using namespace std;void demostracion (int valor);void main (void){system (‘cls’);int n=10;cout<<"antes de llamar a demostracion, n = " <<n<<endl;cin.get();demostracion(n);cout<<"despues de llamar a demostracion local, n"<<n<<endl;system (‘pause’);cout<<"pulsa enter para continuar";system(‘pause’);}void demostracion(int valor){ cout<<"dentro de demostracion, valor = "<<valor<<endl; system(‘pause’); valor=999; cout<<"dentro de demostracion, valor=" <<valor<<endl; system(‘pause’); }

Page 15: Apunfun

EJEMPLO PASO POR VALOR#include <iostream.h>using namespace std;int demostracion (int valor);int main (void){system (“cls”);int n=10;cout<<"antes de llamar a demostracion, n = " <<n<<endl;cin.get();cout<<"despues de llamar a demostracion local, n"<<demostracion(n);System(“pause”);

}int demostracion(int valor){ cout<<"dentro de demostracion, valor = "<<valor; system(‘pause’); valor=999; return valor; }