Ejercicios Para Resolver

Ejercicios para resolver 1. Si se tiene la siguiente serie: Se le solicita a usted un programa en C++ y en entorno con

Views 116 Downloads 0 File size 320KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Ejercicios para resolver 1.

Si se tiene la siguiente serie:

Se le solicita a usted un programa en C++ y en entorno consola que calcule el valor de la sumatoria de los términos de la serie, si se tiene como datos el número de términos de la serie n (entero positivo) y el valor de a y b (a será una valor real entre 1 y 5). No olvide que el programa deberá realizar todas las validaciones necesarias. Ejemplo 1: Ingrese el valor de N: -6 (Error) Ingrese el valor de N: 1 Ingrese el valor de a: 3.2 Ingrese el valor de b: 1 Resultado: 1.6 2. Implemente una lista simplemente enlazada con templates para almacenar cada término del ejercicio anterior, guardar la lista en un archivo. 3. El precio del terreno e inmueble en el distrito de Huanchaco se determina según la siguiente tabla: Categoría Comercial

Zona A

B

Residencial

A

B

Tipo Terreno Casa Departamento Terreno Casa Departamento Terreno Casa Departamento Terreno Casa Departamento

Precio x m2 en $ 2200 2500 2100 1300 1500 1200 2100 2500 2100 1500 1600 1300

Dados la categoría, zona, tipo y el área del terreno o inmueble, escriba un programa en Cobol que determine a cuánto asciende el monto que deberá pagar por adquirirlo. Recuerde que el programa deberá realizar todas las validaciones necesarias. 4. Una empresa de telefonía ha decidido realizar una encuesta a sus clientes, con el fin de medir el nivel de satisfacción por el servicio brindado. Por esta razón ha decidido encuestar a N clientes (máximo 100). La encuesta consistió en preguntarle a cada uno de ellos lo siguiente:  ¿Desde cuándo es cliente? Respuestas posibles: A. Menos de un año B. Entre 1 y 3 años C. Entre 4 y 8 años D. Más de 8 años  ¿Cuál es su grado de satisfacción con el servicio brindado?

Respuestas posibles: A. Excelente B. Muy bueno C. Bueno D. Regular E. Malo  Edad del cliente (entre 18 y 60 años) La empresa de telefonía les ha solicitado a los alumnos del curso de Programación de la UPAO que elaboren un programa en C++, que procese la información de los clientes encuestados para lo cual se le pide:  Implementar la función Generar_y_Mostrar, que permita generar de forma aleatoria e imprimir los datos de los N clientes encuestados que se almacenan en el vector VEncuestas.  Implementar la función Porcentaje_4y8_malo, que determine el porcentaje del total de encuestados, son clientes entre 4 y 8 años y su grado de satisfacción es malo.  Implementar la función Promedio_edad, que determine el promedio de edad de los clientes que consideran que el servicio brindado es excelente.  Implementar la función Listado_ordenado, que imprima el listado de los clientes encuestados ordenado ascendentemente por la edad.  Implementar la función principal main que solicite el ingreso del valor de N y luego realice el llamado correcto de las funciones anteriores. Recuerde que la aplicación deberá validar el ingreso de datos. Ejemplo: Ingrese Número de clientes: 125 Ingrese Número de clientes: 4 Entonces los valores generados aleatoriamente fueron: Cliente 1 ¿Desde cuándo es cliente? D ¿Cuál es su grado de satisfacción con el servicio brindado? B Edad: 35 Cliente 2 ¿Desde cuándo es cliente? A ¿Cuál es su grado de satisfacción con el servicio brindado? C Edad: 19 Cliente 3 ¿Desde cuándo es cliente? C ¿Cuál es su grado de satisfacción con el servicio brindado? E Edad: 50 Cliente 4 ¿Desde cuándo es cliente? B ¿Cuál es su grado de satisfacción con el servicio brindado? A Edad: 22

Resultados: Porcentaje de clientes entre 4 y 8 años y grado de satisfacción malo: 25 % Promedio de edad de clientes que consideran excelente el servicio: 22 Listado ordenado: Edad 19 22 35 50

Tiempo A B D C

Grado C A B E

5. El Gerente de una importante empresa de venta de acabados para la construcción necesita llevar un control sobre los gastos de agua, luz y teléfono que tiene cada una las tiendas ubicadas en todo el país. De cada tienda, que en total son 25, se debe almacenar la siguiente información: su código, el consumo de agua en m3, el consumo de luz en Kw y el número de minutos consumidos en llamadas realizadas desde el teléfono ubicado en la tienda. Se sabe que la tarifa del agua es de 3.35 soles por m3 , de la luz es de 0.45 soles por Kw y la del teléfono es de 0.15 soles por minuto. Para ello se le pide implementar en C++, un programa que permita:  

   

Generar y mostrar un vector de 25 elementos que contenga los códigos de las tiendas. Se sabe que los códigos de las tiendas empezarán en el valor 1000. Generar y mostrar una matriz de 25 x 3, que contenga de forma aleatoria el consumo de agua en m3 (valor entre 5 y 200), el consumo de luz en Kw (valor entre 10 y 300) y el número de minutos consumidos en llamadas por cada tienda (número entre 30 y 500). Determinar y mostrar el código o códigos de las tiendas que tienen el menor número de minutos consumidos en llamadas. Determinar y mostrar para cada tienda el monto total de gastos por consumo de agua, luz y teléfono. El monto total se calcula como: ∑consumo * tarifa. Determinar y mostrar el código o códigos de las tiendas que tienen el mayor monto total de gastos. Determinar y mostrar el consumo promedio de agua, consumo promedio de luz y promedio de minutos consumidos en llamadas.

Por ejemplo el vector y matriz generada podrían ser los siguientes:

6. Descifrando mensajes ocultos Se requiere descifrar mensajes ocultos de un mensaje. El mensaje es un conjunto de letras mayúsculas de longitud variable entre 20 a 30 caracteres. Por ejemplo el viernes llegó el siguiente mensaje de longitud 22 B

F

E

U

P

A

O

D

V

U

J

K

Q

L

C

B

E

S

J

A

J

B

O

N

C

Q

E

T

J

S

W

L

El sábado llegó el siguiente mensaje de longitud 20 Q

I

E

C

P

S

O

I

V

S

Conocedores de su habilidad para programar le solicitan construir un programa para descifrar los mensajes. Si en el mensaje se encuentran de forma consecutiva las siguientes letras: U, P,A,O imprimir “ES UN ALUMNO”. Si en el mensaje se encuentran de forma alternada las siguientes letras: I,C,S,I imprimir: “ES UN ALUMNO DE SISTEMAS” Tener en cuenta que el programa funciona las 24 horas y los 365 días del año en búsqueda del mensaje oculto. (Ciclo repetitivo infinito) El programa deberá implementar, de forma obligatoria, las siguientes funciones: 

void Generar_Mensaje(char *Mensaje, int longitud_mensaje)

Esta función genera un arreglo de caracteres aleatorios en el rango de ‘A’ a ‘Z’ y con una longitud que está señalada por el parámetro. 

void Imprimir_Mensaje(char *Mensaje, int longitud_mensaje)

Esta función imprime el mensaje. 

bool Existe_mensaje_consecutivo(char *Mensaje, int longitud_mensaje)

Esta función recibe como parámetros un arreglo que representa el mensaje y la longitud del mismo. La función debe devolver un valor true o false. Si encuentra las letras U,P,A,O retorna true de lo contrario false. 

bool Existe_mensaje_alterno(char *Mensaje, int longitud_mensaje)

Esta función recibe como parámetros un arreglo que representa el mensaje y la longitud del mismo. La función debe devolver un valor true o false. Si encuentra las letras I,C,S,I retorna true de lo contrario false.

7. Una empresa desea llevar un control de las tardanzas de cada uno de sus empleados, para lo cual ha registrado información en un arreglo de estructuras. De cada empleado se guarda el Número de horas semanales que trabaja un empleado, la oficina en la que trabaja el empleado y el Número de minutos de tardanza a la semana. Se solicita que elabore un programa en C++ que almacene la información de un conjunto de empleados de la empresa. Para ello debe tener en cuenta lo siguiente.  

La cantidad de datos del arreglo deber ser 15, que representa el número de empleados con los que realizaremos el análisis. El código de cada empleado es el índice en el arreglo

Generar los valores para cada dato del empleado de forma aleatoria. Para las horas debe ser un valor entre 20 y 50. En el caso de los minutos deben ser valores que se encuentren en el rango de 0 a 180. En el caso de la oficina existe solo (C)ontabilidad, (S)istemas o (L)ogística.

Ejemplo

Para realizar el programa deberá implementar lo siguiente:     



Una función genera_arreglo que permita generar los datos del arreglo. Una función imprime_arreglo que permita imprimir los datos del arreglo generado. Una función empleados_mas_tardones que permita mostrar el código o códigos de los empleados que tienen la mayor cantidad de minutos de tardanza. Una función promedio_de_horas_por_oficina que permita mostrar el promedio de las horas trabajadas por cada oficina. Una función empleados_puntuales que determine el código o códigos de los empleados que nunca tienen tardanzas y en cuyo caso debe mostrar el mensaje “EMPLEADO PUNTUAL” indicando el código, sus horas trabajadas y oficina a la que pertenece. Una función ordena_arreglo( ) que permita ordenar el arreglo de manera descendente en base a la oficina y a igual oficina, por los minutos de tardanza en forma ascendente y los muestre por pantalla.

NOTA: En las funciones puede utilizar los parámetros que considere necesarios.

8. Se le ha solicitado a usted desplazar un móvil (*) en el camino mostrado, que está pintado de color gris, para lo cual debe emplear únicamente las teclas direccionales. El móvil avanza una sola posición en una dirección cada vez que pulsa una tecla direccional. Si el móvil se sale del camino, debe de regresar a su posición inicial (Por ejemplo, el móvil debe colocarse en la Fila 8, Columna 10 que es su posición inicial). Además existe un enemigo (☺) que se desplaza por sí solo verticalmente de arriba hacia abajo y viceversa sin salirse del camino. Si el móvil choca con el enemigo, el móvil vuelve a su posición inicial. Para ello le solicita hacer un programa en C++, en entorno consola y basado en funciones, que realice el desplazamiento del móvil según las condiciones dadas. Para realizar el programa deberá implementar lo siguiente:

 



Una función genera_muestra_matriz, que teniendo como parámetro una matriz de 20 x 23, la inicialice representando el tablero de la Figura 1 y lo muestre. Una función desplazar_movil_y_enemigo, que teniendo como parámetro una matriz de 20 x 23 y la posición inicial del móvil, permita desplazar el móvil utilizando las teclas direccionales. Además debe desplazar el enemigo verticalmente de arriba hacia abajo y viceversa, sin salir del camino. Si el móvil se sale del camino o choca con el enemigo, debe regresar a su posición inicial. La función main que solicite la posición inicial del móvil y luego realice el llamado correcto de las funciones anteriores para desplazar el móvil sobre el camino según las indicaciones dadas.

9. El gerente de la empresa Paltas SAC está interesado en analizar de manera comparativa las ventas mensuales de los dos últimos años (2015 y 2016). Conocedor del prestigio de los estudiantes de programación de la UPAO, le ha encargado a usted la tarea de generar dos gráficos de barra en paralelo, a partir de la información de 2 Arreglos de 12 elementos, que guarda la información de las ventas del producto K en los 24 meses a analizar:

El año donde se realizó la mayor venta fue en el 2015 Se le solicita que escriba un programa en C++ que realice lo solicitado, para lo cual se le pide que implemente: Una función GeneraVectores: Recibe 2 vectores y genera aleatoriamente sus ventas mensuales con valores enteros entre 0 y 30.  Una función ImprimeBarras: Recibe 1 vector, el año y la posición (x, y) en la pantalla donde se colocará el grafico de barras correspondiente a dicho vector, incluyendo el título de “Ventas del año XXXX”.  Una función MayorVenta: Recibe 2 vectores e imprime en función a los datos de los vectores en qué año se realizó la mayor venta.  La función principal que llame a las funciones anteriores de manera lógica para mostrar en la pantalla los gráficos y resultados tal como se muestra en el ejemplo.

10. Escriba un programa en C++ que maneje la información de N productos (como máximo 100) que comercializa una empresa. Para ello se tiene: a) Un vector con la información de los códigos de los productos. b) Una matriz con el monto de las ventas de los N productos de los 4 trimestres del año 2015. c) Una matriz con el monto de las ventas de los N productos de los 4 trimestres del año 2016. Se pide lo siguiente:     

Generar el vector de Códigos para los N productos, empezando secuencialmente desde 100 Generar de manera aleatoria los montos de las ventas de ambas matrices (el monto de venta estará entre 100 y 1000). Dado el código de un producto, buscar si el código está en la lista de productos. De encontrarse, mostrar los montos de ventas de los 4 trimestres del año 2016. Si no se encuentra, mostrar un mensaje. Calcular el promedio de las ventas durante el tercer trimestre del año 2015. Mostar el o códigos de los productos que obtuvieron la mayor venta total (suma de lo vendido en los 4 trimestres) durante el año 2015.

11. El entrenador de un equipo de futbol que tiene un plantel de N jugadores (N no mayor de 25) desea llevar un control de los minutos jugados por cada uno de ellos durante un campeonato. De cada jugador se conoce:  El puesto en el que juega Arquero (A), Defensa (D), Mediocampo (M) o Delantero (E).  La cantidad de minutos jugados durante el campeonato (debe ser un valor entre 0 y 1000). Se le solicita que escriba un programa en C++ que procese la información de los jugadores para lo cual se le pide que implemente:  Una función GenerarDatos, que permita generar aleatoriamente los datos de los 25 jugadores en el vector VJugadores.  Una función Lista_MayorTiempo, que emita un listado en donde se muestre el puesto del jugador y los minutos jugados de aquellos jugadores que tengan la mayor cantidad de minutos jugados.  Una función Total_PuestosyMinutos, que recibe el vector y determine y muestre el número de jugadores y el total de minutos jugados para cada puesto.  La función principal main que solicite el número de jugadores y luego haciendo uso de las funciones anteriores permita generar los datos necesarios, imprimir los jugadores que tienen la mayor cantidad de minutos jugados y determinar y mostrar la cantidad de jugadores y el total de minutos jugados para cada puesto. Recuerde que la aplicación deberá validar el ingreso de datos.