miércoles, 31 de enero de 2018

DATOS HERENCIA;COCHE,TREN,AVIÓN.

#include <stdio.h>
#include <conio.h>
#include <iostream>

using namespace std;

//Realizar un programa que imprima los datos de un coche, tren y avión utilizando herencia.

class vehiculo{
 protected:
  int dep, vel;
 public:
  void acelerar(){
   cout<<endl<<"Acelerar";}
  void frenar(){
   cout<<endl<<"Frenar"<<endl<<endl;}
};

class coche : public vehiculo {
 private:
  int puertas;
 public:
  coche (int dep1, int vel1, int puertas1){
   dep=dep1;
   vel=vel1;
   puertas=puertas1;
  }
  void imprimir()

  {
   cout<<"Deposito ="<<dep<<endl;
   cout<<"Velocidad ="<<vel<<endl;
   cout<<"Puertas ="<<puertas<<endl;
  }
};

class tren : public vehiculo {
 private:
  int vagones;
 public:
  tren (int dep1, int vel1, int vagones1){
   dep=dep1;
   vel=vel1;
   vagones=vagones1;
  }
  void imprimir()
  {
   cout<<"Deposito ="<<dep<<endl;
   cout<<"Velocidad ="<<vel<<endl;
   cout<<"Vagones ="<<vagones<<endl;
  }
};


class avion : public vehiculo {
 private:
  int puertas;
 public:
  void despegar(){
  cout<<"Despegar"<<endl;
  }
  void aterrizar(){
  cout<<"Aterrizar"<<endl;
  }
  avion(int dep1, int vel1, int puertas1){
   dep=dep1;
   vel=vel1;
   puertas=puertas1;
  }
  void imprimir(){
   cout<<"Deposito ="<<dep<<endl;
   cout<<"Velocidad ="<<vel<<endl;
   cout<<"Puertas ="<<puertas<<endl;
  }
};

main ()
{
coche a1(80,180,2);
tren a2(100,90,7);
avion a3(100,190,1);


cout << "Coche" << endl;
a1.imprimir();
a1.acelerar();
a1.frenar();

cout << "Tren" << endl;
a2.imprimir();
a2.acelerar();
a2.frenar();

cout << "Avion" << endl;
a3.imprimir();
a3.acelerar();
a3.frenar();
a3.despegar();
a3.aterrizar();
}

EJERCICIO DEL COCHE 






//Realizar un programa, que solicite al usuario los datos del coche (adaptar método), si el modelo del //auto es menor a "2000", la velocidad sera 20 asteriscos presentados en pantalla , su velocidad //máxima sera 120 km/h, y su aceleración será desconocida. Si el modelo del auto es mayor del 2000, //su velocidad sera 50 asteriscos,  velocidad máxima 300 km/h y su aceleración 10 km/s.
//Realice un programa que ingrese los datos salga especificación y salga del programa pulsando la //tecla 0 - otro numero para seguir.


#include <iostream>
#include <stdlib.h>
#include <conio.h>


using namespace std;

class coche{
 public:
string matricula, marca;
int modelo, numerop;
    public:
     coche(){
  }
coche(string matricula1, string marca1, int modelo1, int numerop1){
 matricula=matricula1;
 marca=marca1;
 modelo=modelo1;
 numerop=numerop1;
}

void Velocidad(){
if(modelo<2000){
    for(int i=0;i<=20;i++){
      cout<<"*";
 }
}
else {
 for(int i=0;i<=50;i++){
    cout<<"*";
 }
}

}
void Velocidadmax(){
  if(modelo<2000)
    cout<<endl<<"Su velocidad maxima es: 120 km/h"<<endl;
  else
  cout<<endl<<"su velocidad maxima es: 300 km/h"<<endl;
}
void Aceleracion(){
  if(modelo<2000)
    cout<<"Velocidad desconocida"<<endl;
    else
     cout<<"Velocidad de aceleracion es:10 km/s"<<endl;
}

 void imprimir(){
  cout<<"Ingrese matricula"<<endl;
  cin>>matricula;
  cout<<"Ingrese marca"<<endl;
  cin>>marca;
  cout<<"Ingrese modelo"<<endl;
  cin>>modelo;
  cout<<"Ingrese numero de puertas"<<endl;
  cin>>numerop;
 }

};

main(){
int c;
coche a1;
do{
a1.imprimir();
a1.Velocidad();
a1.Velocidadmax();
a1.Aceleracion();
cout<<"Ingrese 1 para volver a introducir datos, otro numero para cerrar"<<endl;
cin>>c;
}while(c==1);
getch();
}



HERENCIA SIMPLE Y MÚLTIPLE





La Herencia. Es la capacidad de compartir atributos y métodos entre clases. Es la propiedad que permite definir nuevas clases usando como base clases ya existentes. La nueva clase (clase derivada) hereda los atributos y comportamiento que son específicos de ella.


HERENCIA MÚLTIPLE

En el tipo de herencia múltiple se van a usar dos o más clases base para derivar una clase. Osea, la clase derivada comparte los atributos y los métodos de más de una clase 







APRENDE MÁS AQUI


HERENCIA SIMPLE

Mientras sólo se tenga una clase base de la cual hereda la clase derivada, se dice que hay herencia simple. Sin embargo, la herencia simple no excluye la posibilidad de que de una misma clase base se pueda derivar más de una subclase o clase derivada.



Resultado de imagen para herencia simple

EJERCICIO DATOS

EJERCICIO DATOS PERSONALES  

#include <iostream>
#include <conio.h>
#include <stdio.h>
using namespace std;

/*

Realice una clase llamada datos personales, que contenga 3 datos: nombre, edad y estado civil.
Realice un programa que contenga un constructor por defecto que incialice los valores "xxx" para nombre, "- 1" para edad y "desconocido" para estado civil.  
*/

class DatosPersonales{
 private:
  string nombre, estadocivil;
  int edad;
 public:
  DatosPersonales(){
  edad = -1;
  nombre = "x x x";
  estadocivil = "Desconocido";
  }
  void GetDatos()
  {
  cout << nombre << endl;
  cout << edad << endl;
  cout << estadocivil;
  }
};
main()
{
DatosPersonales p1;
p1.GetDatos();

getch();
}


Método Constructor

QUÉ ES LA SINTAXIS?

Un programa en C++ es una secuencia de caracteres que se agrupan en componentes léxicos (tokens)que comprenden el vocabulario básico del lenguaje.Estos componentes de léxico son: palabras reservadas, identificadores, constantes, operadores y signos de puntuación.


QUÉ ES UN MÉTODO CONSTRUCTOR?

Los constructores son funciones miembro especiales que sirven para inicializar un objeto de una determinada clase al mismo tiempo que se declara. ... Tienen el mismo nombre que la clase a la que pertenecen. No tienen tipo de retorno, y por lo tanto no retornan ningún valor. No pueden ser heredados.


EJERCICIO



MIRA ESTE VIDEO PARA MAYOR ENTENDIMIENTO -----CLIC AQUÍ---- 

#include <iostream>
#include <cstdlib>
using namespace std;
class aplicacion{
//Metodo constructor

public:
    aplicacion();


};

aplicacion::aplicacion(){

cout << " ************* " << endl;
cout << " *           * " << endl;
cout << " *           * " << endl;
cout << " ************* " << endl;
cout << " *   9 8 7   * " << endl;
cout << " *   6 5 4   * " << endl;
cout << " *   3 2 1   * " << endl;
cout << " *     0     * " << endl;
cout << " ************* " << endl;
main(){
aplicacion calculara;






system("pause");


}

martes, 30 de enero de 2018

El Encapsulamiento


¿Qué es encapsulamiento? Se denomina encapsulamiento a la protección que se da sobre los atributos a modificaciones del exterior.





En este caso nos damos cuenta como el programa se vuelve seguro, ya que al declarar a los  atributos “edad” y “nombre” como privado no podrán ser modificado por un valor inválido o negativo.

lunes, 29 de enero de 2018

EJERCICIO VEHÍCULOS


Realizar una clase llamada vehículo que contenga los atributos (nombre, velocidad en km/h, numero de pasajeros), la clase debe contener los siguiente métodos: acelerar, frenar y datos; en acelerar se debe realizar un contador del 1 al 1000, en frenar, un mensaje que diga frenar, y en datos se debe solicitar los datos del vehiculo al usuario.En el método acelerar o frenar, para acelerar se debe pulsar 1 y para frenar 0. Para salir se debe pulsar cualquier tecla, el programa debe solicitar los datos y que quiere hacer, si acelerar, frenar o salir.



#include <stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;
  /*
     Realizar una clase llamada vehículo que contenga los atributos
     (nombre, velocidad en km/h, numero de pasajeros), la clase debe
     contener los siguiente métodos: acelerar, frenar y datos; en 
     acelerar se debe realizar un contador del 1 al 1000, en frenar, 
     un mensaje que diga frenar, y en datos se debe solicitar los 
     datos del vehiculo al usuario.En el método acelerar o frenar, 
     para acelerar se debe pulsar 1 y para frenar 0. Para salir se 
     debe pulsar cualquier tecla, el programa debe solicitar los datos 
      y que quiere hacer, si acelerar, frenar o salir.
*/

class vehiculo
{
   public:
        int vel, pas, num, i;
   public:
        void acelerar()
             {
                  for(int a=1; a<=1000; a++)
                    {
                          cout<<endl<<a;
                    }
             }
  public:
      void frenar()
            {
                   cout<<endl<<"FRENAR";
  
            }
 public:
       void datos()
         {
                cout<<"Ingrese el numero correspondiente: 1. Moto o 2. Avion"<<endl;
                cin>>num;
                cout<<"Ingrese la velocidad en km/h"<<endl;
                cin>>vel;
                cout<<"Ingrese el numero de pasajeros"<<endl>
                cin>>pas;
                cout<<"Ingrese 1 si quiere acelerar, 0 si quiere frenar, y cualquier tecla para salir"<<endl;
                cin>>i;
                           
               if(i==1)
                  acelerar();
              else
              if(i==0)
                  frenar();
              else
                  cout<<"A escogido salir"; 
         }
};

main()
  {
        vehiculo transporte;
        transporte.datos();
         getch();
  } 




martes, 2 de enero de 2018

EJERCICIO DE POO (POLIMORFISMO)

En este ejemplo el objeto es alumno 
¿por qué decimos que es un "poliformismo"?
Porque tiene distintas formas de ser llamado.

Ejercicio

#include <stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;

class Mamifero{
public:
        int n;
char nombreanimal [10];
char sanimal [10];
public:
void animal (){
}
}; 

main (){
  Mamifero sonidoanimal;
  cout <<"Ingrese un numero del 1 al 3:";
  cin >>sonidoanimal.n;

  if (sonidoanimal.n==1){
   cout <<"Mi perro se llama Max y el sonido que hace mi perro es WOF! WOF!";
}
  if (sonidoanimal.n==2){
   cout <<"Mi gata se llama Mindi y el sonido que hace mi gata es MAAAW MAAAAW ";
}
  if (sonidoanimal.n==3){
   cout <<"Mi vaca se llama Marcela y el sonido que hace mi vaca es MUUUUU";
}
  sonidoanimal.animal();
  getch();

}




2018

                                     ¡FELIZ AÑO SEÑORES PROGRAMADORES! 

lunes, 18 de diciembre de 2017

¿Qué es la Programación Orientada a Objetos?
  • Facilita la creación del software de calidad
Características
  1. Mantención
  2. Extencion
  3. Reutilización del software
  4. Abstracción la capacidad del ser humano para entender las cosas 

Clase es como un tipo de dato

                                                                Atributos = Datos
                                                                Métodos = Algoritmo 

Instanciar es CREAR UN OBJETO  
Objeto es una instancia de clase especifica 

CONCEPTOS PARA ENTENDER POO:
La POO es una forma de programar que trata de encontrar una solución a estos problemas. Introduce nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos. Entre ellos destacan los siguientes:
Clase
Definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ella.
Herencia
Por ejemplo, herencia de la clase C a la clase D, es la facilidad mediante la cual la clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos métodos y variables registrados como "públicos" (public) en C. Los componentes registrados como "privados" (private) también se heredan pero se mantienen escondidos al programador y sólo pueden ser accedidos a través de otros métodos públicos. Para poder acceder a un atributo u operación de una clase en cualquiera de sus subclases pero mantenerla oculta para otras clases es necesario registrar los componentes como "protegidos" (protected), de esta manera serán visibles en C y en D pero no en otras clases.
Objeto
Instancia de una clase. Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos), los mismos que consecuentemente reaccionan a eventos. Se corresponden con los objetos reales del mundo que nos rodea, o con objetos internos del sistema (del programa).
Método
Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema.
Evento
Es un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento la reacción que puede desencadenar un objeto; es decir, la acción que genera.
Atributos
Características que tiene la clase.
Mensaje
Una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó.
Propiedad o atributo
Contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método.
Estado interno
Es una variable que se declara privada, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase.
Componentes de un objeto
Atributos, identidad, relaciones y métodos.
Identificación de un objeto
Un objeto se representa por medio de una tabla o entidad que esté compuesta por sus atributos y funciones correspondientes.
En comparación con un lenguaje imperativo, una "variable" no es más que un contenedor interno del atributo del objeto o de un estado interno, así como la "función" es un procedimiento interno del método del objeto.


POO

DATOS HERENCIA;COCHE,TREN,AVIÓN. #include <stdio.h> #include <conio.h> #include <iostream> using namespace std; /...