lunes, 11 de noviembre de 2024

Obra Social - software para llevar clientes y prestaciones determinadas

 

  1. (30) Programe un vector dinámico con tipos template que permita: 

    1. Agregar un elemento.

    2. Recuperar un elemento. 

    3. Dado un elemento retorne verdadero si este está contenido en el vector y falso en el caso contrario. 

  2. (40) Una Obra Social lo contrata para realizar un software que permita saber si un cliente que tiene un id y un nombre, cuenta con una prestación determinada. La obra social tiene 3 tipos de clientes: 

    1. plan básico: cuenta con las prestaciones “consulta médica”, “remedios gratuitos”. 

    2. plan medio: cuenta con las prestaciones de plan básico más “odontología” y “oftalmología”. 

    3. plan premium: cuenta con las prestaciones de plan medio más “internación”. 

Diseñe y programe:

  • Un modelo que permita cargar los usuarios y sus prestaciones. 

  • Programe una función que dado un usuario y una prestación indique si esta prestación es prestada.  

Para esta actividad puede utilizar el vector dinámico programado en el punto 1.  

  1. (15) Teoría: Indique si es necesario utilizar herencia o composición o las dos en el punto anterior. Y qué ventajas o desventajas le aportan al diseño del punto 1.  

  2. (15) Indique cuál es el resultado del siguiente algoritmo para los parámetros: 10, 5, 7. 


int X(int n) {

    if (n == 0 || n == 1) 

        return n;

    else

        return X(n - 1) + X(n - 2)

}


viernes, 1 de noviembre de 2024

Diseñar y programar un sistema de votación de series y películas

 Netflix te ha contratado para diseñar y programar un sistema de votación de sus series y películas. En esta plataforma, los usuarios pueden votar las series y películas que han visto, asignándoles una calificación del 0 al 5. Dicha empresa tiene los datos de sus series y películas en un archivo binario con el siguiente formato: 

int nro

char[200] nombre

char tipo // s : serie, p : película. 

Y los datos de las votaciones se encuentran en otro archivo binario con el siguiente formato: 

int nro

int votación

Donde nro es el identificador de la pelicula o serie. Además la valoración de una película o serie está dada por el promedio de sus votaciones. 

1. (30) Realice el diseño que lea los archivos y permita mostrar el nombre de las películas o series y su valoración. 

2. (25) Escriba un archivo de texto que permita saber el nombre de las películas o series y su valoración con el siguiente formato: “Nombre ………. valoración”.

3. (30) Realice funciones usando stl :

(10) Que obtenga las 5 películas o series con mayor valoración.

(10) Que obtenga el o las películas o series más votadas.

(10) Que obtenga la cantidad de votos de las series y la cantidad de votos de las películas (utilice map)

4. (15) Conteste: ¿en qué casos utilizaría archivo binario y en qué casos archivo de texto? ¿Y por qué?   


lunes, 23 de septiembre de 2024

Empresa para desarrollar software que permita cargar una encuesta

Una empresa lo contrata para realizar un software que permita cargar una encuesta. La encuesta tiene preguntas y cada pregunta contiene diferentes respuestas. A la vez algunas respuestas pueden contener preguntas. 

Por ejemplo : Tiene teléfono móvil? si la respuesta es afirmativa, se desprende la pregunta: Cual marca? y si la respuesta es negativa, no se continua preguntando sobre el tema. 

(30) Realice un diseño que permita guardar las preguntas y respuestas cargadas en un o varios archivos binarios. 

(30) Realice un procedimiento que permita responder dicha encuesta. Para este procedimiento no es necesario guardar las respuestas. 

(20) Utilizando STL realice:

una función que indique cual es o son las preguntas con más respuestas. 

una función que indique las respuestas que tienen preguntas encadenadas.  

(20) Explique porque son necesarias las clases template. ¿Cuándo las utilizaría? ¿Cuáles son sus ventajas y desventajas? 

Libre: Realice una función que guarde en un archivo de texto todas las preguntas y respuestas posibles. Para esto sobreescriba el operador << 

miércoles, 18 de septiembre de 2024

Empresa de viajes - Software que permita calcular los precios de sus viajes y el tiempo de los mismos

Una empresa de viajes lo contrata para hacer un software que permita calcular los precios de sus viajes y el tiempo de los mismos (en horas). Los viajes pueden ser : 

  1. En avión, la empresa coordina los costos de ida y de vuelta con la aerolínea disponible y el precio del viaje es este costo más un 20%. El tiempo de viaje se calcula como el tiempo de vuelo más 2 horas. 

  2. En colectivo, la empresa cobra $ 8 por kilómetro de viaje. Y el tiempo, es un dato que se ingresa. 

  3. En avión y colectivo, la empresa coordina los costos de ida y de vuelta con la aerolínea disponible y el precio del viaje es este costo más un 20% y $ 8 por kilómetro de viaje en colectivo. El tiempo de viaje se calcula como el tiempo de vuelo más 2 horas, más las horas de colectivo. 

  1. 22) Realice un diseño y realice una función que permita cargar los viajes y calcule los precios de los mismos. 

  2. 22) Realice una función que permita guardar los viajes (nombre, el tipo, sus costos(dependiendo del tipo), horas de viaje y su precio). Diseñe el o los archivos para guardar la información de forma óptima. 

  3. 20) Realice procedimiento con funciones STL que permita saber: 

    1. Los 5 viajes más baratos. 

    2. El viaje que lleva más tiempo.

    3. Los viajes que se pueden realizar en cierto tiempo.

  4. 20) Realice una estructura template que permita mantener un conjunto de tuplas clave-valor, dicha estructura debe permitir (no utilice STL) :

    1. Agregar un elemento si no existe la clave.

    2. Retornar un elemento a partir de una clave.

    3. Eliminar un elemento a partir de una clave.

  5. 16) Indique:

    1. ¿por qué los template son importantes en un lenguaje de tipado estático?

    2. ¿qué técnicas de reutilización de código conoce y como reutilizar código? ejemplifique.  


Libre: La empresa lo vuelve a contratar dado que tiene un nuevo tipo de viajes lo cuales son paquetes de viajes que están compuestos por un conjunto de viajes de cualquier tipo y el precio y el tiempo es la suma de todos los precios y los tiempos de los viajes que lo componen. Por ejemplo “tur regional”, está compuesto por el viaje “Paraná-Crespo”, “Crespo-Diamante”, “Diamante-Paraná”.  Diseñe la solución.


Empresa vitivinícola - Software que controle sus líneas de vinos

Una empresa vitivinícola lo contrata para realizar un software que controle sus líneas de vinos, las cuales son las siguientes :
  • de mesa : tiene un precio de 120 pesos por litro y está un año en barrica
  • premium: tiene un precio de 200 pesos por litro y está 2 años en barrica
  • especial: tiene un precio de 320 pesos por litro y está 2 años en barrica y 1 en botella.
La empresa guarda la información de su producción en un archivo binario, con el siguiente formato:

       nro : int
       Tipo : char //M(mesa), P (premium), E(especial)
       cantidad_litros: int
       anio_producción: int

(22) Realice el diseño que permita saber la cantidad de litros que se puede vender en un año determinado y el monto que obtendría si se venden todos los litros.

(22) Realice el procedimiento que lea el archivo binario y escriba un archivo de texto con el siguiente formato para los años 2020, 2021, 2022, 2023 :

       Año….litros…... Monto

(22) Realice funciones que permiten saber:

       Los 5 años que se produjeron más litros
       El año que se podrá vender más vino
       El año que se podrá obtener mayor monto de venta.

(18) (no utilice STL) Programe una estructura template que represente una cola. Dicha estructura debe permitir:

       agregar un elemento,
       obtener un elemento.


(16) Indique:
       ¿por qué los template son importantes en un lenguaje de tipado estático?
       ¿cómo implementa c++ el polimorfismo?

Libre: La empresa vitivinícola lo contrata nuevamente ya que formará una nueva línea de venta, dicha línea es un paquete que contiene los 3 tipos de vinos (M(mesa), P (premium) y E(especial)). Diseñe dicha solución y programe un método que permita saber cuántos paquetes se pueden vender en un año determinado.

Sofware que mantenga las dependencias de paquetes de software

 Una empresa lo contrata para diseñar un sofware que mantenga las dependencias de paquetes de software. Un paquete de software o librería puede tener dependencias de otros paquetes para funcionar por ejemplo el paquete scala, necesita el paquete jdk para funcionar. La empresa guarda la información de los paquetes y dependencias en los siguientes archivos : 


paquetes.dat

dependencias.dat

codigo : char[100]

nombre : char[100]

version: int 

codigoPaquete: char[100]

codigoPaqueteDependencia:char[100]


Note que un paquete puede depender de varios paquetes y a la vez un paquete puede ser utilizado por varios paquetes dependientes, es una relación muchos a muchos. Por ejemplo scala depende de openjdk y kotlin depende también de openjdk pero también depende del “idea”. También existen dependencias transitivas, por ejemplo el paquete intellij depende de kotlin y por ende tiene una dependencia transitiva con openjdk. 


  1. (22) Realice el diseño de clases e implemente la función que permita saber todas las dependencias de un paquete (incluyendo las transitivas), dado el código del paquete.

  2. (22) Escriba un archivo de texto que permita saber el árbol de dependencias de un paquete determinado. Para realizar esto sobreescriba el operador <<. El archivo debe llamarse igual que el código del paquete pasado por parámetro y debe tener el siguiente formato: 

nombre paquete

dependencia 1

dependencia 2

dependencia de 2  


  1. (18) Realice procedimiento con funciones STL que permita saber: 

    1. Los 5 paquetes con mayor cantidad de dependencias no transitivas.

    2. Todos los paquetes que no tienen dependencias. 

  2. (22) (no utilice STL) Programe una estructura template que represente un vector dinámico ordenado. Dicha estructura debe permitir:

    1. agregar un elemento. 

    2. eliminar un elemento por índice.

    3. imprimir todos los elementos de forma ordenada

    4. Conteste: ¿Que operador debería sobreescribir al tipo T para poder utilizar esta estructura?

  3. (16) Conteste: ¿Cuando es necesario utilizar composición y como este ayuda a reutilizar código? El polimorfismo simplifica el diseño del código, como? justifique.


Libre : La empresa lo vuelve a contratar para el diseño de una nueva entidad que es el conjunto de paquetes. Dicha entidad debe permitir instalar todos los paquetes dependientes de dicho conjunto, este tiene un codigo, nombre y versión. Diseñe la solución y modifique los archivos.  


Sistema Single sign-on

Una empresa lo contrata para programar un sistema Single sign-on. El sistema debe determinar si el usuario y password es correcta y si el usuario tiene permiso para acceder a una url determinada. 

Para ello el sistema debe leer 2 archivos: 


usuario (usuario.dat)

permisos (permisos.dat)

nombre : char(20)

pass: char(100)

tipo_usuario: char 

nombre_usuario: char(20)

url : char(150)


Existen 2 tipos de usuarios, lo cual está registrado en el campo “tipo_usuario” :

“A” administrador : puede acceder a cualquier URL

“N” normal: el usuario y la url debe estar contenido en el archivo de permisos. 


  1. (20) Realice una función que dado un nombre de usuario, un password y una url permita saber si tiene permisos o no. Además explique: ¿es necesario utilizar polimorfismo?

  2. (20) Escriba un archivo de texto que permita saber qué usuario accedió a que url con el siguiente formato: nombre de usuario -> url. Sobreescriba el operador << 

  3. (20) Realice procedimiento que permita saber: 

    1. Los 5 usuarios no administradores con más permisos. 

    2. La URL a la cual más usuarios tienen acceso. 

  4. (20) (no utilice STL) Programe una estructura template que represente un Conjunto, es decir, una estructura que no debe permitir repetidos. Dicha estructura debe permitir:

    1. agregar un elemento. 

    2. eliminar un elemento.

    3. Conteste: ¿Que operador debería sobreescribir al tipo T para poder utilizar esta estructura (es decir, que no admita repetidos)?

  5. (14) Conteste: ¿Cuando es necesario utilizar polimorfismo y como este ayuda a reutilizar código? El polimorfismo simplifica el diseño del código, como? justifique.


Libre: La empresa lo vuelve a contratar dado que quiere implementar un nuevo tipo de usuario el cual agrupe a un conjunto de usuarios, por ejemplo. Usuario de inventario el cual podrá acceder a todas las url de todos los usuarios que trabajan con el inventario. Diseñe una solución.  


Software educativo para mostrar las categorías taxonómicas de los seres vivos

La empresa educarBio lo contrata para desarrollar un software educativo cuyo objetivo es mostrar las categorías taxonómicas de los seres viv...