Sunteți pe pagina 1din 5

Ejercicios propuestos

1) Dada una lista enlazada simple con solo nmeros enteros por cada nodo,

encuentre la suma parcial entre los indices [i, j] que representan posiciones
de nodos en la lista, asuma que i>j. Codifique su solucin dentro de un
mtodo que retorne el entero con la suma parcial. Procure validar que los
ndices son valores correctos para la lista.
2) Dado el siguiente encabezado para un mtodo:

void eliminarElemento(Pila *A, int N){}


Asumiendo que la pila maneja nmeros enteros, desarrollar el cuerpo del
mtodo, cuyo objetivo es quitar todos los nodos de la pila A que tengan el valor
N. Puede utilizar las estructuras adicionales que desee para solucionar el
problema.
3) El banco LUCRO posee un sistema capaz de administrar cuentas corrientes.

Durante aos, este sistema se ha utilizado para manejar un solo tipo de


cuenta. Este tipo de cuenta permite realizar depsitos y retiros. En el caso
de los retiros, se puede realizar giros por el monto que se desee, sin
restricciones.
Debido a un cambio en la regulacin existente, el banco se ve forzado a
realizar unos cambios a su estructura de cuentas. Se necesita realizar una
ampliacin al sistema para que maneje dos tipos nuevos de cuentas: Cuenta
Ejecutiva y Cuenta Joven.
La Cuenta Ejecutiva es similar a la cuenta original, pero agrega dos conceptos:
a) Solo se pueden realizar retiros por un monto mximo de $200000, b) Al
realizar un retiro, se debe adicionalmente sustraer un 1% por concepto de
impuesto. Cuando se realiza un retiro, se debe tener presente que el monto
mas el impuesto debe estar cubierto por el saldo. Si se solicita mas de
$200000, se debe imprimir en pantalla Monto no valido
La Cuenta Joven es similar a la Cuenta Ejecutiva, pero el impuesto es del 0.5%.
Adicionalmente, solo se pueden hacer depsitos por un mximo de $50000. En
caso que el monto sea superior, el depsito no se debe realizar y se debe
imprimir en pantalla Monto no vlido.
Para facilitar su tarea, le facilitan el cdigo de las antigas clases Cuenta y
Banco:

class Cuenta
{
protected:
string cliente;
int numero;
double saldo;
string tipo;
public:
Cuenta(string cliente, int numero, double saldo)
{
this->cliente = cliente;
this->numero = numero;
this->saldo = saldo;
this->tipo = Cuenta;
}
void deposito(double monto)
{
//Adiciona la cantidad de monto al saldo de la cuenta
}
void retiro(double monto)
{
//Sustrae la cantidad de monto del saldo. En caso que monto sea superior a saldo, no
se // realiza la operacin y se imprime en pantalla Saldo insuficiente
}
string getTipo()
{
return tipo;
}
int getNumero()
{
return numero;
}
double getSaldo()
{
return saldo;
}
};
class Banco
{
Cuenta *cuentas[100];
public:
Banco()
{
//Se llena el arreglo de cuentas
}
void realizarDeposito(int numero, double monto)
{
/*Busca el nmero de cuenta en el arreglo y deposita el monto. Si no se encuentra la
cuenta, no hacer nada.*/
}
void realizarRetiro(int numero, double monto)
{

/*Se busca la cuenta por el nmero y se retira el monto.. En caso de no haber saldo
Saldo insuficiente.*/
}
};

Dado a que el banco debe an dar servicio a las cuentas viejas (sin cargo por
transaccin y sin lmite), se solicita lo siguiente:

Crear las clases CuentaEjcutiva y CuentaJoven, teniendo en cuenta que


la clase Banco slo puede utilizar un arreglo para manejar todos los tipos
de cuenta
Modificar los atributos de Banco
Modificar los metodos realizarDeposito y realizarRetiro de la clase Banco
para que utilicen los mtodos de los distintos tipos de cuentas segn
corresponda.

4) Una baraja de cartas inglesas se compone de 52 unidades + 2 comodin.

Estas se encuentran divididas en 4 pintas (pica, corazon, diamante y trebol).


A su vez cada pinta se compone de 13 cartas, donde 9 son enumeradas del
2 al 10, y 4 son letras, J, Q, K y A, llamadas jack, queen, king y ace.
El comportamiento de una baraja es equivalente a la estructura Pila. Defina
una clase llamada Carta, que contiene los atributos de esta, y una referencia
(puntero) a la carta siguiente de la Pila. Defina la clase Baraja, que posee los
mtodos push() (insertar encima), pop() (quitar de encima), isEmpty() (true si
esta vacia) de una clase Pila que posee Cartas. El constructor de la clase Baraja
debe generar todas las cartas y ponerlas en su baraja.
5) El Demre entreg los resultados de las postulaciones a las 4 Ingenieras de

la UDP (industrial, informtica, oocc, pcomn). Por cada alumno se tiene rut,
nombre, puntaje de ingreso e ingeniera en la que qued seleccionado (lista
consideran slo seleccionados).
El centro de computacin dispuso de la informacin en memoria en una
estructura con 4 listas enlazadas ordenadas por puntaje de ingreso, cada lista
representa una de las ingenieras.
De acuerdo a lo anterior se pide:
La Universidad ha permitido que los alumnos seleccionados en una
ingeniera puedan cambiarse directamente a otra siempre y cuando su
puntaje supere el puntaje de corte de la ingeniera a la que desea
acceder, en tal caso el alumno es eliminado de la lista original y ubicado
segn puntaje en la nueva lista. De acuerdo a lo anterior se pide
construir el mtodo traslado que recibir como parmetro el rut del
alumno, la carrera origen y destino. Importante: Podr construir mtodos

adicionales para simplificar su respuesta. Comente el cdigo adicional


que haga.
Considere que:
La clase Lista tiene los siguientes mtodos:
Alumno* get(int i) // Devuelve el alumno en la posicin i
Int Size() // Devuelve la cantidad de alumnos
Void Insertar(Alumno * A) //Inserta un alumno a la lista
Void remover(int i) //Elimina el alumno en la posicin i
Void removerB(Alumno* A) //Busca y elimina al alumno.
Bool Buscar(Alumno *A)// retorna true si el alumno est en la lista.
Void InsertarI(Alumno *A, int i) // Inserta al alumno en la posicin i.

La clase Alumno tiene los siguientes mtodos:


void
int
void
int
void
String

setRut(int r)
getRut()
setPtj(int p)
getPtj()
setNom(String n)
getNom()

6) Su nombre es Editoriano (primo de Pretoriano, el Estratega). Su funcin es

la de hacer impresiones sobre documentos acadmicos que los profesores y


alumnos de ltimo ao le piden.
Los tipos de documentos sobre los que efecta sus tareas son:

Artculos cientficos
Libros

Todos estos documentos constan de un cuerpo, compuesto de a lo ms 500


caracteres. Ahora bien, los artculos cientficos tienen adems un resumen que
puede constar de hasta 50 letras, referencias (hasta 10 letras) y el nmero de
pginas.
Por su parte, los libros son documentos que exhiben una introduccin de hasta
100 letras, agradecimientos (hasta 50 letras), referencias (hasta 30 letras),
nmero de captulos y el nmero de pginas.
Asimismo, Ud. como ayudante de impresin de los documentos efecta esa
tarea sobre los documentos.
Su tarea consiste en:

Hacer un diagrama de clases de la situacin planteada (podra unirse


con la parte 2) o reemplazarse).
Escribir las clases del problema teniendo en cuenta que existe una
estructura de herencia. No incluya los getters, los setters (se suponen
implementados).

Escriba al menos un constructor para cada clase. Recuerde adems que


Editoriano debe ser una clase.
Implementar el mtodo void imprimir() para la clase Documento. Dicho
mtodo debe imprimir todos los datos del documento. Recuerde que ese
mtodo se heredar por parte de todos los tipos de documentos.
Implementar el mtodo void imprimir(Documento d) en la clase
Editoriano que imprime todos los datos del documento d.
Implementar un main que por lo menos cree un documento de cada tipo.
Imprima todos los elementos utilizando un arreglo de documentos.

Suponga para todas las partes de la pregunta que todos los datos de las clases
ya han sido ingresados.

S-ar putea să vă placă și