SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
Tema 1 – Introducción
Elementos del Lenguaje
C++
LENGUAJE
www.profmatiasgarcia.com.ar
Abstracción
• [Wulft]:La Humanidad ha desarrollado una técnica para tratar la
complejidad: La Abstracción.
– Permite representar las características esenciales de un objeto real, sin
preocuparse de sus restantes características.
– Es la capacidad para encapsular y aislar información, del diseño y ejecución.
– Es Esencial para el funcionamiento de la mente humana normal.
• Una Abstracción (Modelo Mental) debe ser mas sencillo que el
sistema al cual imita.
– El mapa como modelo de la carretera: indica su topografía, altura, distancias,
etc, mientras ignora detalles irrelevantes (flores, material de la carretera, etc.)
• La Historia inicia con los Procedimientos, continúa con los Módulos,
pasa por el TAD y termina con los Objetos.
www.profmatiasgarcia.com.ar
Programación Estructurada
• Técnica en la cual una solución se modela a partir de 3 estructuras
lógicas de control:
– Secuencia: Sucesión simple de dos o mas Operaciones.
– Selección (if): bifurcación condicional de una o mas operaciones.
– Iteración (while, for): Repetición de una operación mientras se cumple una
condición.
• Un programa estructurado está compuesto de segmentos. C/U de
ellos:
– Tiene solamente una entrada y una salida,
– Están compuestos por combinaciones arbitrarias de las estructuras lógicas de
control.
• Los Programas pueden ser leídos en secuencia, desde el comienzo
hasta el final sin perder la continuidad de la tarea del programa
– Es una consecuencia de utilizar las 3 estructuras y de eliminar la instrucción de
desvío de flujo de control.
www.profmatiasgarcia.com.ar
Programación Orientada a Objetos
• Facilita la construcción de sistemas complejos a partir de
componentes llamados Objetos.
– Tiene los aciertos de la Programación Estructurada agregándole y
combinándole con el OBJETO.
• El “OBJETO”:
– Abstrae un “objeto” de la realidad tan fielmente como sea necesario.
– Es una “Entidad” percibida dentro del sistema.
– Encapsula Métodos y Propiedades.
• Métodos: pueden responder a la Programación Estructurada.
www.profmatiasgarcia.com.ar
• Clases: define un “tipo” de Objeto.
• Propiedades: Datos propios de un Objeto.
• Métodos: Forma de manipular los Objetos. Funciones.
• Instancias: Una copia de la Zona de Datos de un Objeto.
• Mensajes: Usados para comunicar Objetos. Se implementan
mediante Métodos.
• Herencia: permite a diferentes Objetos compartir código común.
Incrementa la funcionalidad.
• Poliformismo: Es la propiedad mediante un Objeto puede tomar
muchas formas: Un mismo método en objetos diferentes tendría
comportamientos diferentes.
Las 7 innovaciones del OBJETO
www.profmatiasgarcia.com.ar
Características de un Objeto
• Estado de un Objeto: conjunto de valores de las propiedades en
un momento dado.
• COMPORTAMIENTO: Aquello que el objeto puede hacer.
• IDENTIDAD: conjunto de características que permiten diferenciar a
un objeto de los demás.
• Enlace: Conexión física o conceptual entre objetos.
CLIENTE
PRODUCTO
STOCK
ENLACES
COMPRA ACTUALIZA
www.profmatiasgarcia.com.ar
PE POO
Un Programa está
compuesto por
Conjunto de Módulos y/o
procedimientos
Conjunto de objetos que se
comunican entre si con un
objetivo común.
Longitud de código Mayor a POO en 40% Menor a la PE en 40%
Reutilización de SW
Sino fueron creados como
TAD, se hace difícil y poco
confiable
Confiables y fáciles de
montar
Forma de Reutilizar
Biblioteca de funciones y
librerías
Catálogos y componentes
Modela centrándose en Operaciones
Los Objetos de la realidad y
su comunicación
Idea Clave
Descomponer una
Aplicación en programas
más pequeños
Reflejar el mundo real
mediante el ensamblado de
clases
Programación Orientada a Objetos Vs.
Programación Estructurada
www.profmatiasgarcia.com.ar
Ventajas y desventajas de POO
• Ventajas
– Objetos Bien Diseñados e Implementados:
• Absolutamente independientes del contexto.
• Alta mantenibilidad
– Mayor Reutilización: biblioteca de clases bases que serán personalizadas
en futuros desarrollos.
– Códigos mas pequeños.
• Desventajas
– Gran esfuerzo de Análisis y Diseño de objetos.
– La depuración de POO es más compleja que la PE.
• Si se produce un error hay que recorrer el árbol de herencia.
www.profmatiasgarcia.com.ar
Evolución de C a C++
• ’70: Se diseña el Lenguaje C.
– Inventado y desarrollado por Dennis
Ritche y Ken Thompson
– Es el resultado de un proceso de
desarrollo comenzado con el lenguaje
B
• Al B le resultaba complejo manejar
programas de mas de 100.000 líneas.
• ’80: Bjarne Stroustrup agrega
extensiones de Clases al Lenguaje C
y crea el Lenguaje C++
www.profmatiasgarcia.com.ar
El lenguaje C++
• Al diseñar C++ Stroustrup alcanzó los Objetivos de
– C++ mantiene la eficiencia del C
– C++ es un Lenguaje de nivel medio
– El programador sigue al Mando.
– La Potencia de los Objetos.
• C++ es utilizable para cualquier problema computacional.
– Editores (Geany), bases de datos (Oracle), sistemas de archivos (Linux),
programas de comunicaciones.
• Los Programadores C pueden empezar inmediatamente con las
Extensiones C++.
– Casi todo lo que se conoce de C, es aplicable a C++.
– PERO: para escribir código eficiente OO, hay que cambiar el Paradigma.
www.profmatiasgarcia.com.ar
Un primer programa en C++
#include <iostream>
int main (int argc, char *argv[])
{
std::cout<<"Hola Matias"<<std::endl;
return 0;
}
------El mismo pero agregando namespace------
#include <iostream>
using namespace std;
int main (int argc, char *argv[])
{
cout<<"Hola Matias"<<endl;
return 0;
}
La instrucción using
namespace especifica
que los miembros de
un namespace van a
utilizarse
frecuentemente en un
programa.
Esto permite al
programador tener
acceso a todos los
miembros del
namespace y escribir
instrucciones mas
concisas.
www.profmatiasgarcia.com.ar
Elementos básicos de un programa
●
Comentarios:
– // comentario de una sola
línea.
– /* comentario de varias
líneas. */
• Bloques de código:
– { Todos los bloques de código
van entre llaves }
• Fin de línea:
– ; Todas las instrucciones
finalizan con un punto y coma
#include <iostream>
using namespace std;
/* primer programa
Muestra por pantalla 10 veces
“Hola Matias” */
int main()
{
int i;
for (i=0; i<10; i++)
{
cout << "Hola Matias" <<
endl;
} //fin for
return 0;
} //fin main
www.profmatiasgarcia.com.ar
Tipos de datos
• Tipos primitivos: incluidos en el compilador
– short, int, long, long long,
– char,
– float, double, long double,
– void
• Tipos derivados: creados a partir de tipos primitivos
– Estructuras
– Uniones
– Vectores y Matrices
– Punteros
– Clases
Se extienden con
signed y unsigned
www.profmatiasgarcia.com.ar
Palabras reservadas o claves
• El primero contiene las palabras de C y que C++ como evolución de C también contiene:
auto const double float int short struct unsigned
break continue return for long signed switch void
case default enum goto do sizeof typedef volatile
char register extern if else static union while
• Palabras que no provienen de C y que, por tanto, solo utiliza C++:
asm dynamic_cast namespace reinterpret_cast try bool
explicit new static_cast typeid catch false
operator template typename class friend private
this using const_cast inline public throw
virtual delete mutable protected true wchar_t
• Las siguientes palabras reservadas se han añadido como alternativas para algunos operadores
de C++ y hacen los programas más legibles y fáciles de escribir:
and bitand compl not_eq or_eq xor_eq and_eq bitor
not or xor
www.profmatiasgarcia.com.ar
Operador Nombre Descripción
+ Suma 5+2 → 7
- Resta 5-2 → 3
* Multiplicación 5*2 → 10
/ División 5/2 → 2
% Módulo 5%2 → 1
(tipo de dato) “Cast” forzado (double)5 → 5.0
Operadores Aritméticos
www.profmatiasgarcia.com.ar
Operador Nombre Descripción
== Igual a if (a==‘s’)
!= Diferente de if (a!=null)
> Mayor que if (a>0.5)
< Menor que if (a<2l)
>= Mayor o igual que if (a>=2f)
<= Menor o igual que if (a<=3)
Operadores Relacionales
www.profmatiasgarcia.com.ar
Operador Nombre Descripción
&& Y (AND) if ((a>3) && (a<9))
|| O (OR) if ((a==2) || (a==3))
! NEGADO (NOT) if (!(a==3)) es igual a if (a!=3)
Importante:
FALSO es igual a cero y se representa con false o 0.
VERDADERO es igual a uno y se representa con true o 1.
Operadores Lógicos
www.profmatiasgarcia.com.ar
Operador Abreviado No Abreviado
= a=2; a=2;
++ n++; o ++n; n=n+1;
-- n--; o --n; n=n-1;
+= n+=2; n=n+2;
-= n-=2; n=n-2;
*= n*=2; n=n*2;
/= n/=2; n=n/2;
%= n%=2; n=n%2;
Operadores de Asignación
www.profmatiasgarcia.com.ar
Operador Nombre Descripción
<<
Corrimiento a la
izquierda
b=a>>2;
>> Corrimiento a la derecha b=a<<3;
& Y (AND) entre bits c=a&128;
| O (OR) entre bits c=a|0x0a;
~ Complemento A1 c=~a;
^ O exclusivo (XOR) c=^a;
Operadores de Bits
www.profmatiasgarcia.com.ar
( ) [ ] -> Alta prioridad
! ~ + - ++ -- & * sizeof Unarios
* / % + - Aritméticos
<< >> Corrimiento de bits
< <= > >= == != Relacionales
& ^ | && || ?: Bits / Lógicos / Condicional
= *= /= %= += -= &=
^= |= <<= >>=
Asignación
, Evaluación
Precedencia de operadores
www.profmatiasgarcia.com.ar
Directivas de preprocesado
• #include: incluye un archivo de cabecera.
– #include “archivo.h”
– #include <iostream>
• #define: define bloques de código para su reemplazo
– #define TRUE 1
– #define TAM 32 //constante
– #define AREA(X) x*x //función
www.profmatiasgarcia.com.ar
Una variable es una posición de memoria cuyo valor puede ser
cambiado durante la ejecución del programa.
Inicialmente el valor de una variable es indeterminado.
Todas las variables deben de ser declaradas para ser utilizadas.
<tipo de dato> <identificador>;
<tipo de dato> <identificador> = <valor>;
Las variables pueden ser declaradas:
● Fuera de las funciones: Variables globales
● Dentro de una función: Variable local
● En la cabecera de una función: parámetros formales de la función (es una
variable local)
Variables
int nro;
float area, radio,
volumen;
char letra = ‘a’;
double iva = 0,21;
www.profmatiasgarcia.com.ar
Modificadores de variables
• const: permite asignar a una variable un valor constante,
es decir que una vez asignado a dicha variable su valor no
podrá ser modificado durante el programa.
– const <tipo dato> <identificador> = valor;
• Casting: La conversión de una expresión de un tipo de
dato determinado en otro tipo se conoce como conversión
de tipos (type casting).
Conversión implícita
short a = 2000;
int b;
b = a;
Conversión explicita
float a=20,50;
int b;
b = (int) a;
b = int (a); //otra forma
www.profmatiasgarcia.com.ar
if (expresión)
sentencia;
else
sentencia;
if (expresión)
{
sentencia1;
sentencia2;
}else{
if (expresión2)
sentencia;
else
sentencia;
}
Nota: una expresión en C++ es todo aquello
que regresa un valor. Como por ejemplo
una condición lógica, operaciones
aritméticas, llamadas a funciones, una
variable, una constante (numérica, carácter,
etc.).
Sentencia de selección if - else
www.profmatiasgarcia.com.ar
switch(expresión)
{
case 1: sentencias;
break;
case 2: sentencias;
break;
:
case n: sentencias;
break;
default: sentencias_default;
break;
}
Sentencia de selección switch - case
www.profmatiasgarcia.com.ar
WHILE
while (expresión)
sentencia;
while (expresión){
sentencia1;
…
sentencian;
}
Do - WHILE
do
sentencia;
while(expresión);
do{
sentencia1;
…
sentencian;
}while(expresión);
Sentencias de repetición while y do -
while
www.profmatiasgarcia.com.ar
for (inicialización; condición; incremento)
acción;
for (inicialización; condición; incremento){
acciones;
}
for(expr1;expr2;expr3)
Sentencia;
•expr1 y expr 3 son asignaciones o llamadas a funciones.
•expr2 es una expresión relacional.
•Si expr2 no esta presente se considera siempre verdadero
→bucle infinito, unica salida break o return.
Sentencia de repetición for
www.profmatiasgarcia.com.ar
Sentencias de salto break y continue
• break:
– Permite controlar las salidas de los bucles.
– Provee una salida temprana para for, while, do, switch.
–
for(i=0;i<1000;i++){
//hacer algo
if(kbhit()) break;
}
• continue:
– Es utilizada cuando la parte del bucle que sigue es complicada.
– Provoca la próxima iteración del bucle cerrado a ser ejecutado inmediatamente.
www.profmatiasgarcia.com.ar
 Como programar en C++, 9na Ed, Deitel, H.M. y Deitel, P.J., Pearson
 Programación en C++, Un enfoque práctico, Joyanes Aguilar, L., McGraw-Hill.
 Thinking in C++, 2da Ed, Bruce Eckel, Prentice Hall PTR.
 Este documento se encuentra bajo Licencia Creative Commons Attribution –
NonCommercial - ShareAlike 4.0 International (CC BY-NC-SA 4.0), por la cual se
permite su exhibición, distribución, copia y posibilita hacer obras derivadas a partir de la
misma, siempre y cuando se cite la autoría del Prof. Matías E. García y sólo podrá
distribuir la obra derivada resultante bajo una licencia idéntica a ésta.
 Autor:
Matías E. García
Matías E. García
.
.
Prof. & Tec. en Inform tica Aplicada
á
Prof. & Tec. en Inform tica Aplicada
á
www.profmatiasgarcia.com.ar
info@profmatiasgarcia.com.ar
Bibliografía & Licencia

Más contenido relacionado

Similar a C++ Introducción de elementos del lenguaje

El_pensamiento_computacional_y_programacion_.pptx
El_pensamiento_computacional_y_programacion_.pptxEl_pensamiento_computacional_y_programacion_.pptx
El_pensamiento_computacional_y_programacion_.pptxKarinaLeticiaKovvali
 
Lo básico para programar
Lo básico para programarLo básico para programar
Lo básico para programarCelestino Duran
 
Portafolio de evidencias actividades
Portafolio de evidencias actividadesPortafolio de evidencias actividades
Portafolio de evidencias actividadesJames Logan
 
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptxclase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptxJulianSimonetta
 
Caracteristicas de C Sharp
Caracteristicas de C SharpCaracteristicas de C Sharp
Caracteristicas de C SharpEdgardo Martinez
 
Lo básico para programar
Lo básico para programarLo básico para programar
Lo básico para programarCelestino Duran
 
Curso de R: 1.1. introducción al lenguaje (Objetos y operadores básicos)
Curso de R: 1.1. introducción al lenguaje (Objetos y operadores básicos)Curso de R: 1.1. introducción al lenguaje (Objetos y operadores básicos)
Curso de R: 1.1. introducción al lenguaje (Objetos y operadores básicos)Nerys Ramírez Mordán
 
Tipos de datos_para_c_
Tipos de datos_para_c_Tipos de datos_para_c_
Tipos de datos_para_c_Jesus22barrera
 
Presentación de Tipos de datos para c++ de programacion
Presentación de Tipos de datos para c++ de programacionPresentación de Tipos de datos para c++ de programacion
Presentación de Tipos de datos para c++ de programacionValeriaBerrones
 
Manual programación lenguaje c
Manual programación lenguaje cManual programación lenguaje c
Manual programación lenguaje ckikeMerck
 
Elementos basicos c
Elementos basicos cElementos basicos c
Elementos basicos cJuan Torres
 
Guia de computacion
Guia de computacionGuia de computacion
Guia de computacionJohn Cabrera
 

Similar a C++ Introducción de elementos del lenguaje (20)

El_pensamiento_computacional_y_programacion_.pptx
El_pensamiento_computacional_y_programacion_.pptxEl_pensamiento_computacional_y_programacion_.pptx
El_pensamiento_computacional_y_programacion_.pptx
 
Lo básico para programar
Lo básico para programarLo básico para programar
Lo básico para programar
 
Portafolio de evidencias actividades
Portafolio de evidencias actividadesPortafolio de evidencias actividades
Portafolio de evidencias actividades
 
tutorial de c++
tutorial de c++tutorial de c++
tutorial de c++
 
Tutorial C++
Tutorial C++Tutorial C++
Tutorial C++
 
Trans t3
Trans t3Trans t3
Trans t3
 
4- Unidad 1: Introducción a la Plataforma .Net
4- Unidad 1: Introducción a la Plataforma .Net4- Unidad 1: Introducción a la Plataforma .Net
4- Unidad 1: Introducción a la Plataforma .Net
 
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptxclase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
 
Caracteristicas de C Sharp
Caracteristicas de C SharpCaracteristicas de C Sharp
Caracteristicas de C Sharp
 
Lo básico para programar
Lo básico para programarLo básico para programar
Lo básico para programar
 
manual de pc
manual de pcmanual de pc
manual de pc
 
Curso de R: 1.1. introducción al lenguaje (Objetos y operadores básicos)
Curso de R: 1.1. introducción al lenguaje (Objetos y operadores básicos)Curso de R: 1.1. introducción al lenguaje (Objetos y operadores básicos)
Curso de R: 1.1. introducción al lenguaje (Objetos y operadores básicos)
 
Tipos de datos_para_c_
Tipos de datos_para_c_Tipos de datos_para_c_
Tipos de datos_para_c_
 
Presentación de Tipos de datos para c++ de programacion
Presentación de Tipos de datos para c++ de programacionPresentación de Tipos de datos para c++ de programacion
Presentación de Tipos de datos para c++ de programacion
 
Manual programación lenguaje c
Manual programación lenguaje cManual programación lenguaje c
Manual programación lenguaje c
 
Elementos basicos c
Elementos basicos cElementos basicos c
Elementos basicos c
 
Introduccion a los algoritmos
Introduccion a los algoritmosIntroduccion a los algoritmos
Introduccion a los algoritmos
 
Guia de computacion
Guia de computacionGuia de computacion
Guia de computacion
 
Guia de computacion
Guia de computacionGuia de computacion
Guia de computacion
 
Modelo Dinamico
Modelo DinamicoModelo Dinamico
Modelo Dinamico
 

Último

12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 
Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digitalNayaniJulietaRamosRa
 
Unidad V. Disoluciones quimica de las disoluciones
Unidad V. Disoluciones quimica de las disolucionesUnidad V. Disoluciones quimica de las disoluciones
Unidad V. Disoluciones quimica de las disolucioneschorantina325
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señorkkte210207
 

Último (6)

12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 
Las redes sociales en el mercado digital
Las redes sociales en el mercado digitalLas redes sociales en el mercado digital
Las redes sociales en el mercado digital
 
Unidad V. Disoluciones quimica de las disoluciones
Unidad V. Disoluciones quimica de las disolucionesUnidad V. Disoluciones quimica de las disoluciones
Unidad V. Disoluciones quimica de las disoluciones
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
02. Mr. Spencer (T.L. Sawn).pdf.libro de un señor
 

C++ Introducción de elementos del lenguaje

  • 1. Tema 1 – Introducción Elementos del Lenguaje C++ LENGUAJE
  • 2. www.profmatiasgarcia.com.ar Abstracción • [Wulft]:La Humanidad ha desarrollado una técnica para tratar la complejidad: La Abstracción. – Permite representar las características esenciales de un objeto real, sin preocuparse de sus restantes características. – Es la capacidad para encapsular y aislar información, del diseño y ejecución. – Es Esencial para el funcionamiento de la mente humana normal. • Una Abstracción (Modelo Mental) debe ser mas sencillo que el sistema al cual imita. – El mapa como modelo de la carretera: indica su topografía, altura, distancias, etc, mientras ignora detalles irrelevantes (flores, material de la carretera, etc.) • La Historia inicia con los Procedimientos, continúa con los Módulos, pasa por el TAD y termina con los Objetos.
  • 3. www.profmatiasgarcia.com.ar Programación Estructurada • Técnica en la cual una solución se modela a partir de 3 estructuras lógicas de control: – Secuencia: Sucesión simple de dos o mas Operaciones. – Selección (if): bifurcación condicional de una o mas operaciones. – Iteración (while, for): Repetición de una operación mientras se cumple una condición. • Un programa estructurado está compuesto de segmentos. C/U de ellos: – Tiene solamente una entrada y una salida, – Están compuestos por combinaciones arbitrarias de las estructuras lógicas de control. • Los Programas pueden ser leídos en secuencia, desde el comienzo hasta el final sin perder la continuidad de la tarea del programa – Es una consecuencia de utilizar las 3 estructuras y de eliminar la instrucción de desvío de flujo de control.
  • 4. www.profmatiasgarcia.com.ar Programación Orientada a Objetos • Facilita la construcción de sistemas complejos a partir de componentes llamados Objetos. – Tiene los aciertos de la Programación Estructurada agregándole y combinándole con el OBJETO. • El “OBJETO”: – Abstrae un “objeto” de la realidad tan fielmente como sea necesario. – Es una “Entidad” percibida dentro del sistema. – Encapsula Métodos y Propiedades. • Métodos: pueden responder a la Programación Estructurada.
  • 5. www.profmatiasgarcia.com.ar • Clases: define un “tipo” de Objeto. • Propiedades: Datos propios de un Objeto. • Métodos: Forma de manipular los Objetos. Funciones. • Instancias: Una copia de la Zona de Datos de un Objeto. • Mensajes: Usados para comunicar Objetos. Se implementan mediante Métodos. • Herencia: permite a diferentes Objetos compartir código común. Incrementa la funcionalidad. • Poliformismo: Es la propiedad mediante un Objeto puede tomar muchas formas: Un mismo método en objetos diferentes tendría comportamientos diferentes. Las 7 innovaciones del OBJETO
  • 6. www.profmatiasgarcia.com.ar Características de un Objeto • Estado de un Objeto: conjunto de valores de las propiedades en un momento dado. • COMPORTAMIENTO: Aquello que el objeto puede hacer. • IDENTIDAD: conjunto de características que permiten diferenciar a un objeto de los demás. • Enlace: Conexión física o conceptual entre objetos. CLIENTE PRODUCTO STOCK ENLACES COMPRA ACTUALIZA
  • 7. www.profmatiasgarcia.com.ar PE POO Un Programa está compuesto por Conjunto de Módulos y/o procedimientos Conjunto de objetos que se comunican entre si con un objetivo común. Longitud de código Mayor a POO en 40% Menor a la PE en 40% Reutilización de SW Sino fueron creados como TAD, se hace difícil y poco confiable Confiables y fáciles de montar Forma de Reutilizar Biblioteca de funciones y librerías Catálogos y componentes Modela centrándose en Operaciones Los Objetos de la realidad y su comunicación Idea Clave Descomponer una Aplicación en programas más pequeños Reflejar el mundo real mediante el ensamblado de clases Programación Orientada a Objetos Vs. Programación Estructurada
  • 8. www.profmatiasgarcia.com.ar Ventajas y desventajas de POO • Ventajas – Objetos Bien Diseñados e Implementados: • Absolutamente independientes del contexto. • Alta mantenibilidad – Mayor Reutilización: biblioteca de clases bases que serán personalizadas en futuros desarrollos. – Códigos mas pequeños. • Desventajas – Gran esfuerzo de Análisis y Diseño de objetos. – La depuración de POO es más compleja que la PE. • Si se produce un error hay que recorrer el árbol de herencia.
  • 9. www.profmatiasgarcia.com.ar Evolución de C a C++ • ’70: Se diseña el Lenguaje C. – Inventado y desarrollado por Dennis Ritche y Ken Thompson – Es el resultado de un proceso de desarrollo comenzado con el lenguaje B • Al B le resultaba complejo manejar programas de mas de 100.000 líneas. • ’80: Bjarne Stroustrup agrega extensiones de Clases al Lenguaje C y crea el Lenguaje C++
  • 10. www.profmatiasgarcia.com.ar El lenguaje C++ • Al diseñar C++ Stroustrup alcanzó los Objetivos de – C++ mantiene la eficiencia del C – C++ es un Lenguaje de nivel medio – El programador sigue al Mando. – La Potencia de los Objetos. • C++ es utilizable para cualquier problema computacional. – Editores (Geany), bases de datos (Oracle), sistemas de archivos (Linux), programas de comunicaciones. • Los Programadores C pueden empezar inmediatamente con las Extensiones C++. – Casi todo lo que se conoce de C, es aplicable a C++. – PERO: para escribir código eficiente OO, hay que cambiar el Paradigma.
  • 11. www.profmatiasgarcia.com.ar Un primer programa en C++ #include <iostream> int main (int argc, char *argv[]) { std::cout<<"Hola Matias"<<std::endl; return 0; } ------El mismo pero agregando namespace------ #include <iostream> using namespace std; int main (int argc, char *argv[]) { cout<<"Hola Matias"<<endl; return 0; } La instrucción using namespace especifica que los miembros de un namespace van a utilizarse frecuentemente en un programa. Esto permite al programador tener acceso a todos los miembros del namespace y escribir instrucciones mas concisas.
  • 12. www.profmatiasgarcia.com.ar Elementos básicos de un programa ● Comentarios: – // comentario de una sola línea. – /* comentario de varias líneas. */ • Bloques de código: – { Todos los bloques de código van entre llaves } • Fin de línea: – ; Todas las instrucciones finalizan con un punto y coma #include <iostream> using namespace std; /* primer programa Muestra por pantalla 10 veces “Hola Matias” */ int main() { int i; for (i=0; i<10; i++) { cout << "Hola Matias" << endl; } //fin for return 0; } //fin main
  • 13. www.profmatiasgarcia.com.ar Tipos de datos • Tipos primitivos: incluidos en el compilador – short, int, long, long long, – char, – float, double, long double, – void • Tipos derivados: creados a partir de tipos primitivos – Estructuras – Uniones – Vectores y Matrices – Punteros – Clases Se extienden con signed y unsigned
  • 14. www.profmatiasgarcia.com.ar Palabras reservadas o claves • El primero contiene las palabras de C y que C++ como evolución de C también contiene: auto const double float int short struct unsigned break continue return for long signed switch void case default enum goto do sizeof typedef volatile char register extern if else static union while • Palabras que no provienen de C y que, por tanto, solo utiliza C++: asm dynamic_cast namespace reinterpret_cast try bool explicit new static_cast typeid catch false operator template typename class friend private this using const_cast inline public throw virtual delete mutable protected true wchar_t • Las siguientes palabras reservadas se han añadido como alternativas para algunos operadores de C++ y hacen los programas más legibles y fáciles de escribir: and bitand compl not_eq or_eq xor_eq and_eq bitor not or xor
  • 15. www.profmatiasgarcia.com.ar Operador Nombre Descripción + Suma 5+2 → 7 - Resta 5-2 → 3 * Multiplicación 5*2 → 10 / División 5/2 → 2 % Módulo 5%2 → 1 (tipo de dato) “Cast” forzado (double)5 → 5.0 Operadores Aritméticos
  • 16. www.profmatiasgarcia.com.ar Operador Nombre Descripción == Igual a if (a==‘s’) != Diferente de if (a!=null) > Mayor que if (a>0.5) < Menor que if (a<2l) >= Mayor o igual que if (a>=2f) <= Menor o igual que if (a<=3) Operadores Relacionales
  • 17. www.profmatiasgarcia.com.ar Operador Nombre Descripción && Y (AND) if ((a>3) && (a<9)) || O (OR) if ((a==2) || (a==3)) ! NEGADO (NOT) if (!(a==3)) es igual a if (a!=3) Importante: FALSO es igual a cero y se representa con false o 0. VERDADERO es igual a uno y se representa con true o 1. Operadores Lógicos
  • 18. www.profmatiasgarcia.com.ar Operador Abreviado No Abreviado = a=2; a=2; ++ n++; o ++n; n=n+1; -- n--; o --n; n=n-1; += n+=2; n=n+2; -= n-=2; n=n-2; *= n*=2; n=n*2; /= n/=2; n=n/2; %= n%=2; n=n%2; Operadores de Asignación
  • 19. www.profmatiasgarcia.com.ar Operador Nombre Descripción << Corrimiento a la izquierda b=a>>2; >> Corrimiento a la derecha b=a<<3; & Y (AND) entre bits c=a&128; | O (OR) entre bits c=a|0x0a; ~ Complemento A1 c=~a; ^ O exclusivo (XOR) c=^a; Operadores de Bits
  • 20. www.profmatiasgarcia.com.ar ( ) [ ] -> Alta prioridad ! ~ + - ++ -- & * sizeof Unarios * / % + - Aritméticos << >> Corrimiento de bits < <= > >= == != Relacionales & ^ | && || ?: Bits / Lógicos / Condicional = *= /= %= += -= &= ^= |= <<= >>= Asignación , Evaluación Precedencia de operadores
  • 21. www.profmatiasgarcia.com.ar Directivas de preprocesado • #include: incluye un archivo de cabecera. – #include “archivo.h” – #include <iostream> • #define: define bloques de código para su reemplazo – #define TRUE 1 – #define TAM 32 //constante – #define AREA(X) x*x //función
  • 22. www.profmatiasgarcia.com.ar Una variable es una posición de memoria cuyo valor puede ser cambiado durante la ejecución del programa. Inicialmente el valor de una variable es indeterminado. Todas las variables deben de ser declaradas para ser utilizadas. <tipo de dato> <identificador>; <tipo de dato> <identificador> = <valor>; Las variables pueden ser declaradas: ● Fuera de las funciones: Variables globales ● Dentro de una función: Variable local ● En la cabecera de una función: parámetros formales de la función (es una variable local) Variables int nro; float area, radio, volumen; char letra = ‘a’; double iva = 0,21;
  • 23. www.profmatiasgarcia.com.ar Modificadores de variables • const: permite asignar a una variable un valor constante, es decir que una vez asignado a dicha variable su valor no podrá ser modificado durante el programa. – const <tipo dato> <identificador> = valor; • Casting: La conversión de una expresión de un tipo de dato determinado en otro tipo se conoce como conversión de tipos (type casting). Conversión implícita short a = 2000; int b; b = a; Conversión explicita float a=20,50; int b; b = (int) a; b = int (a); //otra forma
  • 24. www.profmatiasgarcia.com.ar if (expresión) sentencia; else sentencia; if (expresión) { sentencia1; sentencia2; }else{ if (expresión2) sentencia; else sentencia; } Nota: una expresión en C++ es todo aquello que regresa un valor. Como por ejemplo una condición lógica, operaciones aritméticas, llamadas a funciones, una variable, una constante (numérica, carácter, etc.). Sentencia de selección if - else
  • 25. www.profmatiasgarcia.com.ar switch(expresión) { case 1: sentencias; break; case 2: sentencias; break; : case n: sentencias; break; default: sentencias_default; break; } Sentencia de selección switch - case
  • 26. www.profmatiasgarcia.com.ar WHILE while (expresión) sentencia; while (expresión){ sentencia1; … sentencian; } Do - WHILE do sentencia; while(expresión); do{ sentencia1; … sentencian; }while(expresión); Sentencias de repetición while y do - while
  • 27. www.profmatiasgarcia.com.ar for (inicialización; condición; incremento) acción; for (inicialización; condición; incremento){ acciones; } for(expr1;expr2;expr3) Sentencia; •expr1 y expr 3 son asignaciones o llamadas a funciones. •expr2 es una expresión relacional. •Si expr2 no esta presente se considera siempre verdadero →bucle infinito, unica salida break o return. Sentencia de repetición for
  • 28. www.profmatiasgarcia.com.ar Sentencias de salto break y continue • break: – Permite controlar las salidas de los bucles. – Provee una salida temprana para for, while, do, switch. – for(i=0;i<1000;i++){ //hacer algo if(kbhit()) break; } • continue: – Es utilizada cuando la parte del bucle que sigue es complicada. – Provoca la próxima iteración del bucle cerrado a ser ejecutado inmediatamente.
  • 29. www.profmatiasgarcia.com.ar  Como programar en C++, 9na Ed, Deitel, H.M. y Deitel, P.J., Pearson  Programación en C++, Un enfoque práctico, Joyanes Aguilar, L., McGraw-Hill.  Thinking in C++, 2da Ed, Bruce Eckel, Prentice Hall PTR.  Este documento se encuentra bajo Licencia Creative Commons Attribution – NonCommercial - ShareAlike 4.0 International (CC BY-NC-SA 4.0), por la cual se permite su exhibición, distribución, copia y posibilita hacer obras derivadas a partir de la misma, siempre y cuando se cite la autoría del Prof. Matías E. García y sólo podrá distribuir la obra derivada resultante bajo una licencia idéntica a ésta.  Autor: Matías E. García Matías E. García . . Prof. & Tec. en Inform tica Aplicada á Prof. & Tec. en Inform tica Aplicada á www.profmatiasgarcia.com.ar info@profmatiasgarcia.com.ar Bibliografía & Licencia