1. ARGUMENTOS POR OMISION CUANDO UNA FUNCION TIENE UN CIERTO NUMERO DE PARAMETROS, NORMALMENTE EL MISMO NUMERO DE ARGUMENTOS DEBEN INDICARSE CUANDO SE LLAMA A LA FUNCION. EN C++, SIN EMBARGO, ES POSIBLE OMITIR ALGUN ARGUMENTO. CUANDO SE OMITE EL ARGUMENTO DE UN PARAMETRO QUE ES UN ARGUMENTO POR DEFECTO, SE UTILIZA AUTOMATICAMENTE ESTE.
2. EJEMPLO DE PARAMETROS POR OMISION #include <iostream.h> usingnamespacestd; void f(int a=10, int b=20,int c=30) { cout<<"a="<<a<<endl; cout<<"b="<<b<<endl; cout<<"c="<<c<<endl; } voidmain (void) { system(‘cls’); f(); f(1); f(1,5); f(1,2,3); cout<<"pulse enter para continuar"; system(‘pause’); }
3. REGLAS DE ARGUMENTOS POR DEFECTO LOS ARGUMENTOS POR DEFECTO SE PASAN POR VALOR NO POR REFERENCIA. DESPUES DEL PRIMER VALOR POR DEFECTO TODOS OS ARGUMENTOS POSTERIORES DEBEN INCLUIR TAMBIEN VALORES POR DEFECTO. LOS VALORES DE LOS ARGUMENTOS POR DEFECTO, PUDEN SER VALORES, LITERALES O DEFINICIONES CONST, NO PUEDEN SER VARIABLES.
4. PARAMETROS CONST DE UNA FUNCION CON EL OBJETO DE AÑADIR SEGURIDAD ADICIONAL A LAS FUNCIONES, SE PUEDEN AÑADIR A UNA DESCRIPCION DE UN PARAMETRO EL ESPECIFICADOR CONST, QUE INDICA AL COMPILADOR QUE SOLO ES DE LECTURA EN EL INTERIOR DE LA FUNCION, SI SE INTENTA ESCRIBIR EN ESTE PARAMETRO SE PRODUCIRA UN MENSAJE DE ERROR DE COMPILACION
6. Funciones en linea (in line) Las funciones en línea sirven para aumentar la velocidad de su programa Las funciones en línea es una petición al compilador para que genere código en línea. No generara código en línea, si existe un bucle, un switch o un goto
7. Ejemplo de funciones en linea #include <iostream.h> usingnamespacestd; inlinefloat suma(float, float); floata,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; } inlinefloat suma (floatd,float e) { returnd+e; }
8. AMBITO (ALCANCE) SE DIVIDE EN AMBITO DE PROGRAMA AMBITO DE ARCHIVO FUENTE DECLARADA POR LA PALABRA STATIC. AMBITO DE FUNCION AMBITO DE BLOQUE
9. VARIABLES LOCALES Y VARIABLES GLOBALES SE LE LLAMA VARIABLES GLOBALES A LAS QUE SE DECLARN FUERA DEL AMBITO DE PROGRAMA. SE LE LLAMA VARIABLES LOCALES A AQUELLAS QUE SE DECLARAN DENTRO DEL AMBITO DE PROGRAMA.
10. 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
11. CLASES DE ALMACENAMIENTO Variables 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.
12. Ejemplo clase auto y static #include <iostream.h> usingnamespacestd; void incremento(void) { auto int j=1; staticint k=1; j++; k++; cout<<""; cout<< k;cout<<"";cout<< j;cout<<""; } intmain( void ) { system(‘cls’); incremento(); incremento(); incremento(); system(‘pause’); }
13. Ejemplo clase extern #include <iostream.h> usingnamespacestd; void leer(void); float f; intmain() { system(‘cls’); leer(); cout<<"valor de float="<<f; system(‘pause’); return 0; } void leer(void) { externfloat f; cout<<"introduzca un valor en flotante"; cin >>f; system(‘pause’); }
14. Ejemplo clase registro #include <iostream.h> usingnamespacestd; voidusoregistro(void) { registerint k; cout<<"contar con la variable registro"; for (k=1;k<=100;k++) cout<<""<<k; } main() { voidusoregistro(void); system(‘cls’); usoregistro(); system(‘pause’); return 0; }
15. USO DE FUNCIONES DE BIBLIOTECA FUNCIONES DE CARÁCTER FUNCIONES DE PRUEBA DE CARACTERES ESPECIALES FUNCIONES DE CONVERSION DE CARACTERES FUNCIONES MATEMATICAS FUNCIONES NUMERICAS FUNCIONES TRIGONOMETRICAS FUNCIONES LOGARITMICAS Y EXPONENCIALES FUNCIONES ALEATORIAS FUNCIONES DE FECHA Y HORA FUNCIONES DE UTILIDAD
16. 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).