Vous êtes sur la page 1sur 14

INF-103 PROGRAMACION II PROGRAMACIN ORIENTADA A OBJETOS

1 Parte

M.Sc. Irma Prado

PROGRAMACION ORIENTADA A OBJETOS POO EN C++ Conceptos Se denominan tipos de datos simples a los tipos de datos que se encuentran disponibles en los diferentes lenguajes, por ejemplo en C los tipos de datos simples son int, float, longint, double, char, etc. Se denominan tipos de datos estructurados a un conjunto de datos simples que se utilizaran para almacenar datos en un archivo, tambin conocidos como registros. Por ejemplo el registro alumno tiene los sgtes datos: char para el nombre del alumno, int para su edad, float para su nota. Se denomina tipo de dato abstracto, TAD por sus siglas en Ingles, al tipo de dato definido por el usuario que consta de datos simples o estructurados y las aplicaciones de esos datos simples o estructurados. Por otra parte: La programacin estructurada consiste en programar con las sentencias bsicas: entrada/salida, if, for, while, do while, switch. La programacin modular, parte del principio divide y vencers, divide el problema en mdulos, y estos mdulos se programan utilizando consiste en programar utilizando funciones o mdulos. Es decir que un problema lo resuelve mediante mdulos o funciones y estas funciones a su vez utilizan las sentencias bsicas. La Programacin Orientada a Objetos, es la evolucin de la programacin, consiste en programar utilizando objetos y un objeto es una instancia de una clase ( una clase es un TAD). Ejemplos de tipos de dato abstracto TAD o clases: 1. La clase DEPORTISTA, tiene los datos char para el nombre, int para la edad, int para la estatura, int para el peso. Las aplicaciones de esta clase son partidos de la liga.

INF-103 PROGRAMACION II PROGRAMACIN ORIENTADA A OBJETOS

1 Parte

M.Sc. Irma Prado

2. La clase FELINO, sus datos son edad, raza, vacuna, nombre y las aplicaciones son juega, come, duerme, etc. Ejemplo 41 Programa OO para sumar 2 nmeros. que ingresan por teclado #include<conio.h> #include<iostream.h> class primero { int a,b; public: void leer(); int sumar(); }; void primero::leer() { cout<<"Escriba el primer valor "; cin>>a; cout<<"Escriba el segundo valor "; cin>>b; } int primero::sumar() { return(a+b); } main() { primero x; x.leer(); cout<<"El resultado de la suma es : "<<x.sumar(); getch(); } Explicacin del programa 41: Este programa debe salvarse con la extensin cpp La palabra reservada para declarar una clase es class El nombre de la clase es la palabra que acompaa a la palabra reservada class. En el ejemplo el nombre es primero. Al terminar de declarar la clase, al cerrar la llave se escribe punto y coma.

INF-103 PROGRAMACION II PROGRAMACIN ORIENTADA A OBJETOS

1 Parte

M.Sc. Irma Prado

En el ejemplo las propiedades o miembros datos son a y b y son variables enteras. En el ejemplo los mtodos o funciones miembros son leer() y sumar(). Al desarrollar cada una de las funciones miembros primero se escribe el tipo de salida de la funcin, luego se escribe el nombre de la clase a la que pertenece esta funcin, posteriormente se escribe el carcter de mbito que son :: y finalmente el nombre de la funcin. En el ejemplo son: void primero::leer() int primero::sumar() En el programa principal se declara el objeto. Un objeto es una instancia de la clase. La forma de declarar un objeto es escribir el nombre de la clase seguido de del nombre del objeto. En el ejemplo: primero x; Entonces x es el objeto. Es decir que un objeto es una variable de tipo clase. Solamente mediante un objeto se puede Lamar o utilizar los miembros pblicos de la clase. El objeto solamente utiliza los miembros pblicos de la clase. En nuestro ejemplo x.leer(); x.sumar(); Las variables definidas en la clase, en nuestro ejemplo a y b, estn disponibles en todas las funciones miembros de la clase. Es decir, se pueden utilizar en cualquier funcin de la clase sin necesidad de pasar de una a otra como parmetro. Pero estas variables no puede utilizarlas el objeto directamente porque son privadas, solamente las utilizan las funciones que son miembros de la clase. El objeto solamente pude utilizar los miembros pblicos de la clase.

Los tipos de acceso a una clase son tres: publico (public), privado (private) y protegido (protected). El objeto solamente ingresa a los miembros pblicos de la clase. Es decir a todo lo que se haya declarado despus de la palabra public en la clase.

INF-103 PROGRAMACION II PROGRAMACIN ORIENTADA A OBJETOS

1 Parte

M.Sc. Irma Prado

Una funcin miembro de una clase puede usar todas las variables o funciones miembros de la misma clase sin necesidad de un objeto. En el ejemplo leer() utiliza a y b sin que haya ingresado como parmetro y sin necesidad de un objeto. El programa principal, solamente puede utilizar los datos o las aplicaciones de una clase mediante el objeto de la misma clase, siempre y cuando estos sean pblicos. Explicacin ejemplo 41. detallada de los conceptos, aplicados al

INF-103 PROGRAMACION II PROGRAMACIN ORIENTADA A OBJETOS

1 Parte

M.Sc. Irma Prado

Ejemplo 41 b) Repetimos el mismo ejemplo anterior, pero ahora con varios objetos de la misma clase. #include<conio.h> #include<iostream.h> class primero { int a,b,c; public: void leer(); void sumar(); }; void primero::leer() { cout<<"Escriba el primer valor "; cin>>a; cout<<"Escriba el segundo valor "; cin>>b; } void primero::sumar() { c=a+b; cout<<"El resultado de la suma } main() { primero x,p,r; cout<<" \nDatos para el objeto x.leer(); x.sumar(); cout<<" \nDatos para el objeto p.leer(); p.sumar(); cout<<" \nDatos para el objeto r.leer(); r.sumar(); getch();
}

es : "<<c;

X; P; R;

Suponiendo que ejecutamos el programa anterior y tenemos los sgtes datos: Datos para el objeto X

INF-103 PROGRAMACION II PROGRAMACIN ORIENTADA A OBJETOS

1 Parte

M.Sc. Irma Prado

Escriba el primer valor 5 Escriba el segundo valor 7 El resultado de la suma es 12 Datos para el objeto P Escriba el primer valor 3 Escriba el segundo valor 19 El resultado de la suma es 22 Datos para el objeto R Escriba el primer valor -2 Escriba el segundo valor 12 El resultado de la suma es 10 Podemos representar cada objeto de la ste manera:

Note que los tres objetos tienen la misma forma o formato porque los tres pertenecen a la misma clase, pero cada uno de ellos tienen sus propios valores, la propiedad a del objeto x tiene el valor 5 y la propiedad a del objeto p tiene el valor de 3. Entonces los valores de las propiedades de diferentes objetos no se mezclan. Ejemplo 42.- La serie de Fibonacci es una serie que inicia con dos nmeros uno, luego los siguientes trminos se generan a partir de la suma de sus dos nmeros anteriores. Realizar un programa para generar 10 nmeros de la serie de Fibonacci. #include <iostream.h> #include <conio.h> class fibo { int n;

INF-103 PROGRAMACION II PROGRAMACIN ORIENTADA A OBJETOS

1 Parte

M.Sc. Irma Prado

float a,b; public: void calculo(); }; void fibo::calculo() { float c=0,n=0; a=1;b=0; while(n<10) { c=b+a; cout<<c<<" "; n++; a=b; b=c; } } void main() { fibo z; clrscr(); //limpiamos pantalla z.calculo(); getch(); } Explicacin del programa 42: La clase se llama fibo. En cada funcin miembro, si necesita puede declarar sus propias variables, para realiza lo algoritmos, pero estas variables son locales, no pertenecen a la clase y solamente sirven para la funcin. En el ejemplo se tienen estas variables locales en la funcin calculo() y son c y n. Note que en este caso el objeto se llama z. en d

Ejemplo 43 Realice un programa que lea un monto bolivianos, luego convierta a dlares americanos y cambio si es necesario. // -------#include <conio.h> #include <iostream.h>

INF-103 PROGRAMACION II PROGRAMACIN ORIENTADA A OBJETOS

1 Parte

M.Sc. Irma Prado

//include <windows.h> #include <iomanip.h> class cambio { float change, w, x, y; int z; public: void inicio(); void leer(); void dolares(); }; void cambio::inicio() { cout<<endl; cout<<"----------------------------"<<endl; cout<<"Programa de cambio de moneda"<<endl; cout<<"----------------------------"<<endl; cout<<endl;
cout<<"Cambio oficial del dolar: 7,07 Bolivianos"<<endl;

} void cambio::leer() { cout<<endl; cout<<"Ingrese el monto en Bolivianos"<<endl; cin>>x; } void cambio::dolares() { y=x/7.07; z=y; w=y-z; change=w*7.07; cout<<endl; cout<<"Cambio: "<<z<<" Dolares y "; } main() { cambio t; t.inicio(); t.leer(); t.dolares();

cout<<setprecision(2)<<change<<" y su cambio en Bolivianos"<<endl;

INF-103 PROGRAMACION II PROGRAMACIN ORIENTADA A OBJETOS

1 Parte

M.Sc. Irma Prado

getch(); } En este caso la clase se llama cambio y el objeto t. Se utiliza setprecision(2) para los decimales. Ejemplo 44.- Realizar un programa para calcular 1! + 3! + 5! para n terminos. #include <iostream.h> #include <conio.h> class num_fac { int a; public: void leer(); void fact(); }; void num_fac::leer() {cout<<"Valor N: \n";cin>>a;} //*****************// void num_fac::fact() { int m=1,f=1; unsigned s=0; for(int i=1;i<=a;i++) //controla total de numeros {for(int j=1;j<=m;++j) //calcula el factorial {f=f*j;} cout<<" + "<<f; //muestra el factorial f=1; //inicializa la variable para la siguiente pasada m=m+2; //genera el sgte impar } } //**********************// main() { num_fac ob1; ob1.leer(); ob1.fact(); getch(); } Constructor.

INF-103 PROGRAMACION II PROGRAMACIN ORIENTADA A OBJETOS

10

1 Parte

M.Sc. Irma Prado

Un constructor es una funcin miembro de la clase, que lleva el mismo nombre de la clase, no tiene retorno (return), siempre debe ser declarado como publico y se ejecuta automticamente al declarar un objeto. El constructor tiene como objetivo inicializar las variables o propiedades de la clase. Por lo general, el constructor es desarrollado dentro de la clase, es decir que inicializa las variables dentro de la misma clase. Ejemplo 45.- Utilizando constructores, realice un programa en C++ para obtener la sumatoria de n nmeros que ingresan por teclado. #include<iostream.h> #include<conio.h> class suma { int n,z,x; public: suma(){x=0;}; //aqui esta el constructor inicializa x void proceso(); }; void suma::proceso() { cout<<"Total de terminos a sumar? :";cin>>n; for(int j=1;j<=n;j++) { cout<<"ingrese un valor: ";cin>>z; x=x+z; } cout<<"La suma es:"<<x; } main() { suma k; //aqu se ejecuta el constructor es decir que //x se ha puesto en cero k.proceso(); getch(); } Ejemplo 46.- Calcular el factorial de un numero, utilice constructor.

INF-103 PROGRAMACION II PROGRAMACIN ORIENTADA A OBJETOS

11

1 Parte

M.Sc. Irma Prado

#include <iostream.h> #include <conio.h> class fact { int n,f; public: fact(){f=1;} void leer(); void factorial(); }; void fact::leer() { cout<<"escriba el numero: "; cin>>n; } void fact::factorial() { for(int k=1;k<=n;k++) f=f*k; cout<<"el factorial de "<<n<<" es: "<<f; } main() { fact l; l.leer(); l.factorial(); getch(); } Ejemplo 47.- Realizar un programa que en el constructor genere una matriz identidad de 5x5, luego muestre esta matriz en pantalla. #include <iostream.h> #include <iomanip.h> #include <conio.h> class matriqui { int a[5][5]; public: matriqui() {

INF-103 PROGRAMACION II PROGRAMACIN ORIENTADA A OBJETOS

12

1 Parte

M.Sc. Irma Prado

for (int j=1; j<=5; j++) { for (int i=1; i<=5; i++) { if (j==i) a[j][i]=1; else a[j][i]=0; } } } void mostrar(); }; void matriqui::mostrar() { for (int j=1; j<=5; j++) { for (int i=1; i<=5; i++) { cout<<setw(3)<<a[j][i]; } cout<<endl; } } main() { matriqui h; h.mostrar(); getch(); } Ejemplo 48.- Realice un POO que lea n, luego desplegar en pantalla la sgte secuencia de nmeros, ejemplo para n=5: 12345 54321 1234 4321 123 321 12 21 1

INF-103 PROGRAMACION II PROGRAMACIN ORIENTADA A OBJETOS

13

1 Parte

M.Sc. Irma Prado

1 #include<stdio.h> #include<conio.h> #include<iomanip.h> class sec { int n; public: void leer(); void desplegar(); }; void sec::leer() { cout<<"Introduce n: "; cin>>n; }; void sec::desplegar() { int k=n,j; for(int i=0;i<n;i++) { for(j=1;j<=k;j++) { cout<<setw(3)<<j; } cout<<endl; for(j=k;j>=1;j--) { cout<<setw(3)<<j; } k=k-1; cout<<endl; } } main() { sec w; w.leer(); w.desplegar(); getch();

INF-103 PROGRAMACION II PROGRAMACIN ORIENTADA A OBJETOS

14

1 Parte

M.Sc. Irma Prado

Vous aimerez peut-être aussi