viernes, 22 de enero de 2016

Correccion de la evaluacion del 1er Quimestre



Objetivo: Corregir todos los errores cometidos en la prueba para aprender más sobre el tema que falta reforzar.
  • Realizar el análisis y diseño detallado de aplicaciones informáticas de gestión

INDICARES DE EVALUACIÓN.

  • Se han resuelto y presentado los ejercicios propuestos valorando la correcta elección y utilización de las estructuras; la calidad del resultado; la eficiencia del resultado;
  • Se ha justificado la importancia de las estructuras dinámicas.
  • Se ha justificado la importancia de los punteros en la gestión de la memoria.

1.- Determinar el valor que tendrán las variables después de cada operación de asignación (cada respuesta 0.5 puntos)

struct nodo{
int dia;
int mes;
int anio;

}def:

class Foo{
    private:
int bar;
    public:
void imp();
 };

int a=3;
int b=4;
int suma(int a, int b)
{
         int c;
         c = a + b;
         return c;
}


def.dia= basura
Basura
c= 7


int A;
int B;
B=12;
A=B-4;
A=B-7;
B=A+2;
A=A*A;

int X;
int Y;
X=2;
Y=X+6;
X=X+X;
Y=X-5;


int HOLA;
int SE_NO;
int OTRA;
HOLA=-7;
NO_SE=12;
OTRA=HOLA + NO_SE;
NO_SE=HOLA + NO_SE;
HOLA=NO_SE + OTRA;

A=25

Y= -1

NO_SE= Error
2.- Identifique los errores del programa y corríjalos al frente de cada línea de código (2 puntos);

#include <iostream>
#include <conio.h>
using namespace std;
class empleado{ class Empleado{
Public:
int edad,numdep;
char nomb[10];
public:
void iniciar(void);
void entradaDatos(void);
void salidaDatos(void);
} emp1;

int main(void){
Empleado emp2;
emp1.iniciar();
emp2.iniciar();
emp1.entradaDatos();
emp2.entradaDatos();
emp1.salidaDatos();
emp2.salidaDatos();
getch();
return 0;
}

int Empleado::iniciar(void) { Void Empleado::iniciar(void) {
cout >>"PROGRAMA QUE INGRESA DATOS DE EMPLEADO"<<"\n\n";
cout <<"PROGRAMA QUE INGRESA DATOS DE EMPLEADO"<<"\n\n";

}
void Empleado::entradaDatos(void) {
cout<<"INTRODUZCA los datos del empleado"<<"\n";
cout<<"INTRODUZCA nombre:"<<"\n";
cin>>nomb;
cout<<"INTRODUZCA edad"<<"\n";
cin>>edad;
cout<<"numero de departamento"<<"\n";
cin>>numde; cin>>numdep;
}
void Empleado::salidaDatos(void) {
cout<<nomb <<"\n";
cout<<edad<<"\n";
cout<<numdep<<"\n";


}


3.- definir cuál sería la estructura correcta de los siguientes enunciados (0.2 cada ítem)

Crear una clase llamada juguete con dos atributos y un método imprimir () el cual imprime los atributos.

class juguete{
public:
int pelota;
int maxteal;
public:
void imprimir();
};
void juguete::imprimir(){
printf("%d\n",pelota);
printf("%d",maxteal);
}

Enumero dos principios de P.O.O


-Encapsulación
-Herencia
-Polimorfismo





Escriba la sintaxis de la función principal de c++

main()
{
}





Represente gráficamente que es polimorfismo








Realice una clase con el principio de encapsulamiento.

class op{
private: int x;
int y;
public:
void asfa();
}






4.- Encierre la letra de la respuesta correcta de cada pregunta (0,2 cada una)

  1. ¿Cuál es la descripción que crees que define mejor el concepto 'clase' en la programación orientada a objetos?
  1. Es un concepto similar al de 'array'
  2. Es un tipo particular de variable
  3. Es un modelo o plantilla a partir de la cual creamos objetos
  4. Es una categoria de datos ordenada secuencialmente


  1. ¿Qué es una pila? (0.3pts)
  1. Una lista en la que sólo se pueden insertar y eliminar nodos en uno de sus extremos.
  2. Un puntero en la que sólo se pueden insertar y eliminar nodos en uno de los extremos.
  3. Un dato int que sólo se pueden insertar y eliminar nodos en uno de los extremos de la lista.
  4. Ninguno de los anteriores.



  1. ¿Qué es una cola? (0.3pts)
  1. Es un puntero, caracterizada por ser una secuencia de elementos FIFO.
  2. es una variable, caracterizada por ser una secuencia de elementos FIFO.
  3. es una estructura, caracterizada por ser una secuencia de elementos FIFO.
  4. Ninguna de las anteriores.


  1. ¿Defina que es una variable? (0.3pts)
  1. Puede ser un puntero.
  2. Puede ser un valor entero.
  3. Es una porción de memoria.
  4. Todas las anteriores


  1. ¿Qué elementos crees que definen a un objeto?
  1. Sus cardinalidad y su tipo
  2. Sus atributos y sus métodos
  3. La forma en que establece comunicación e intercambia mensajes 
  4. Su interfaz y los eventos asociados.


  1. ¿Qué significa instanciar una clase?
  1. Duplicar una clase
  2. Eliminar una clase
  3. Crear un objeto a partir de la clase
  4. Conectar dos clases entre sí


  1. ¿Qué es un puntero? (0.3pts)
  1. Es una matriz que hace referencia a una región de memoria.
  2. Es un valor entero que da referencia a una región de memoria
  3. Ninguna de las anteriores.
  4. Es una variable independiente de memoria que sirve para apuntar a un puntero.




  1. ¿Qué es una estructura dinámica? (0.3pts)
  1. son estructuras que cuya dimensión puede crecer o disminuir durante la creación del programa.
  2. son estructuras que cuya dimensión puede crecer o disminuir durante el diseño del programa
  3. son estructuras que cuya dimensión puede crecer o disminuir durante la ejecución del programa
  4. ninguna de las anteriores.


  1. ¿Por qué dos objetos instanciados de una clase son diferentes?
  1. Porque tienen sus propios atributos y métodos.
  2. Porque los atributos y métodos son iguales en su contenido
  3. No son diferentes son iguales.
  4. Ninguna de las anteriores


  1. ¿Cuál es la diferencia entre objeto y clase?
  1. Ninguna porque son iguales
  2. El objeto se declara en el main y la clase no.
  3. La clase se utiliza para definir qué aspecto tendrán los objetos
  4. El objeto se utiliza para definir qué aspecto tendrán la clase


5.-Realizar el siguiente ejercicio en c++ en el computador (2 Puntos resuelto completamente). El profesor designa el ejercicio a realizar.

Implementar una clase Jugador que solicite el nombre, edad en un método solidat(), y contenga otro método impdat(), que imprima los datos solicitados con la diferencia que la edad la debe imprimir en días. Declarar un objeto llamado jug1.
Realizar una clase llamada Vehículo que contenga como atributos color, marca, modelo y que contenga un método llamado imprimir() que imprima los datos que no deben ser ingresados por teclado sino puestos dentro del código.




Vicerrector
Dr. Plácido Vaca


Jefe de área
MSc. Diego Caiza
Profesor/a
Ing. Byron Saula.



































LINK DE DESCARGA DEL EJERCICIO:


http://www.mediafire.com/download/5yq50mjha3dyagn/Validez+de+cedula.rar





CÉDULA CON FUNCIONES

EJERCICIO:




































































































                                   








           

RESULTADO:
















LINK DE DESCARGA DEL EJERCICIO:

http://www.mediafire.com/download/wm1kkt9p1715wh9/Cedula+con+funciones.rar



HERENCIA

DEFINICIÓN:

La herencia es específica de la programación orientada a objetos, donde una clase nueva se crea a partir de una clase existente.

Las clases no se encuentran aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. 

La herencia organiza y facilita el polimorfismo y el encapsulamiento, permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes.

Esto suele hacerse habitualmente agrupando los objetos en clases y estas 
en árboles o enrejados que reflejan un comportamiento común.

EJEMPLO:
Realizar un ejercicio que imprima nombre y cedula de una persona utilizando 
Herencia.




RESULTADO:




LINK DE DESCARGA DEL EJERCICIO:

http://www.mediafire.com/download/977dn66dtbdrui1/Ejercicio+de+Herencia.rar



PROGRAMA: CÉDULA

EJERCICIO:










































































































RESULTADO:


















LINK DE DESCARGA DEL EJERCICIO:

http://www.mediafire.com/download/f47xi2kuqq4pp3w/Cedula+sin+funciones.rar





PROGRAMACIÓN ORIENTADA A OBJETOS (POO)

¿Que es P.O.O.?

La Programación Orientada a Objetos, es un paradigma de programación que
usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora.

Está basado en varias técnicas, incluyendo herencia, modularidad, polimorfismo, y encapsulamiento. Su uso se popularizó a principios de la década de 1990. Actualmente son muchos los lenguajes de programación que soportan la orientación a objetos.


Reutilización


Capacidad de usar un mismo código para varia complementaciones  para esto se debe tener en cuenta:
Polimorfismo
Genericidad
Operaciones Relacionadas
Caja negra
- Sobrecarga 

Este concepto de POO se puede ver como una intuitiva correspondencia entre un software de simulación de un sistema físico y el sistema físico:
  • Polimorfismo
  • Genericidad
  • Operaciones Relacionadas
  • Caja negra
  • Sobrecarga

Este concepto de POO se puede ver como una intuitiva correspondencia entre un software de simulación de un sistema físico y el sistema físico en sí (o su modelo mecánico).
- Modelo algorítmico
- Objetos de software 
- Modelo mecánico
- Objetos concretos
- Modelo 
- Diagrama
- Abstracción

La re utilización es la principal característica de la POO, la cual se logra mediante:
  • Encapsulación de información
  • Herencia
  • Sobreescritura:
  • Métodos unidos a los objetos
  • Noción de self

jueves, 21 de enero de 2016

ENCAPSULAMIENTO


Definición

Las variables del objeto se localizan en el núcleo del objeto. Los métodos rodean y esconden el núcleo del objeto de otros objetos en el programa.
Al empaquetamiento de las variables de un objeto con la protección de sus métodos se le llama encapsulamiento. 


Formas de encapsular

Estándar: (Predeterminado)
Abierto: Hace que el miembro de la clase pueda ser accedido desde el exterior de la Clase y cualquier parte del programa.
Protegido: Solo es accesible desde la Clase y las clases que heredan a cualquier nivel.
Semi cerrado: Solo es accesible desde la clase heredada.
Cerrado: Solo es accesible desde la Clase.


Existen tres niveles de acceso para el encapsulamiento, los cuales son:

Público (Public): Todos pueden acceder a los datos o métodos de una clase que se definen con este nivel, este es el nivel más bajo, esto es lo que tu quieres que la parte externa vea.
Protegido (Protected): Podemos decir que estás no son de acceso público, solamente son accesibles dentro de su clase y por subclases.

Privado (Private): En este nivel se puede declarar miembros accesibles sólo para la propia clase.

Ejemplo:
Realizar un ejercicio que imprima el nombre "ANDY" y que imprima 89.5 utilizando clases y encapsulamiento.

























Lo madamos a correr.... y LISTO!!!

















LINK DE DESCARGA DEL EJERCICIO:

http://www.mediafire.com/download/kago0x2s7vik4dm/Encapsulamiento.rar



CLASES EN C++


Cómo declarar clases
Para declarar una clase, todo lo que se necesita es escribir es la palabra reservada "class". Por ejemplo, una clase Persona con campos como el nombre, el departamento, la posición, el una función que nos imprima la información de este quedaría así:

class Persona {
char nombre;
char departamento;
char posicion;
long salario;
void Imprimir( Empleado infoEmpleado);
}
NOTA: Se acostumbra que los nombres de las clases se escriban en singular y con la primera letra en MAYÚSCULAS. Por ejemplo, los nombres de una clase de los objetos del aula seran:
- Alumno.
- Profesor.
- Silla.
- Pizarron.

Las variables de miembro son declaradas privadas para que funciones de miembro de otras funciones no tengan acceso a ellas sino a travez de la correspondiente funcion Get o Set. Las funciones de miembro si son declaradas públicas de tal modo que se pueda acceder a ellas desde otras funciones.

La definición de la función PrintInfo puede quedar así:
void Empleado::ImprimirInfo( )
{
   cout << "Nombre: " << m_nombre << '\n';
   cout << "Departamento: " << m_departamento << '\n';
   cout << "Puesto: " << m_posicion << '\n';
   cout << "Salario: " << m_salario << '\n';
}

Los dos dos puntos ( :: ) se denomina operador de resolución de ámbito. Nos indica que la función que estamos definiendo que en este caso es ImprimirInfo, pertenece a la clase Persona.

Ejepmlo:

Realizar una programa que ingrese nombre y edad y luego que los imprima, luego ingresar la altura, ancho y la profundidad de una figura y que imprima el volumen







































Resultado




















Link de descarga del ejercicio:

http://www.mediafire.com/download/eg4nc48tp1xxs6i/Ejercicio+de+Clases.rar