Apunfun2

16
ARGUMENTOS POR OMISION O CUANDO UNA FUNCION TIENE UN CIERTO NUMERO DE PARAMETROS, NORMALMENTE EL MISMO NUMERO DE ARGUMENTOS DEBEN INDICARSE CUANDO SE LLAMA A LA FUNCION. O EN C++, SIN EMBARGO, ES POSIBLE OMITIR ALGUN ARGUMENTO. O CUANDO SE OMITE EL ARGUMENTO DE UN PARAMETRO QUE ES UN ARGUMENTO POR DEFECTO, SE UTILIZA AUTOMATICAMENTE ESTE.

Transcript of Apunfun2

Page 1: Apunfun2

ARGUMENTOS POR OMISION

O CUANDO UNA FUNCION TIENE UNCIERTO NUMERO DEPARAMETROS, NORMALMENTE ELMISMO NUMERO DE ARGUMENTOSDEBEN INDICARSE CUANDO SELLAMA A LA FUNCION.

O EN C++, SIN EMBARGO, ESPOSIBLE OMITIR ALGUNARGUMENTO.

O CUANDO SE OMITE ELARGUMENTO DE UN PARAMETROQUE ES UN ARGUMENTO PORDEFECTO, SE UTILIZAAUTOMATICAMENTE ESTE.

Page 2: Apunfun2

EJEMPLO DE PARAMETROS POR OMISION

#include <iostream.h>

using namespace std;

void f(int a=10, int b=20,int c=30)

{

cout<<"a="<<a<<endl;

cout<<"b="<<b<<endl;

cout<<"c="<<c<<endl;

}

void main (void)

{

system(‘cls’);

f();

f(1);

f(1,5);

f(1,2,3);

cout<<"pulse enter para continuar";

system(‘pause’);

}

Page 3: Apunfun2

REGLAS DE ARGUMENTOS POR DEFECTO

O LOS ARGUMENTOS POR DEFECTOSE PASAN POR VALOR NO PORREFERENCIA.

O DESPUES DEL PRIMER VALOR PORDEFECTO TODOS OSARGUMENTOS POSTERIORESDEBEN INCLUIR TAMBIEN VALORESPOR DEFECTO.

O LOS VALORES DE LOSARGUMENTOS POR DEFECTO,PUDEN SER VALORES, LITERALESO DEFINICIONES CONST, NOPUEDEN SER VARIABLES.

Page 4: Apunfun2

PARAMETROS CONST DE UNA FUNCION

O CON EL OBJETO DE AÑADIRSEGURIDAD ADICIONAL A LASFUNCIONES, SE PUEDEN AÑADIR AUNA DESCRIPCION DE UNPARAMETRO EL ESPECIFICADORCONST, QUE INDICA ALCOMPILADOR QUE SOLO ES DELECTURA EN EL INTERIOR DE LAFUNCION, SI SE INTENTA ESCRIBIREN ESTE PARAMETRO SEPRODUCIRA UN MENSAJE DEERROR DE COMPILACION

Page 5: Apunfun2

EJEMPLO FUNCIONES CONST#include <iostream.h>

using namespace std;

void tratar(const int []);

main()

{

system(‘cls’);

int a[]={10,20,30};

tratar (a);

cout<<"\n";cout<<a[0]<<a[1]<<a[2];

system(‘pause’);

return 0;

}

void tratar (const int b[])

{

b[0] /=2;

b[1] /=2;

b[2] /=2;

}

Page 6: Apunfun2

Funciones en linea (in line)

O Las funciones en línea sirven para

aumentar la velocidad de su programa

O Las funciones en línea es una petición al

compilador para que genere código en

línea.

O No generara código en línea, si existe un

bucle, un switch o un goto

Page 7: Apunfun2

Ejemplo de funciones en linea#include <iostream.h>

using namespace std;

inline 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;

}

inline float suma (float d,float e)

{

return d+e;

}

Page 8: Apunfun2

AMBITO (ALCANCE)

O SE DIVIDE EN AMBITO DE PROGRAMA

O AMBITO DE ARCHIVO FUENTE

DECLARADA POR LA PALABRA STATIC.

O AMBITO DE FUNCION

O AMBITO DE BLOQUE

Page 9: Apunfun2

VARIABLES LOCALES Y VARIABLES GLOBALES

O SE LE LLAMA VARIABLES GLOBALES A

LAS QUE SE DECLARN FUERA DEL

AMBITO DE PROGRAMA.

O SE LE LLAMA VARIABLES LOCALES A

AQUELLAS QUE SE DECLARAN

DENTRO DEL AMBITO DE PROGRAMA.

Page 10: Apunfun2

CLASES DE ALMACENAMIENTO• El alcance de una variable se refiere

a la región del texto fuente en C en

el que la declaración de una variable

es activa.

• La duración de una variable se

refiere a la gestión temporal del

almacenamiento en memoria de una

variable.

• El alcance y duración de una

variable quedan determinados por la

clase de almacenamiento.

·C dispone de cuatro especificadores

de clases de almacenamiento (auto,

static, extern y register) y dos

modificadores de clases de

almacenamiento (const y volatile

Page 11: Apunfun2

CLASES DE ALMACENAMIENTOVariables automáticas y estáticas

Variable automática:

su almacenamiento en memoria se asigna

automáticamente según su alcance. Cuando termina su

alcance el compilador libera esa posición de memoria

perdiéndose su valor. Si se reingresa al alcance de la

variable se asigna una nueva dirección.

Variable fija o estática:

tiene asignada una posición de memoria desde el inicio de

ejecución del programa hasta el final del mismo. Esto

significa que una variable estática conserva su valor

cuando se vuelve a llamar a la función que la contiene.

Page 12: Apunfun2

Ejemplo clase auto y static#include <iostream.h>

using namespace std;

void incremento(void)

{

auto int j=1;

static int k=1;

j++;

k++;

cout<<"\n";

cout<< k;cout<<"\n";cout<< j;cout<<"\n";

}

int main( void )

{

system(‘cls’);

incremento();

incremento();

incremento();

system(‘pause’);

}

Page 13: Apunfun2

Ejemplo clase extern#include <iostream.h>

using namespace std;

void leer(void);

float f;

int main()

{

system(‘cls’);

leer();

cout<<"valor de float="<<f;

system(‘pause’);

return 0;

}

void leer(void)

{

extern float f;

cout<<"introduzca un valor en flotante";

cin >>f;

system(‘pause’);

}

Page 14: Apunfun2

Ejemplo clase registro#include <iostream.h>

using namespace std;

void usoregistro(void)

{

register int k;

cout<<"contar con la variable registro";

for (k=1;k<=100;k++)

cout<<"\n"<<k;

}

main()

{

void usoregistro(void);

system(‘cls’);

usoregistro();

system(‘pause’);

return 0;

}

Page 15: Apunfun2

USO DE FUNCIONES DE BIBLIOTECA

O FUNCIONES DE CARÁCTERO FUNCIONES DE PRUEBA DE

CARACTERES ESPECIALESO FUNCIONES DE CONVERSION DE

CARACTERESO FUNCIONES MATEMATICASO FUNCIONES NUMERICASO FUNCIONES TRIGONOMETRICASO FUNCIONES LOGARITMICAS Y

EXPONENCIALESO FUNCIONES ALEATORIASO FUNCIONES DE FECHA Y HORAO FUNCIONES DE UTILIDAD

Page 16: Apunfun2

VARIABLES GLOBALES Y LOCALES

Variables automáticas y estáticas

Las variables locales son automáticas por defecto. Se puede usar la

palabra reservada auto para hacer automática una variable.

Para hacer una variable estática se usa la palabra reservada static.

• Las variables automáticas cuando se declaran e inicializan son

reinicializadas cada vez que se ingresa a su bloque de alcance. Las

variables estáticas se inicializan sólo una vez (por defecto valor 0).