Recopilación de examenes Parciales y finales Ejercicio Nro 1: Se define una matriz de números naturales como sigue: const N = .... { algun valor adecuado } M = .... { algun valor adecuado } type Matriz = array [1..N,1..M] of integer; Escribir un módulo todas_menor que reciba una matriz y un número entero y que determine si todas las filas de la matriz son tales que su suma es menor que el número dado. Ejemplo Sea la siguiente matriz : 1109 mat = 9 3 5 1 0022 resultados del módulo anterior son: todas_menor(mat,30) -> TRUE todas_menor(mat,15) -> FALSE Justifique por que realizó un procedimiento o una función Ejercicio Nro 1: Realice el algoritmo y programa en Pascal para resolver lo siguiente: Una empresa, tiene 20 vendedores zonales. De cada uno de los vendedores se ingresa: nombre, edad y los valores de las ventas del ultimo mes. Se pide: a) Cargar los datos, b) Para cada vendedor mostrar por pantalla el nombre, la edad y la mejor venta. c) Informar el nombre del vendedor que realizo la mayor venta. Es imprescindible MODULARIZAR adecuadamente el programa. Todos los resultados obtenidos deben mostrarse en el programa principal. Justifique por que realizó un procedimiento o una función en cada caso. Realice el algoritmo y programa en Pascal para resolver lo siguiente: En una competencia de salto en largo, se presentaron 20 participantes. De cada uno se ingresa: nombre, edad y los alcances de sus 3 saltos expresados en metros. El mejor de los 3 saltos se considera como la mejor marca obtenida. Se pide: a) Para cada participante mostrar por pantalla el nombre, la edad y la marca obtenida b) Informar el nombre del atleta que obtuvo la mejor marca. Es imprescindible MODULARIZAR adecuadamente el programa. Todos los resultados obtenidos DEBEN mostrarse en el programa principal. Un sistema de detección de mensajes ocultos de una agencia de seguridad informática requiere de diversas capacidades de análisis de datos. Se le encarga a usted la codificación de un programa que conste de las siguientes características: a) Reciba el texto a analizar como un arreglo unidimensional de caracteres de dimensión N. b) Extraiga la primera letra de cada palabra y la almacene en un vector para determinar si el texto contiene un mensaje oculto. c) Invierta la posición de todos los caracteres del arreglo: el primero en la última posición y así sucesivamente. Sin usar un vector auxiliar Es imprescindible MODULARIZAR adecuadamente el programa. Todos los resultados obtenidos DEBEN mostrarse en el programa principal. El programa DEBE incluir un módulo de carga para almacenar el texto en la matriz de caracteres. Realizar diagrama de flujo y código Pascal Escriba un programa en Turbo Pascal que utilice la función PrimosRel que dados dos números naturales devuelva verdadero si esos números son primos relativos (esto es, si el único divisor común que tienen es el número 1 (uno)), y falso en caso contrario. Si alguno de los números entregados a la función es negativo, la función debe devolver el valor falso. (Realizar el algoritmo y programa) Por ejemplo, ante los números 16 y 12 debe devolver falso (sus divisores comunes incluyen al 2, y al 4), lo mismo que para 10 y 15 (que comparten al 5 como divisor) y también a la pareja 7 y -3 (porque -3 es negativo). Por otra parte, la respuesta debe ser afirmativa para las parejas 32 y 9 (comparten sólo al 1 como divisor) y 18 y 1 (idem). Se tiene un arreglo FRASE de caracteres cuyo tamaño está definido por la constante LongFrase, que contiene una oración. (Conjunto de palabras separadas por uno o más espacios). Se posee también una matriz PALABRA de caracteres, de MaxFil filas por MaxCol columnas. LongFrase es menor que MaxFilas por MaxCol. Se desea pasar toda la oración de FRASE a PALABRA y luego imprimir la matriz PALABRA, con salto de línea al final de cada fila. En la matriz PALABRA se debe almacenar una palabra de FRASE por fila de la matriz. Por otro lado todos los lugares sobrantes deben completarse con un carácter blanco (espacio). Realice diagrama de flujo y codifique el procedimiento que realiza lo que se describe, recibiendo como parámetro el arreglo FRASE, y que devuelve la matriz PALABRA. Defina y declare todas las constantes, los tipos y las variables. Realice diagrama de flujo y codifique el programa principal que debe cargar el arreglo FRASE, llamar al procedimiento anterior e imprimir la matriz con una fila por linea. Ejemplo: Si LONGITUD = 31, FILAS = 5, COLUMNAS = 10, y FRASE = E s t e e x a me n e s d e ma s i a d o entonces PALABRA = e s t e x a e s d e m f á c Se imprimirá: e m e n a i s l i Este examen es demasiado fácil a d f á c i l o En una empresa de reparto se utilizan el vector VKmsCamion para contabilizar los kilómetros recorridos por su camion en todo un año. En el vector se almacenan los kilómetros recorridos en cada viaje, o sea, cada elemento de vector VKmsCamion corresponde a la cantidad de kms de un viaje. Las cantidades de kms recorridos se almacenan cronológicamente y para separar los que corresponden a cada mes, se almacena un valor CERO en el vector. Por lo tanto, se tienen kms recorridos en cada viaje para el mes de enero, un CERO, los kms correspondientes a febrero, un CERO, etc. Considere entonces que: • En el vector hay al menos 12 elementos de valor CERO. • Todos los elementos que siguen al 12avo valor CERO NO deben considerarse. • Es posible que en un mes no haya viajes (cuando hay dos CEROS contiguos). • NO hay números negativos antes del 12avo valor CERO. 1) Realice el diagrama de flujo y codifique un procedimiento o función que, dado el vector VKmsCamion, , complete y devuelva la matriz MKmsAño. Dicha matriz tiene 12 filas y 32 columnas, una fila por mes y una columna por cada posible viaje (no se realiza mas de un viaje por dia), en cada fila deben quedar almacenados los kms correspondientes a ese mes y en la columna 32 las sumas de los kms de cada mes 2) Realice el diagrama de flujo y codifique un procedimiento o función que, dada la matriz MKmsAño, muestre por pantalla una lista de los meses del año con la suma total de kilómetros recorridos. 3) Realice el diagrama de flujo y codifique el programa principal que lea el vector e invoque los módulos codificados en los ejercicios 1 y 2. Incluya todas las declaraciones necesarias. Aclaraciones: Ejemplo de VKmsCamion 24 65 0 9 0 15 Ejemplo de MKmsAño 1 2............... 24 9 15 0 ... 65 0 32 0 0 8 0 0 ... 32 8 0 0 78 4 55 0 45 76 6 0 0 12 0 3 10 0 79 0 21 32 89 9 55 0 ... Salida Enero 89 Febrero 9 .... Dada una matriz Agenda de enteros de m (13) filas y n (31) columnas, donde las columnas representan los días de un mes (de 1 a 31) y las filas las horas de un día (de 8 a 20). El contenido de la matriz representa las actividades que realiza una persona en ese mes detalladas por hora. Las actividades se encuentran codificadas de la siguiente manera: 1 – libre; 2 – social; 3 – trabajo; 4 – cultural; 5 – deportiva; 6 – recreativa. a) Realizar un procedimiento o función que cargue dicha matriz b) Realizar un procedimiento o función que retorne un arreglo de enteros ActMasPractDia (actividad más practicada del día) de tamaño n que contenga la actividad más practicada en cada día. c) Realizar un procedimiento o función que imprima lo siguiente en cada renglón: <día> - <actividad mas realizada> 6 0 54 0 43 d) Realizar el programa principal que utilice los módulos anteriores Ejemplo: Agenda ActMasPractDia 1 2 ... 30 31 1 2 ... 30 31 8 1 3 ... 3 1 1 3 ... 6 1 9 1 3 ... 3 1 10 1 3 ... 3 1 11 1 3 ... 3 1 12 6 3 ... 3 1 13 6 3 ... 6 1 Salida 14 1 3 ... 6 1 15 6 3 ... 6 1 1libre 16 6 6 ... 6 1 2trabajo 17 2 6 ... 6 1 ... 18 2 6 ... 6 1 30recreativa 19 2 2 ... 4 1 31libre 20 2 2 ... 4 1 Aclaraciones: • Realizar todas las declaraciones de constantes y tipos necesarios. • Debe realizar los diagramas de flujo de cada módulo y el del programa principal • Debe escribir el código Pascal del programa completo (un único código que incluya todos los incisos) Una empresa desea premiar a sus empleados con un aumento de sueldo. Este aumento se ajusta a la siguiente tabla: Sueldo Actual 0-1.000 pesos. 1.000-2.000 pesos. 2.000-3.500 pesos. más de 3.500 pesos. Aumento 20% 10% 5% no hay aumento La empresa tiene un total de 20 empleados. Realice diagrama de flujo y programa en Pascal que lea el nombre del empleado y su salario actual e imprima el nombre, el sueldo actual y el sueldo aumentado. El programa debe proporcionar al final la suma total de todos los sueldos actuales y la suma total de todos los salarios aumentados. Es imprescindible MODULARIZAR adecuadamente el programa. Justifique por que realizó un procedimiento o una función en cada caso. Realice el algoritmo y programa en Pascal para resolver lo siguiente: Una empresa, tiene 20 vendedores zonales. De cada uno de los vendedores se ingresa: nombre, edad y los valores de las ventas del ultimo mes. Se pide: a) Cargar los datos, b) Para cada vendedor mostrar por pantalla el nombre, la edad y la mejor venta. c) Informar el nombre del vendedor que realizo la mayor venta. Es imprescindible MODULARIZAR adecuadamente el programa. Todos los resultados obtenidos deben mostrarse en el programa principal. Justifique por que realizó un procedimiento o una función en cada caso.