paradigma de poo

100
Escuela Secundaria Técnica No. 4 Tecnología: Computación Temática: El Paradigma de la Programación Orientada a Objetos

Upload: pixeleante

Post on 13-Jun-2015

7.141 views

Category:

Documents


3 download

DESCRIPTION

buen trabajo

TRANSCRIPT

Page 1: Paradigma de poo

Escuela Secundaria Técnica No. 4

Tecnología: Computación

Temática:

El Paradigma de la Programación Orientada a Objetos

Page 2: Paradigma de poo

¿Vivimos en un mundo de Objetos. ?

Page 3: Paradigma de poo

Los conceptos de la programación orientada a objetos tienen origen en Simula 67, un lenguaje diseñado para hacer simulaciones, creado por Ole – Johan Dahl y Kristen Nvgaard del Centro de Computo Noruego en Oslo. Según se informa, la historia es que trabajaban en simulaciones de naves, y fueron confundidos por la explosión combinatoria de cómo las diversas cualidades de diversas naves podían afectar unas a las otras. La idea ocurrió para agrupar los diversos tipos de naves en diversas clases de objetos, siendo responsable cada clase de objetos de definir sus propios datos y comportamiento.

Origen del termino P O O

Page 4: Paradigma de poo

Fueron refinados más tarde en Smalltalk, que fue desarrollado en Simula en Xerox PARC pero diseñado para ser un sistema completamente dinámico en el cual los objetos se podrían crear y modificar "en marcha" en lugar de tener un sistema basado en programas estáticos.

La programación orientada a objetos tomó posición como la metodología de programación dominante a mediados de los años ochenta, en gran parte debido a la influencia de C++, una extensión del lenguaje de programación C.

Page 5: Paradigma de poo

C Lenguaje de Programación desarrollado por Kernighan & Ritchie en 1972 en los laboratorios ATT.

C++ Lenguaje de Programación desarrollado por B. Stroustrup en los laboratorios ATT en 1980.

Su dominación fue consolidada gracias al auge de las Interfases Gráficas de Usuario, para los cuales la programación orientada a objetos está particularmente bien adaptada.

Page 6: Paradigma de poo

La Programación Orientada a Objetos (POO) es una forma de enfocar la tarea de programación. Los enfoques de la programación han cambiado drásticamente desde la invención de las computadoras, la creciente complejidad de los programas, antes se realizaban mediante una consola en la que se escribían las instrucciones máquina en lenguaje binario. Esto funcionaba porque los programas sólo tenían unos pocos cientos de instrucciones. Cuando crecieron los programas, se invento el lenguaje ensamblador para que el programador pudiera manejar programas más largos y complejos usando una representación simbólica de las instrucciones máquina.

¿ Que es la Programación Orientada a Objetos?

Page 7: Paradigma de poo

Los lenguajes de alto nivel aparecieron para proporcionar al programador más herramientas con las cuales gestionar esa complejidad. En los años sesenta nace la programación estructurada, este es el método alentando por varios lenguajes como Pascal y C. Con los lenguajes estructurados fue posible escribir programas moderadamente complejos de una forma bastante sencilla. Sin embargo, usando incluso la programación estructurada, cuando los proyectos alcanzan cierto tamaño, su complejidad se vuelve demasiado difícil para ser controlada por un programador. 

Page 8: Paradigma de poo

  La Programación Orientada a Objetos toma las mejores ideas de la programación estructurada la combina con nuevos y poderosos conceptos que animan o alientan una nueva visión de la tarea de la programación. La Programación Orientada a Objetos permite descomponer fácilmente un problema en subgrupos de partes relacionadas. Entonces, puede traducir estos subgrupos en unidades auto contenidas llamadas Objetos.

Page 9: Paradigma de poo

POO (Programación Orientada a Objetos), es un importante conjunto de técnicas que se pueden utilizar para hacer el desarrollo de programas más eficientes mientras se mejora la facilidad de los programas resultantes. En esencia, POO es un nuevo medio de enfocar el trabajo de programación. Sin embargo, a fin de comprender lo que es la POO, es necesario comprender sus raíces. Así pues, comenzaremos por examinar la historia del proceso de programación analizada cómo evolución y deduciendo, en consecuencia, por qué es tan importante este concepto.

Evolución de la Programación

Page 10: Paradigma de poo

Los lenguajes de programación lineal (BASIC, COBOL Y FORTRAN) no tenían facilidad para reutilizar el código existente de programas. De hecho se duplicaban segmentos de software cada vez más en muchos programas. Los programas se ejecutaban en secuencias lógicas, haciendo la lógica difícil de comprender. El control de programas era difícil y se producían continuos saltos a lo largo del referido programa. Aún más, los lenguajes lineales no tenían capacidad de controlar la visibilidad de los elementos llamados datos.

Programación Lineal

Page 11: Paradigma de poo

El soporte más elemental de la programación Modular llegó con la aparición de la subrutina. Una subrutina se crea con una secuencia de instrucciones a las que se les da un nombre independiente; una vez que se ha definido, la subrutina  se   puede   ejecutar  simplemente  incluyendo  el nombre del programa siempre  que  se  requiera. Las subrutinas proporcionan una división natural de las tareas; que diferentes programas utilizan. Aunque las subrutinas proporcionan el mecanismo básico de la programación modular,  se necesita mucha disciplina para crear software bien estructurado.

Programación Modular

Page 12: Paradigma de poo

Un concepto importante en campo de la programación estructurada: Abstracción, ya que la Abstracción se puede definir como la capacidad de examinar algo sin preocuparse de los detalles internos. En un programa estructurado, es suficiente conocer que un procedimiento sea fiable, para que se pueda utilizar sin tener que conocer cómo funciona su interior. Esto se conoce como una Abstracción funcional y es el núcleo de la programación estructurada. Hoy casi todos los lenguajes de programación tienen construcciones que facílitan la programación estructurada.

Programación Estructurada

Page 13: Paradigma de poo

Programación Orientada a Objetos

Este paradigma se basa en dividir el programa en pequeñas unidades lógicas de código.

A estas pequeñas unidades lógicas de código se les llama objetos.

También proporciona conceptos y herramientas con las cuales se modela y representa el mundo real tan fielmente como sea posible.

Page 14: Paradigma de poo

Programación Orientada a Objetos

Se define como el conjunto de disciplinas que desarrollan y modelan software y que facilitan la construcción de sistemas complejos a partir de componentes.

Page 15: Paradigma de poo

Un programa orientado objetos es una colección de objetos que interactúan y se relacionan entre sí.

Page 16: Paradigma de poo

Smalltalk Objetive C Ada 95 Java Ocaml Python Delphi Turbo Pascal

Lenguajes de POO

Page 17: Paradigma de poo

C Sharp Eiffel Ruby Action Script Visual BasicPHP Power Builder Clarion C++

Lenguajes de POO

Page 18: Paradigma de poo

El Paradigma de Orientación a Objetos

Es un método que permiten que los problemas del mundo real sean expresados de modo fácil y natural, a través de:

Modelización del Mundo. Reusabilidad. Mantenibilidad. Metodología de Software Unificada.

Page 19: Paradigma de poo

Modelización del Mundo

La gente entiende el mundo en términos de objetos, por lo tanto, un programa escrito en términos de objetos debería ser más intuitivo y entendible que un programa estructurado de otra forma.

Page 20: Paradigma de poo

Reusabilidad

Como modelos de programación los objetos tienen alta cohesión porque los mismos encapsulan códigos y datos. Por eso los objetos pueden ser reutilizados en la confección de otros programas.

Page 21: Paradigma de poo

Mantenibilidad

Los objetos son más modulares. Los efectos de los cambios en programas son mejor localizados. Los objetos son más fáciles de modificar.

Page 22: Paradigma de poo

Metodología de Software Unificada.

El análisis se hace en términos de objetos del mundo. Si el diseño, codificación y mantenimiento también son hechos en términos de objetos, el proceso de software completo será regido por un único concepto.

Page 23: Paradigma de poo

Un Objeto es:

Cualquier entidad lógica del mundo real. tanto elementos palpables como abstractos. Cumple un determinado rol dentro de los sistemas.

Page 24: Paradigma de poo

Un Objeto es:

La Entidad Central sobre la que gira el Paradigma de Programación Orientada a Objetos.

Objeto / Entidad

Page 25: Paradigma de poo

Objetos

Se definen como tipos de datos que encapsulan con el mismo nombre estructuras de datos y las operaciones que manipulan esos datos.

Objetos = Datos

+ Operaciones

Page 26: Paradigma de poo

Objetos

Contienen características de:

Una entidad (sus datos)

Su comportamiento o funcionamiento (sus operaciones o procedimientos).

Page 27: Paradigma de poo

Los Objetos tienen:

Identidad Operaciones EstadoEs el conjunto de atributos que definen y caracterizan/diferencian un objeto de otro.

Es el conjunto de procedimientos que permiten cambiar el estado del objeto, para procurar adaptarse al medio y/o interactuar con el medio.

Cuando a las características del objeto le ponemos valores. Las variables almacenan los estados de un objeto en un determinado momento.

Page 28: Paradigma de poo

Ejemplo:

Para redondear estas ideas, imaginemos que tenemos estacionado en nuestra cochera un BMW Z4 color rojo que corre hasta 360 km/h.

Objeto: Automóvil

Marca: BMW

Modelo: Z4

Color: Rojo

Vel. Max.: 360 Km/h

Page 29: Paradigma de poo

Un objeto se compone de otros objetos:

Page 30: Paradigma de poo

Un objeto se compone de otros objetos:

Page 31: Paradigma de poo

Objeto

Este solo puede ser invocado a través de :Un Mensaje, consiste de un Nombre y opcionalmente de uno o varios parámetros.Cuando el receptor recibe el mensaje, hace la operación requerida de la forma en que sabe hacerlo.

El emisor no especifica cómo debe hacerse la operación.

Page 32: Paradigma de poo

Mensaje

Objeto 1 Mensaje Objeto 2

Emisor Receptor

Envía el mensaje al receptor.

1.- Recibe el mensaje2.- Ejecuta la OperaciónSolicitada. 3.- Retorna informaciónde forma opcional.

Page 33: Paradigma de poo

El Conjunto de Mensajes

A los que un objeto puede responder se conoce como el comportamiento del objeto.

Cuando un objeto recibe un mensaje realiza la operación requerida mediante la ejecución de un método.

Un método es un algoritmo ejecutado es respuesta al envío de un mensaje. Siempre es parte de la representación privada del objeto. Nunca es parte de la interfaz pública.

Page 34: Paradigma de poo

Propiedades

básicas

de un:

O b j e t o.

Page 35: Paradigma de poo

Un objeto debe cubrir

La abstracción

El encapsulamiento

La herencia

El polimorfismo

Page 36: Paradigma de poo

La abstracción

Es la descripción de una entidad del mundo real y posterior utilización de esta descripción en un programa.Una buena abstracción es aquella que enfatiza detalles significativos al lector o usuario y suprime detalles que son, al menos , por el momento irrelevantes o causa de distracción.

Page 37: Paradigma de poo

Clase

Descripción abstracta de un grupo de objetos

Page 38: Paradigma de poo

Características de las Clases:

Permite crear objetos. Permite la definición de una serie de atributos. Permite la definición de una serie de operaciones.Permite la definición de restricciones de tal manera para conservar la consistencia de los Datos.Permite almacenar información de los objetos que componen la clase. Sabe quienes la componen. Permite eliminar objetos.

Page 39: Paradigma de poo

Los objetos que se comportan de la manera especificada por una clase se denominan instancias de esa clase.

Page 40: Paradigma de poo

Los objetos son instancias de una clase

Clase

Estudiante

Antonio

Sofía

Miguel

Instancias

Page 41: Paradigma de poo

Encapsulamiento

Es la propiedad que permite asegurar que el contenido de la información de un objeto está oculto al mundo exterior.

Permite el ocultamiento de la información y la división del programa en módulos.

Page 42: Paradigma de poo

Modelos o Bloques

Se implementan mediante clases, de forma que una clase representa la encapsulación de una abstracción. Esto significa que cada clase tiene dos partes: una interfaz y una implementación. La interfaz de una clase captura sólo su vista externa y la implementación contiene la representación de la abstracción, así como los mecanismos que realizan el comportamiento deseado.

Page 43: Paradigma de poo

Ventajas del Encapsulamiento

Reducción de la cohesión entre distintos objetos: Lo que implica la construcción de objetos independientes. Cambiar un objeto no afecta al resto, sólo al objeto en cuestión.

Localización: La información relativa a un objeto está centrada en la definición de él mismo y no distribuida en otros objetos.

Page 44: Paradigma de poo

Esto implica fácil modificación y adaptación a los cambios, rápida ubicación de lo que hay que cambiar.

Protección de la Integridad: sólo permite cambiar el estado por sí mismo, a través de sus operaciones propias. Esto asegura la integridad y la consistencia de los datos.

Page 45: Paradigma de poo

Clase

Estudiante

Datos

Nombre Completo, RFC, Edo Civil, Edad, No. Teléfono, Domicilio.

Operaciones

Estudiar, Trabajar, Tertuliar, Tomar Café, Hacer Tareas

Capsula

Page 46: Paradigma de poo

Polimorfismo

Es la propiedad que permite que dos o más clases de objetos respondan el mismo mensaje de  diferente forma.

Page 47: Paradigma de poo

Permite reconocer y explotar las similitudes entre diferentes clases de objetos.

Cuando se reconoce que varios tipos diferentes de objetos podrían responder el mismo mensaje, se visualiza más claramente la distinción entre el mensaje y el método.

Page 48: Paradigma de poo

Clase

Deportes

Mensaje

Hacer Puntos

Objeto

Básquetbol

Fútbol

Béisbol

Fútbol Americano

Anotar una Carrera

Anotar un Gol

Operación

Ejemplo:

Encestar

Anotar unTouch Down

Page 49: Paradigma de poo

Herencia

Es un mecanismo que permite a un objeto heredar propiedades de otra clase de objetos. Permite a su vez a un objeto contener sus propios procedimientos y heredar los mismos de otros objetos.

Page 50: Paradigma de poo

Ejemplo

Las clases Hija e Hijo heredan las propiedades de la clase Padre, incluyendo a su vez nuevas propiedades.

Padre

Hija Hijo

La herencia permite diseñar y especificar sólo las diferencias de la clase más específica. Esto hace posible reusar tanto el comportamiento como el estado interno.

Page 51: Paradigma de poo

Padre

Hija Hijo

De la herencia surgen los conceptos de:

Superclase ( Clase Base )Subclase ( Clase Derivada )

Super Clase

Sub Clase

Page 52: Paradigma de poo

Definir con programación orientada a objetos la jerarquía de objetos que representan las figuras triangulo y cuadrado.

Figuras Geométricas

Triangulo

Cuadrado

Super clase

Sub clase

Page 53: Paradigma de poo

Definición de las clases:

Figura: Datos - Area, Perimetro, FormaMétodos - CalculoArea, CalculoPerimetro, Dibujar Triangulo: Datos – Altura, BaseMétodos - CalculoArea, CalculoPerimetro, Dibujar Cuadrado: Datos - LadoMétodos - CalculoArea, CalculoPerimetro, Dibujar

Los métodos CalculoArea, CalculoPerímetro y Dibujar se declaran en la clase Figura pero se implementan en los objetos derivados, esto es dado que dichos procedimientos serán distintos según se trate de la figura triangulo o cuadrado.

Page 54: Paradigma de poo

CalculoArea (Triangulo) - Base * Altura / 2CalculoPerimetro(Triangulo) – Suma de sus LadosDibujar(Triangulo) -  CalculoArea(Cuadrado) - Lado * LadoCalculoPerimetro(Cuadrado) – Suma de sus LadosDibujar(Cuadrado) -

Page 55: Paradigma de poo

Constructor

Método que permite la creación e inicialización de los objetos.

Pueden definirse desde ninguno a varios constructores.

Dependiendo del lenguaje, podrá ser un método más de la clase o un método específico de instancia (mismo nombre que la clase).

Page 56: Paradigma de poo

La creación de objetos se realiza mediante la invocación del operador new invocando al El constructor por defecto, aquel que no inicializa ningún atributo, está disponible siempre para cada clase (no haría falta definir un constructor para crear una instancia).

Page 57: Paradigma de poo

Destructor

Opuesto al constructor que especifica las operaciones a realizar tras la eliminación de un objeto.

La destrucción de objetos se realiza mediante la invocación del operador delete invocando al El destructor por defecto.

Muy específico del lenguaje de Programación.

Page 58: Paradigma de poo

Comentarios,

identificadores y

tipos de datos

Page 59: Paradigma de poo

Comentarios

C++ soporta dos tipos de comentarios:

1. Viejo estilo C: Entre /* y */.

2. Nuevo estilo C++: Comienzan con //.

Su efecto termina cuando se alcanza el final de la línea actual.

Page 60: Paradigma de poo

Identificadores

Son los nombres elegidos para las variables, constantes, funciones, clases y similares. El primer carácter debe ser una letra o un subrayado. El resto del nombre puede contener dígitos. Los identificadores que comienzan con dos subrayados están reservados para uso interno del compilador C++.

Page 61: Paradigma de poo

Constantes C++ permite utilizar varios tipos de

constantes:

1. Constantes enteras 440 -345 2. Constantes enteras muy grandes. Se

identifican situando una L al final de la constante entera 33L -105L

3. Constantes octales o hexadecimales. Un 0 a la izquierda indica una constante octal y un 0x o bien 0X indican una constante hexadecimal 0 02 077 0123 equivalen a 0 2 63 83 en octal 0x0 0x2 0x3F 0x53 equivalen a 0 2 63 83 en hexadecimal

Page 62: Paradigma de poo

4. Constantes reales (coma flotante) 0.0 3.1416 -99.2 C++ permite especificar constante de coma flotante de simple precisión (sufijo f o F) y doble precisión larga (sufijo l o L). 32.0f 3.1416L

5. Constantes carácter “z” “5”

6. Constantes cadena “hola” “hoy es lunes”

Page 63: Paradigma de poo

Tipos de datos C++, igual que C, contiene tipos fundamentales y tipos derivados o estructurados.

Los fundamentales son: int, char, long int, float, double, long double.

Tipo vacío. El tipo vacío (void) se utiliza principalmente para especificar:

Funciones que no devuelven valores. Punteros void, que referencian a objetos

cuyo tipo es desconocido.

Page 64: Paradigma de poo

Tipos enumerados. Un tipo enumerado está construido por una serie de constantes simbólicas enteras.

Los tipos enumerados se tratan de modo ligeramente diferente en C++ que en C. El nombre de la etiqueta enum se considera como un nombre de tipo igual que las etiquetas de struct y unión. Por tanto se puede declarar una variable de enumeración, estructura o unión sin utilizar las palabras enum, strcut o union.

Page 65: Paradigma de poo

C define el tipo de enum de tipo int. En C++, sin embargo, cada tipo enumerado es su propio tipo independiente. Esto significa que C++ no permite que un valor int se convierta automáticamente a un valor enum. Sin embargo, un valor enumerado se puede utilizar en lugar de un int.

Page 66: Paradigma de poo

Ejemplo:

enum lugar{primero,segundo,tercero};lugar pepe=primero; //correctoint vencedor=pepe; //correctolugar juan=1; //incorrecto

La última sentencia de asignación es aceptable en C pero no en C++, ya que 1 no es un valor definido en lugar.

Page 67: Paradigma de poo

Tipos referencia.Las referencias son como alias. Son alternativas al nombre de un objeto. Se define un tipo referencia haciéndole preceder por el operador de dirección &. Un objeto referencia, igual que una constante debe ser inicializado.int a=50;int &refa=a; //correctoint &ref2a; //incorrecto: no inicializado

Todas las operaciones efectuadas sobre la referencia se realizan sobre el propio objeto:refa+=5; equivale a sumar 5 a a, que vale ahora 55int *p=&refa; inicializa p con la dirección de a

Page 68: Paradigma de poo

Operadores especiales de C++

::

Resolución de ámbito (o alcance)

.*

Indirección (eliminación de referencia directa) un puntero a un miembro de una clase

->*

Indirección (eliminación de referencia directa) un puntero a un miembro de una clase

new

Asigna (inicializa) almacenamiento dinámico

delete

Libera almacenamiento asignado por new

Page 69: Paradigma de poo

Declaraciones y definiciones

Declaraciones Definiciones

se utilizan para introducir un

nombre al compilador, pero no se asigna memoria.

asignan memoria

Los términos declaración y definición tienen un significado distinto aunque con frecuencia se

intercambian.

Page 70: Paradigma de poo

En C++ cuando se declara una estructura se proporciona su nombre al compilador pero no se asigna memoria. Cuando se crea una instancia de la estructura es cuando se asigna memoria.

C++, permite mezclar datos con funciones y código ejecutable: trata una declaración como un tipo de sentencia y permite situarla en cualquier parte como tal. Esta característica de C++ es muy cómoda ya que permite declarar una variable cuando se necesite e inicializarla inmediatamente.

Page 71: Paradigma de poo

Punteros

Page 72: Paradigma de poo

El especificador constante (const)

Constantes Puntero

Punteros y direcciones de constantes simbólicas

Punteros a un tipo de dato constante

El especificador de tipo volatile

Punteros a void

Salidas y entradas

Page 73: Paradigma de poo

El especificador constante (const)

Una constante es una entidad cuyo valor no se puede modificar, y en C++, la palabra reservada const se utiliza para declarar una constante.

Ejemplo:const int longitud = 20;char array[longitud]; // válido en C++

pero no en C

Page 74: Paradigma de poo

Una vez que una constante se declara no se puede modificar dentro del programa.

En C++ una constante debe ser inicializada cuando se declara.

Page 75: Paradigma de poo

En C++, las constantes que se declaran fuera de una función tienen ámbito de archivo por defecto y no se pueden ver fuera del archivo en que están declaradas. Si se desea que una constante se vea en más de un archivo, se debe declarar como extern.

En C++ las constantes se pueden utilizar para sustituir a #define.

En C:#define PI 3.141592 #define long 128

En C++:const PI = 3.141592const long = 128

Page 76: Paradigma de poo

Constantes Punteros Se puede definir una constante puntero en C++. Las constantes puntero se deben inicializar en el momento en que se declaran. Se leen de derecha a izquierda.void main()

{int x=1,y;

int *const xp= &x; // xp es un puntero constante a un int.

xp=&y; // error: el puntero es una constante y no se puede asignar un nuevo valor a punteros constantes.

Page 77: Paradigma de poo

Punteros y direcciones de constantes simbólicas

En C++ se puede desreferenciarel puntero (cambiar la posición actual del puntero) y cambiar el valor de la constante.

const int x=6;

int *ip;

*ip=7;

ip = &x; //error

Page 78: Paradigma de poo

Punteros a un tipo de dato constante

Se puede declarar un puntero a un tipo de dato constante pero no se puede desreferenciar.const int x=6;const int *ip; //puntero a una constante enteraint z;ip=&x;ip=&z;*ip=10; //error: no se puede desreferenciar este tipo de puntero y modificar z.z=7; //válido: z no es una constante y se puede cambiar.

Page 79: Paradigma de poo

El puntero a un tipo constante

Es muy útil cuando se desea pasar una variable puntero como un argumento a una función pero no se desea que la función cambie el valor de la variable a la que está apuntada.

Page 80: Paradigma de poo

El especificador de tipo volatile

La palabra reservada volatile se utiliza sintácticamente igual que const, aunque en cierto sentido tiene sentido opuesto.

La declaración de una variable volatile indica al compilador que el valor de esa variable puede cambiar en cualquier momento por sucesos externos al control del programa.

Page 81: Paradigma de poo

En un principio es posible que las variables volatile se puedan modificar no sólo por el programador sino también por hardware o software del sistema.

Page 82: Paradigma de poo

Punteros a void

En C++ se puede crear un puntero genérico que puede recibir la dirección de cualquier tipo de dato.

void main()

{void *p;int a=1;double x=2.4;p=&a;p=&x; }

Page 83: Paradigma de poo

No se puede desrefernciar un puntero

void.void main(){ void *p;double x=2.5;p=&x;*p=3.6; // error: se desreferencia a un puntero void}

Page 84: Paradigma de poo

Las operaciones de salida y entrada se realizan en C++, mediante flujos (streams) o secuencias de datos. Los flujos estandar son:

cout (flujo de salida) cin (flujo de entrada).

La salida fluye normalmente a la pantalla.La entrada representa los datos que proceden de teclado. Ambos se pueden redireccionar.

Salida y Entradas

Page 85: Paradigma de poo

Salida

El flujo de salida se representa por el identificador cout, que es en realidad un objeto.

El operador << se denomina operador de inserción y dirige el contenido de la variable situada a su derecha al objeto situado a su izquierda.

Page 86: Paradigma de poo

Salida

El equivalente en C de cout es printf.

El archivo de cabecera iostream.h contiene las facilidades standard de entrada y salida de C++.

En C++, los dispositivos de salida estandar no requieren la cadena de formato.

Page 87: Paradigma de poo

Se pueden utilizar también diferente tipos de datos, enviando cada uno de ellos a la vez al flujo de salida. El flujo cout discierne el formato del tipo de dato, ya que el compilador C++ lo descifra en el momento de la compilación.

El operador de inserción se puede utilizar repetidamente junto con cout.

Page 88: Paradigma de poo

void main(){int a=4;float b=3.4;char *texto="hola\n";cout<< "entero " << a << " real " << b << " mensaje " << texto;}

Page 89: Paradigma de poo

Mostrar por pantalla:cout << expresión;Pedir por teclado:cin >> variable; La variable pude ser de cualquier tipo.

EJEMPLO:#include <iostream.h>#include <stdio.h>#include <conio.h>void main(){ int i,j; double d; clrscr(); i=10; j=15; cout <<"Introducir valor: "; cin>>d; cout << "Estos son los valores: "; cout << i << " "<< j << " "<< d; getch();}

Page 90: Paradigma de poo

Salida con formato

C++ asocia un conjunto de manipuladores con el flujo de salida, que modifican el formato por defecto de argumentos enteros. Por ejemplo, valores simbólicos de manipuladores son dec, oct y hex que visualizan representaciones decimales, octales y hexadecimales de variable.

Page 91: Paradigma de poo

Entrada C++ permite la entrada de datos a través del flujo de entrada cin.

El objeto cin es un objeto predefinido que corresponde al flujo de entrada estandar.

Este flujo representa los datos que proceden del teclado. El operador >> se denomina de extracción o de lectura. Toma el valor del objeto flujo de su izquierda y lo situa en la variable situada a su derecha.

Page 92: Paradigma de poo

C++ hereda la misma noción de bloque y ámbito. En ambos lenguajes, el mismo identificador se puede usar para referenciar a objetos diferentes. Un uso en un bloque interno oculta el uso externo del mismo nombre. C++ introduce el operador de resolución de ámbito o de alcance.

Page 93: Paradigma de poo

El operador :: se utiliza para acceder a un elemento oculto en el ámbito actual.

Su sintaxis es: :: variable

Page 94: Paradigma de poo

Ejemplo:#include <iostream.h>int a;void main(){float a;a=1.5;::a=2;cout << "a local " << a << "\n";cout << "a global " << ::a << "\n";} Este programa visualiza: a local 1.5a global 2Este operador se utilizará también en la gestión de clases.

Page 95: Paradigma de poo

La sintaxis en la P rogramación

O rientada a O bjetos

Page 96: Paradigma de poo

Definición de Objetos

Tipo Objeto <NombreObjeto>Privado<Campo 1> <TipoDato><Campo 2> <TipoDato><Campo 3> <TipoDato>...<Campo n> <TipoDato>FinPublicoProcedimiento <NombreProc> (lista parámetros

formales)Funcion <NombreFunc> (lista parámetros

formales) <TipoDatoFuncion>Fin-Objeto

Page 97: Paradigma de poo

Sintaxis de la definición de los procedimientos y funciones:

Procedimiento <NombreObjeto>.<NombreProc> (lista parámetros formales)[declaraciones]

       <cuerpo del procedimiento>Fin

 Funcion <NombreObjeto>.<NombreFunc> (lista parámetros formales) <TipoDatoFuncion>[declaraciones]

     <cuerpo de la funcion>Fin

Page 98: Paradigma de poo

Ejemplo:Definir el tipo objeto Estudiante con los campos Nombre, Apellido, No. de Carnet, Nota1, Nota2, Nota3, Nota4. Una función que calcule la media de las notas y un procedimiento que informe de dicha media.

Definir el tipo objeto Estudiante con los campos Nombre, Apellido, No. de Carnet, Nota1, Nota2, Nota3, Nota4. Una función que calcule la media de las notas y un procedimiento que informe de dicha media.

Análisis del problema:

Primero se define el tipo objeto donde los campos de datos se establecen como privados y los métodos como públicos.Luego se debe añadir un procedimiento a través del cual se asigne valores a los campos del objeto.Por último se colocará la unidad objeto dentro de un módulo que realice la declaración de instancias del objeto y el paso de mensajes.

Page 99: Paradigma de poo

Tipo Objeto EstudiantePrivado ‘Definición de camposNombre CadenaApellido CadenaNumCarnet EnteroNota1 RealNota2 RealNota3 RealNota4 RealFinPublico ‘Definición de la InterfazProcedimiento Iniciar(Nom, Ape Cadena;

Num Entero;N1,N2,N3,N4 Real)Funcion Media RealProcedimiento MostrarFinFin-Objeto 

Procedimiento Estudiante.Iniciar(Nom, Ape Cadena; Num Entero; N1,N2,N3,N4 Real)

Nombre = NomApellido = ApeNumCarnet = NumNota1 = N1Nota2 = N2Nota3 = N3Nota4 = N4Fin Funcion Media RealMedia = (Nota1+Nota2+Nota3+Nota4)/4Fin Procedimiento Estudiante.MostrarEscribir(Nombre + ‘ ‘ Apellido)Escribir(‘Nota: ‘,Media)Fin  Inicio ProgramaVariable E1 Estudiante ‘Instancia E1 de

clase EstudianteVariable E2 Estudiante ‘Instancia E2 de

clase EstudianteE1.Iniciar(‘Luis’,’Hernández’,348,15,18,13,1

7)E1.MostrarE2.Iniciar(‘Marta’,’Blanco’,839,17,14,12,15)E2.MostrarFin

Page 100: Paradigma de poo

Agradecimientos

MC Alexandro Uc Gonzalez.Universidad Autonoma de MichoacánLic. Leopoldo Nahúm Ramos Arano

Conalep Plantel Zacualpan