Академический Документы
Профессиональный Документы
Культура Документы
INT MAIN()
{
STD::COUT << "Hola Mundo\n";
STD::COUT << "ADIOS";
RETURN 0;
}
SI PONEMOS AL INICIO USING STD::COUT NO TENDREMOS QUE INCLUIRLO CADA VEZ QUE
DECLAREMOS UN COUT.
TAMBIEN TENEMOS LA FORMA MAS GENERAL DE DECIRLE QUE UTILICE TODO EN LA LIBRERIA
STANDAR CON
USING NAMESPACE STD;
unsigned short int podemos convertirlo en un alias con typedef unsigned short int
USHORT;
int main()
{
using std::cout;
using std::endl;
USHORT Ancho = 5;
USHORT Largo;
Largo = 10;
USHORT Area = Ancho * Largo;
cout << "Ancho:" << Ancho << "\n";
cout << "Largo: " << Largo << endl;
cout << "Area: " << Area <<endl;
return 0;
}
PERO DE ESTA MANERA SOLO PODREMOS UTILIZAR LA LIBRERIA STANDAR EN TODO EL PROGRAMA.
1 FORMA #DEFIN
#DEFINE ESTUDIANTESPORCLASE 15
2 FORMA CONST
CONSTANTES ENUMERADAS
CADA PODEMOS
CONSTANTE INICIALIZAR UNA
ENUMERADA CONSTANTE CON
TIENE UN VALOR CUALQUIER
INTEGER. VALOR.
ROJO = 100
AZUL = 101
VERDE = 500
BLANCO = 501
NEGRO = 700
VARIABLES CONSTANTES
INT FLOAT
SHORT INT DOUBLE
LONG INT LONG DOUBLE
MIEDAD = MIEDAD + 2;
MIEDAD +=2;
ES LO MISMO.
CONTADOR = CONTADOR + 1;
CONTADOR ++;
ES LO MISMO.
CONTADOR = CONTADOR - 1;
CONTADOR --;
ES LO MISMO.
++ CONTADOR;
-- CONTADOR;
INT X = 5;
INT A = ++X; // A = 6; X = 6;
INT X = 5;
INT B = X++; // B = 5; X = 6;
X = 0;
X = 0;
IF(X==0);
RECUERDA UTILIZAR PARENTESIS PARA OPERACIONES LOGICAS AND OR XOR EXOR NOT ETC... DE
ESTA FORMA ESTARA MAS CLARO EL CODIGO.
OPERADOR TERNARIO:
Z = (X > Y ) ? X : Y;
IF (X > Y)
Z = X;
ELSE
Z = Y;
FUNCIONES:
INT MIFUNCION();
CUANDO SE PASAN ARGUMENTOS A UNA FUNCION TIENEN QUE COINCIDIR EN TIPO Y NUMERO
PODEMOS ESCRIBIR UNA FUNCION DENTRO DE UN ARCHIVO Y USAR UN #INCLUDE PARA LLAMARLA.
PODEMOS ESCRIBIR UNA FUNCION DENTRO DEL MISMO ARCHIVO EN EL QUE SE USA LA FUNCION.
PODEMOS ESCRIBIR UNA FUNCION ANTES DE QUE SEA LLAMADA POR CUALQUIER OTRA FUNCION.
AL HACER QUE LA FUNCION APAREZCA EN UN ORDEN CONCRETO DENTRO DEL PROGRAMA DIFICULTA
EL MANTENIMIENTO POSTERIOR DEL CODIGO.
SI DOS FUNCIONES NECESITAN LLAMARSE MUTUAMENTE, NO PODEMOS DEFINIR LAS DOS ANTES DE
SU USO, ASI QUE UNA DE ELLAS AL MENOS TIENE QUE SER DECLARADA.
EN EL PROTOTIPO TODOS LOS DATOS TIENEN QUE COINCIDIR CON LO QUE DESPUES INDIQUEMOS
CUANDO DEFINAMOS LA FUNCION EN SU CABEZERA.
SI NO QUEREMOS QUE TENGA UN RETORNO TENEMOS QUE DECLARAR SU TIPO COMO VOID.
CREAR FUNCION:
{ - LLAVE DE APERURA.
// DECLARACIONES.
RETURN (LARGO*ANCHO);
VALOR DE RETORNO
} - LLAVE DE CIERRE
SI SE PUEDEN LLAMAR A OTRAS FUNCIONES DESDE UNA FUNCION O INCLUSO A ELLAS MISMAS.
(RECURSION).
VARIABLES GLOBALES:
SI UNA VARIABLE LOCAL TIENE EL MISMO NOMBRE QUE UNA VARIABLE GLOBAL PREVALECERA LA
VARIABLE LOCAL. Y EL VALOR DE LA GLOBAL NO CABIARA EN NINGUN MOMENTO. PERO SI
CAMBIARA EL VALOR DE LA LOCAL.
PODEMOS DEFINIR UNA VARIABLE DENTRO DE UN BLOQUE DENTRO DE UNA FUNCION PERO ESTA
VARIABLE SERA SOLAMENTE DISPONIBLE DENTRO DE ESTE BLOQUE.
LOS VALORES QUE SON PASADOS A LAS FUNCIONES SON LOCALES A LA FUNCION.
EXPRESIONES MATEMATICAS.
EXPRESIONES LOGICAS.
OTRAS FUNCIONES.
RESPUESTA = (MIDOBLE(TRIPLE(CUADRADO(CUBO(MIVALOR))))));
VALOR DE RETORNO.
VOID.
RETURN 5;
RETURN (X>5); DEVUELVE VERDADERO (TRUE) SI X ES MAYOR QUE 5.
RETURN (MIFUCION()); SIEMPRE SI MIFUNCION() DEVUELVE ALGUN VALOR.
ETC.....
LONG MIFUNCION(INT);
SI EL TIPO DE PARAMETRO SI EL ARGUMENTO EN
EN DEFINICION NO ES INT. LLAMADA NO ES INT.
LA UNICA EXCEPCION ES QUE LA FUNCION PROTOTIPO UTILICE UN VALOR POR DEFECTO PARA EL
PARAMETRO.
LONG MIFUNCION(INT=0);
PODEMOS ASIGNAR VALOR POR DEFECTO A PARAM2, SOLO SI TENEMOS ASIGNADO UN VALOR POR
DEFECTO A PARAM3.
PODEMOS ASIGNAR UN VALOR POR DEFECTO A PARAM1, SOLO SI TENEMOS ASIGNADO UN VALOR
POR DEFECTO A PARAM 2 Y PARAM3.
ES PODER CREAR MAS DE UNA FUNCION CON EL MISMO NOMBRE. (POLIMORFISMO FUNCIONAL)
INT MIFUNCION(LONG)
ESAS FUNCIONES QUE COMPARTAN EL MISMO NOMBRE TENDRAN QUE SER DISTINTAS EN SU LISTA
DE PARAMETRO. EL TIPO DE PARAMETROS, EL NUMERO DE PARAMETROS O AMBAS COSAS A LA
VEZ.
DOS FUNCIONES CON EL MISMO NOMBRE Y LISTA DE PARAMETROS PERO DIFERENTES TIPOS DE
RETORNO DA ERROR.
EJEMPLO:
int Doble(int);
long Doble(long);
float Doble(float);
double Doble(double);
int main()
{
int miInt = 6500;
long miLong = 65000;
float miFloat = 6.5F;
double miDouble = 6.5e20;
int dobladoInt;
long dobladoLong;
float dobladoFloat;
double dobladoDouble;
dobladoInt = Doble(miInt);
dobladoLong = Doble(miLong);
dobladoFloat = Doble(miFloat);
dobladoDouble = Doble(miDouble);
return 0;
}
FUNCIONES INLINE:
ASI PODEMOS TENER UN PROGRAMA QUE LLAME A LA FUNCION DIEZ VECES, EL PROGRAMA
SALTARA A ESA LOCALIZACION EN MEMORIA 10 VECES.
PERO CADA VEZ QUE LLAMAMOS A UNA FUNCION SE PRODUCE UNA PEQUEA SOBRECARGA SOBRE EL
PROCESADOR CON ESOS SALTOS DE IDA Y VUELTA DE LAS FUNCIONES AL LUGAR QUE OCUPAN EN
LA MEMORIA.
MUCHAS VECES PUEDE OCURRIR QUE UNA FUNCION SEA MUY PEQUEA Y QUE OCUPE SOLO UNA O
DOS LINEAS DE CODIGO Y PUEDE QUE EL PROGRAMA SEA MAS EFICIENTE SI EN LUGAR DE DAR
ESOS SALTOS SE INCLUYE DIRECTAMENTE LAS INSTRUCCIONES DE ESA FUNCION EN LUGAR DE
LLAMARLA Y TENER QUE IR EL COMPILADOR A SU LUGAR EN MEMORIA.
EN ALGUNOS CASOS PUEDE QUE EL PROGRAMA SE EJECUTE MAS RAPIDO SI EVITAMOS ESAS
FUNCIONES DE LLAMADA.
objetivo = Doble(objetivo);
cout << "Objetivo: " << objetivo << endl;
objetivo = Doble(objetivo);
cout << "Objetivo: " << objetivo << endl;
objetivo = Doble(objetivo);
cout << "Objetivo: " << objetivo << endl;
return 0;
}
POO:
LAS VARIABLES Y LAS FUNCIONES ESTAN INCLUIDAS DENTRO DEL PROPIO OBJETO
(ENCAPSULADAS).
LAS VARIABLES Y LAS FUNCIONES DE UN OBJETO CLASE SE CONOCEN COMO VARIABLES MIEMBRO
Y FUNCIONES MIEMBRO.
CLASS CABALLO
{
UNSIGNED INT SUEDAD;
UNSIGNED INT SUPESO;
VOID RELINCHAR();
};
DEFINIR UN OBJETO:
CABALLO JANTO
MIEMBROS PUBLIC/PRIVATE:
TODOS LOS MIEMBROS SON PRIVADOS POR DEFECTO TANTO EN LAS VARIABLES MIEMBRO COMO EN
EN LAS FUNCIONES MIEMBRO.
INT MAIN()
{
CABALLO BALIO;
BALIO.SUEDAD = 5; ERROR YA QUE ES UNA VARIABLE MIEMBRO PRIVADA.
}
PARA PODER ACCEDER SE TENDRIA QUE HACER LA VARIABLE MIEMBRO COMO PUBLICA.
CLASS CABALLO
{
PUBLIC:
UNSIGNED INT SUEDAD;
UNSIGNED INT SUPESO;
VOID RELINCHAR();
};
PRIVATE:
UNSIGNED INT SUEDAD;
UNSIGNED INT SUPESO;
PUBLIC:
VOID RELINCHAR();
};
METODOS ACCESOR:
IMPLEMENTAR:
CONSTRUCTORES Y DESTRUCTORES:
CABALLO :: ~CABALLO()
{
}
// constructor de Caballo
Caballo::Caballo(int edadInicial)
{
suEdad = edadInicial;
}