Programacion
Programacion
PROGRAMACIÓN
¿QUÉ ES? • C++ ES UN EJEMPLO DE LENGUAJE DE
PROGRAMACIÓN COMPILADO,
MULTIPARADIGMA, PRINCIPALMENTE
DE TIPO IMPERATIVO Y ORIENTADO A
OBJETOS, INCLUYENDO TAMBIÉN
PROGRAMACIÓN GENÉRICA Y
FUNCIONAL
• SE BASA EN EL LENGUAJE C, PERO SE
LE CONSIDERA UNA EXTENSIÓN
ORIENTADA A OBJETOS QUE PERMITE
MANIPULAR OBJETOS.
• LA INTENCIÓN DE SU CREACIÓN FUE
EXTENDER AL LENGUAJE DE
PROGRAMACIÓN C Y AÑADIR
MECANISMOS QUE PERMITEN LA
MANIPULACIÓN DE OBJETOS.
• PUEDEN REALIZAR LAS MISMAS
ACCIONES QUE UN PROGRAMA, COMO
FUNCIÓN
ACEPTAR DATOS, REALIZAR
CÁLCULOS Y DEVOLVER RESULTADOS.
• LAS FUNCIONES EN C++ TIENEN LAS
SIGUIENTES CARACTERÍSTICAS:
• SE PUEDEN INVOCAR OTRAS
FUNCIONES O INCLUSO A SÍ MISMAS,
COMO EN LAS FUNCIONES
RECURSIVAS.
• SE ESPERA A QUE UNA FUNCIÓN
REALICE UNA TAREA CONCRETA Y SE
OBTENGA EL RESULTADO.
• ES RECOMENDABLE DIVIDIR TAREAS
COMPLEJAS EN FUNCIONES MÁS
SIMPLES.
• LA DIVISIÓN Y AGRUPACIÓN DE
TAREAS EN FUNCIONES ES UN
ASPECTO IMPORTANTE EN EL DISEÑO
DE UN PROGRAMA.
1980 POR BJARNE
STROUSTROUP EN LOS
LABORATORIOS AT&T COMO
HISTORIA UNA EXTENSIÓN ORIENTADA
A OBJETOS DEL LENGUAJE C.
• EL LENGUAJE C FUE CREADO
POR DENNIS RITCHIE ENTRE
LOS AÑOS 1970-73. D.
RITCHIE FUE COCREADOR
JUNTO A KEN THOMPSON
DEL SISTEMA OPERATIVO
UNIX
• ANTES SE HABÍA USADO EL
NOMBRE «C CON CLASES».
EN C++, LA EXPRESIÓN
«C++» SIGNIFICA
«INCREMENTO DE C» Y SE
REFIERE A QUE C++ ES UNA
• HERENCIA SIMPLE: LA HERENCIA EN C++
HERENCIA
ES UN MECANISMO DE ABSTRACCIÓN
CREADO PARA PODER FACILITAR Y MEJORAR
EL DISEÑO DE LAS CLASES DE UN
PROGRAMA. CON ELLA SE PUEDEN CREAR
NUEVAS CLASES A PARTIR DE CLASES YA
HECHAS, SIEMPRE Y CUANDO TENGAN UN
TIPO DE RELACIÓN ESPECIAL.
• HERENCIA MÚLTIPLE: LA HERENCIA
MÚLTIPLE ES EL MECANISMO QUE PERMITE
AL PROGRAMADOR HACER CLASES
DERIVADAS A PARTIR, NO DE UNA SOLA
CLASE BASE, SINO DE VARIAS.(EJEMPLO:
CUANDO VES A QUIEN TE ATIENDE EN UNA
TIENDA, COMO PERSONA QUE ES, PODRÁS
SUPONER QUE PUEDE HABLAR, COMER,
ANDAR, PERO, POR OTRO LADO, COMO
EMPLEADO QUE ES, TAMBIÉN PODRÁS
SUPONER QUE TIENE UN JEFE, QUE PUEDE
COBRARTE DINERO POR LA COMPRA, QUE
PUEDE DEVOLVERTE EL CAMBIO, ETC.)
• HERENCIA PÚBLICA (CLASS DERIVADA:
PUBLIC BASE ): CON ESTE TIPO DE
HERENCIA SE RESPETAN LOS
COMPORTAMIENTOS ORIGINALES DE LAS
VISIBILIDADES DE LA CLASE BASE EN LA
CLASE DERIVADA.
• HERENCIA PRIVADA (CLASE DERIVADA:
PRIVATE BASE): CON ESTE TIPO DE
HERENCIA TODO COMPONENTE DE LA
CLASE BASE, SERÁ PRIVADO EN LA CLASE
DERIVADA (LAS PROPIEDADES HEREDADAS
SERÁN PRIVADAS AUNQUE ESTAS SEAN
PÚBLICAS EN LA CLASE BASE)
• HERENCIA PROTEGIDA (CLASE DERIVADA:
PROTECTED BASE): CON ESTE TIPO DE
HERENCIA, TODO COMPONENTE PÚBLICO
Y PROTEGIDO DE LA CLASE BASE, SERÁ
PROTEGIDO EN LA CLASE DERIVADA, Y
LOS COMPONENTES PRIVADOS, SIGUEN
SIENDO PRIVADOS.
• RENDIMIENTO, YA QUE ES UN LENGUAJE COMPILADO, DEBE
SER TRADUCIDO A CÓDIGO MÁQUINA ANTES DE PODER
SER EJECUTADO, HACIÉNDOLO MÁS EFICIENTE.
• NO TIENE CARACTERÍSTICAS DE
SEGURIDAD INTEGRADA, A CAUSA DE
ESTO LOS PROGRAMADORES AL
ESCRIBIR CÓDIGO DEBEN TENER
MUCHO CUIDADO PARA EVITAR
VULNERABILIDADES.
CARACTERISTICAS
•
PARÁMETROS PROPIOS DE CADA PROYECTO.
GESTIÓN DE MEMORIA: PERMITE CONTROLAR
DIRECTAMENTE LA MEMORIA, LO QUE
AUMENTA LA EFICIENCIA.
• COMPATIBILIDAD CON C: PERMITE REUTILIZAR
Y ADAPTAR CÓDIGO EXISTENTE EN C.
• MULTIPARADIGMA: SOPORTA DIFERENTES
ESTILOS DE PROGRAMACIÓN.
• PORTABLE: SE PUEDE COMPILAR Y EJECUTAR
EN DIFERENTES PLATAFORMAS Y SISTEMAS
OPERATIVOS.
• FLUIDEZ DE PROCESAMIENTO: SU EJECUCIÓN Y
COMPILACIÓN ES RÁPIDA.
• BASES DE EXPANSIÓN: PERMITE APLICAR LOS
CONOCIMIENTOS ADQUIRIDOS EN C++ A
OTROS LENGUAJES DE PROGRAMACIÓN.
• BIBLIOTECA DE PLANTILLAS ESTÁNDAR (STL):
AYUDA A IMPLEMENTAR VARIAS OPERACIONES.
• POLIMORFISMO EN TIEMPO DE COMPILACIÓN:
BRINDA FLEXIBILIDAD PARA DISEÑAR
ALGORITMOS COMPLEJOS.
PALABRAS RESERVADAS
• ASM : PARA DECLARAR QUE UN BLOQUE DE CÓDIGO SE •do : indica el inicio de una declaración do-
PASARÁ AL ENSAMBLADOR. while en la que la subdeclaración se ejecuta
• AUTO : UN ESPECIFICADOR DE CLASE DE ALMACENAMIENTO repetidamente hasta que el valor de la
QUE SE UTILIZA PARA DEFINIR OBJETOS EN UN BLOQUE.
expresión sea lógicamente falso.
• BREAK : FINALIZA UNA SENTENCIA SWITCH O UN BUCLE. •doble: Tipo de datos fundamental utilizado
• CASO : SE UTILIZA ESPECÍFICAMENTE DENTRO DE UNA para definir un número de punto flotante.
DECLARACIÓN SWITCH PARA ESPECIFICAR UNA COINCIDENCIA •else: se utiliza específicamente en una
PARA LA EXPRESIÓN DE LA DECLARACIÓN.
declaración if-else.
• CATCH : ESPECIFICA LAS ACCIONES QUE SE TOMAN CUANDO
SE PRODUCE UNA EXCEPCIÓN.
•enum: para declarar un tipo de datos de
•
enumeración definido por el usuario.
CHAR : TIPO DE DATOS FUNDAMENTAL QUE DEFINE OBJETOS
DE CARÁCTER. •extern : Un identificador especificado como
• CLASE : PARA DECLARAR UN TIPO DEFINIDO POR EL USUARIO extern tiene un vínculo externo al bloque.
QUE ENCAPSULA MIEMBROS DE DATOS Y OPERACIONES O •float :- Tipo de datos fundamental utilizado
FUNCIONES MIEMBRO. para definir un número de punto flotante.
• CONST : PARA DEFINIR OBJETOS CUYO VALOR NO SE •para : Indica el inicio de una declaración para
ALTERARÁ DURANTE LA VIDA ÚTIL DE LA EJECUCIÓN DEL lograr un control repetitivo.
PROGRAMA.
•amigo: Una clase u operación cuya
• CONTINUAR :- TRANSFIERE EL CONTROL AL INICIO DE UN implementación puede acceder a los miembros
BUCLE.
de datos privados de una clase.
• PREDETERMINADO : MANEJA VALORES DE EXPRESIÓN EN UNA
DECLARACIÓN SWITCH QUE NO SE MANEJAN POR
MAYÚSCULAS Y MINÚSCULAS.
• ELIMINAR : OPERADOR DE DESASIGNACIÓN DE MEMORIA.
• GOTO : TRANSFERIR EL CONTROL A UNA ETIQUETA • REGISTRO: UN ESPECIFICADOR DE CLASE DE
ESPECIFICADA. ALMACENAMIENTO QUE ES UN ESPECIFICADOR
AUTOMÁTICO, PERO QUE TAMBIÉN INDICA AL
• IF : INDICA EL INICIO DE UNA DECLARACIÓN IF PARA COMPILADOR QUE UN OBJETO SE USARÁ CON
LOGRAR UN CONTROL SELECTIVO. FRECUENCIA Y, POR LO TANTO, DEBE MANTENERSE EN
UN REGISTRO.
• INLINE: UN ESPECIFICADOR DE FUNCIÓN QUE • RETURN : DEVUELVE UN OBJETO AL LLAMADOR DE UNA
INDICA AL COMPILADOR QUE LA SUSTITUCIÓN EN FUNCIÓN.
LÍNEA DEL CUERPO DE LA FUNCIÓN ES PREFERIBLE • CORTO: UN MODIFICADOR DE TIPO DE DATOS QUE
A LA IMPLEMENTACIÓN DE LA LLAMADA DE DEFINE UN NÚMERO INT DE 16 BITS.
FUNCIÓN HABITUAL. • FIRMADO: UN MODIFICADOR DE TIPO DE DATOS QUE
• INT: TIPO DE DATOS FUNDAMENTAL UTILIZADO INDICA QUE EL SIGNO DE UN OBJETO DEBE
ALMACENARSE EN EL BIT DE ORDEN SUPERIOR.
PARA DEFINIR OBJETOS ENTEROS.
• SIZEOF: DEVUELVE EL TAMAÑO DE UN OBJETO EN BYTES.
• LARGO: UN MODIFICADOR DE TIPO DE DATOS QUE • ESTÁTICO: LA VIDA ÚTIL DE UN ESTÁTICO DEFINIDO POR
DEFINE UN INT DE 32 BITS O UN DOUBLE UN OBJETO EXISTE DURANTE TODA LA VIDA ÚTIL DE LA
EXTENDIDO. EJECUCIÓN DEL PROGRAMA.
• NUEVO : OPERADOR DE ASIGNACIÓN DE MEMORIA. • STRUCT: PARA DECLARAR NUEVOS TIPOS QUE
ENCAPSULEN TANTO DATOS COMO FUNCIONES MIEMBRO.
• OPERADOR: SOBRECARGA UN OPERADOR C++ CON • SWITCH : ESTA PALABRA CLAVE SE UTILIZA EN LA
UNA NUEVA DECLARACIÓN. “DECLARACIÓN SWITCH”.
• PRIVADO : DECLARA MIEMBROS DE LA CLASE QUE • PLANTILLA : TIPO PARAMETRIZADO O GENÉRICO.
NO SON VISIBLES FUERA DE LA CLASE. • ESTO : UN PUNTERO DE CLASE APUNTA A UN OBJETO O
INSTANCIA DE LA CLASE.
• PROTEGIDO: DECLARA MIEMBROS DE CLASE QUE
SON PRIVADOS EXCEPTO PARA CLASES DERIVADAS • LANZAR: GENERAR UNA EXCEPCIÓN.
• ET
• PÚBLICO: DECLARA LOS MIEMBROS DE LA CLASE
QUE SON VISIBLES FUERA DE LA CLASE.
INTERFAZ • HTTPS://WWW.ONLINEGDB.COM/ONLINE_C+
+_COMPILER
EJERCICIO
INTEGRANTES
• GUTIERREZ ARROYO GERARDO NICOLAS
• LOPEZ HERNANDEZ VALERIA
• RAMIREZ GONZALEZ MARIJOSE
• RAMOS BARROSO YOSHUA ADRIEL
• RODRIGUEZ MARCELINO RAFAEL