Está en la página 1de 5

UNIVERSIDAD ABIERTA

INTERAMERICANA
PRIMER PARCIAL DE
PROGRAMACIÓN 1
Carrera: Analista programador
Comision: 1-K

Profesor: Gaston Weingand


Teoría
1. ¿Qué es una clase? Ejemplifique

2. ¿Qué es un objeto? Muestre una porción de código de ejemplo relacionado con el punto anterior.

3. ¿Cuál es la diferencia entre un atributo y una propiedad?

4. ¿Qué es un constructor y para que se utiliza la sobrecarga de constructores?

5. ¿Qué es una lista enlazada y qué la diferencia de un vector?

6. ¿En qué se diferencian las estructuras de tipo Pila y Cola?

7. ¿Por qué es conveniente separar el proyecto de librería, y utilizar solamente las clases públicas
como en los ejemplos vistos en clase para las listas, colas y pilas?

1) Las clases son una abstracción de cosas de la vida real. Una clase es un conjunto de datos
organizados para crear lo que se conoce como objetos. La clase determina la forma en las cuales
van a estar definidas las propiedades y comportamientos de un objeto que se crean a partir de esa
clase. Cada clase es como un molde que va a definir la estructura y el comportamiento de los
mismos. Por ejemplo, necesito crear una clase Auto en la cual voy a necesitar definir sus
propiedades y comportamientos. Para ello, armo una estructura que va a ser común a todos los autos
que cree a partir de la clase Auto. En esa clase van a estar definidos las propiedades más comunes a
un auto y sus funciones.

2) En programación orientada a objetos, un objeto es la instancia que se crea a partir de una clase.
Es decir, que yo como programador a partir de una estructura de código definida previamente,
puedo crear nuevos objetos. No hay límite para la cantidad de objetos que pueda crear. Siempre y
cuando se respete la estructura de código o el plano con el cual fue construida esa clase. Tomando
como ejemplo la clase Auto, esta es la forma en la que puedo crear objetos:

class Auto {

string ColorAuto {get; set;};


public int Ruedas {get;set;};
public int Ventanas {get;set;};
public int Puertas {get;set;};
public int Motor {get;set;};
public bool Encendido {get; set;};
public bool Aceleracion {get; set;};
/*Método constructor*/
public Auto(string colorAuto, int ruedas, int ventanas, int, puertas, int motor, bool
aceleracion, bool encendido)
{
ColorAuto = colorAuto;
Ruedas = ruedas;
Ventanas = ventanas;
Puertas = puertas;
Motor = motor;
Aceleracion = aceleracion;
Encendido = encendido;
}
static void Encender()
{
return Encender();
}
static void Apagar()
{
return Apagar();
}
static void Acelerar(){
return Acelerar;
}

static void Frenar()


{
return Frenar;
}

static void Doblar()


{
return Doblar;
}

/* Y así creamos un objeto a partir de la clase Auto */


class Program
{

static void Main()


{

Auto volkswagen = new Auto();


volkswagen.ColorAuto = “rojo”;
volkswagen.Ruedas = 4;
volkswagen.Ventanas = 6;
vokswagen.Puertas = 5;
volkswagen.Motor = 1;

if(volkswagen.Encendido == 0)
return volkswagen.Encender();
else if(volkswagen.acelerar == 0 && volkswagen.Encendido == 1)
{
return volkswagen.Apagar();
}
}
}

3) La diferencia entre un atributo y una propiedad es que los atributos son porciones de código que
proporcionan información adicional sobre una clase mientras que las propiedades pertenecen a una
clase la cual permiten encapsular campos o valores y permiten acceder y modificar esos valores.
También se caracteriza en que las propiedades las utilizamos para controlar el acceso a los datos. Es
decir, las propiedades son eventos que se disparan cuando el usuario interactúa con el programa
mientras que los atributos son las características del programa.

4)Un constructor es un método que se utiliza para inicializar objetos dentro de una clase. Al
inicializarlas le damos un valor inicial por el cual los mismos van a tener un punto de partida para la
asignación o cambio de estado que tendrán en un futuro.
La sobrecarga de constructores se utiliza para crear objetos de una misma clase de diferentes
maneras según la necesidad del programa. Es decir, la sobrecarga de constructores es la capacidad
de definir múltiples constructores en una clase con diferentes conjuntos de parámetros para
adaptarse a diferentes escenarios de creación de objetos.

5) Una lista enlazada es una secuencia de nodos en los que se guardan campos de datos arbitrarios y
una o dos referencias, enlaces o punteros al nodo posterior o anterior. La principal diferencia con los
vectores radica en que el orden de los elementos enlazados puede ser diferente al orden de
almacenamiento en la memoria, permitiendo que el orden del recorrido de la lista sea diferente al de
almacenamiento. Para explicarlo más simple los nodos en una lista enlazada no están almacenados
de manera contigua a diferencia de los vectores. Cada nodo puede estar almacenado en cualquier
parte de la memoria y a través de un puntero,referencia o enlace a esa dirección de memoria
conectarse. También otra diferencia radica en la inserción y eliminación de elementos, ya que en
vectores se necesita desplazar los elementos ya sea para hacer espacio o llenar ese espacio vacío,
mientras que en las listas enlazadas solo se necesita actualizar las referencias en los nodos. Otra
característica y diferencia entre vectores y listas enlazadas es que los vectores permiten acceder de
forma aleatoria a los elementos a través de un índice ya que los elementos están almacenados de
forma contigua. En cambio, las listas enlazadas no pueden acceder de forma aleatoria por lo que
deben recorrer la lista desde el inicio o un nodo de referencia para acceder al elemento que se desea
buscar.

6) Las estructuras dinámicas de tipo pila son aquellas en las cuales los elementos son almacenados
de forma tal que unicamente se puedan agregar o sacar elementos es desde el tope o cima de la pila.
Esta característica hace que el último elemento insertado en la pila es el primero en salir. Este tipo
de estructura se denomina LIFO (Last In First Out) que se traduce en “Ultimo en entrar primero en
salir” explicando lo mencionado anteriormente. Este tipo de estructuras de datos se pueden
implementar en arrays o en la gestión de llamadas a funciones, implementacion de algoritmos
recursivos, etc. Las operaciones básicas de una pila son:
Push: que permite agregar elementos en la parte superior de la pila;
Pop: quita el elemento en la parte superior de la pila;
Peek: que se usa para obtener el valor del elemento superior de la pila;
Empty: que indica si la pila está vacía;
Full: que indica si la pila está llena;
En cambio, las colas son un tipo de estructura dinámica en la que el primer elemento que se inserta
es el primero en ser eliminado, siguiendo el principio de FIFO(First In First Out), que traducido
significa primero que entra primero que sale, y como bien lo explica se utiliza para mantener un
orden en el nivel de llegada, como ser para la gestión de tareas o procesos que requieran un orden
de prioridades para cumplir con el requerimiento. Las operaciones básicas de las colas son:
Enqueue: agrega un elemento al final de la cola;
Dequeue: Elimina el elemento al frente de la cola;
Peek: obtiene el valor del elemento al frente de la cola;
Empty: verifica si la cola está vacía;
Full: verifica si la cola está llena;

7) Al separar el proyecto de librería, se promueve la modularización del código. Es decir puedo


separar el programa en módulos que se comunican entre sí a través de la invocación a diferentes
clases mediante la importación de los mismos. Esto facilita el mantenimiento y la reutilización del
código y una mejor estructuración del mismo, mejorando así la legibilidad y mantenimiento del
proyecto. Al utilizar las clases públicas, se permite utilizar las mismas en múltiples proyectos. Esto
evita la duplicación de código y se ahorra tiempo en el desarrollo de la aplicación que se busca
crear. Al ser públicas, podemos acceder a los métodos y atributos de las clases de forma tal que
reutilicemos el código sin tener que estar volviendo a escribir lo mismo que en otra clase. Se puede
utilizar para la interoperatividad entre distintos proyectos y así mismo podemos encapsular de
forma controlada dentro de la misma clase aquellos elementos que solo se requieran utilizar en un
contexto determinado.

También podría gustarte