Prácticos Algoritmos 2005
Prácticos Algoritmos 2005
Prácticos Algoritmos 2005
Profesora Titular: A.U.S. Mirtha Eve GIOVANNINI Jefa de Trabajos Prcticos: Ing. en Sist. de Inf. Ilse HODAPP Auxiliares Docentes: Ing. en Sist. de Inf. Cesar PIZZI Ing. en Sist. de Inf. Diego BOLATTI Diego POZA Becarios: Noelia PINTO
TP Nro. 2 - Parte 2: Secuencias de Registros 1er. Parcial: TP 1 y 2 (Parte 1) SEMANA DE EXMENES 4to. Llamado TP Nro. 2 - Parte 3: Archivos Indexados TP Nro. 3 Arreglos 2do. Parcial: TP 2 (Partes 2 y 3) TP Nro. 4 Listas TP Nro. 5 Recursividad y rboles 3er. Parcial: TP 4, 5 Y 6
La LTIMA FECHA DE FIRMA POSIBLE: primera semana de clases del 1er. cuatrimestre del ciclo 2006, posteriormente NO SE FIRMARN LIBRETAS.
Pg. 2 de 42
3. Complete las siguientes frases: - Una .......................... es un acontecimiento producido por un actor, que tiene lugar durante un perodo de tiempo ........................... y produce un ................................................... bien determinado. - El instante de ...................... de la accin se denomina Ti y el instante de ...................................... se denomina Tf. - El conjunto de los valores en el instante t dado del desarrollo del acontecimiento se denomina ................................ en el instante t.
Pg. 3 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA 4. Relacionar las columnas: DEFINICIONES 1 - Conjunto de fenmenos organizados en el tiempo y concebido como activo. 2 - Descripcin de un esquema de comportamiento. 3 - Algoritmo destinado a gobernar una mquina real. 4 - Mecanismo capaz de generar acciones que tienen lugar segn un esquema determinado. CONCEPTOS a - Programa b - Proceso c Mquina d - Algoritmo
Ejercicios con Estructuras Secuenciales 5. Disee un algoritmo que permita resolver cada uno de los ejercicios enunciados a continuacin: 5.01. Escribir un programa que permita calcular el precio de un artculo para un ao dado, considerando que la inflacin es del 4 por 100 anual. La frmula del precio es: P = C * (1+R) ^ (N - A) C - Precio actual. N - Ao futuro. R - Tasa de Inflacin. A - Ao actual.
5.02. Las races de una ecuacin de segundo grado ax2+bx+c=0 son reales si y slo si el discriminante dado por (b24ac) no es negativo. Se desea leer el valor de los coeficientes "a", "b", "c" e imprimir el resultado del discriminante. Realizar prueba de escritorio. 5.03. Se desea comprar una PC y una impresora. Calcular el precio total: el cual est dado por la suma de los precios de costos, los porcentajes de ganancia del vendedor y un 21% de IVA. Supngase una ganancia del vendedor del 12% por la PC y 7% por la impresora. Se leen los costos y se imprimen el precio total de ventas. 5.04. Se desea calcular la superficie de un trapecio, para la cual se ingresa la longitud de ambas bases y la altura. En base a la frmula: S = (Bmay + Bmen) * h 2 Finalizando el proceso, emitir dicha superficie y los valores ingresados. 5.05. Se desea calcular el valor de la seccin (S) de un conductor, la cual se determina en funcin de la corriente elctrica I y de la conductividad C del material (C=I/S). Adems, a la seccin as obtenida se le incrementa un 25% por razones de seguridad. 5.06. Realizar un programa que lea dos nmero complejos, (a,b) y (c,d), y calcule su producto: (a,b) * (c,d) = (ac - db, ad + bc) 5.07. Escriba un algoritmo que halle la media geomtrica de tres valores X, Y, Z. Este debe emitir los tres valores por separado y luego el valor medio. La media geomtrica es igual a (X*Y*Z) / 3. Ejercicios con Estructuras Selectivas y Repetitivas 6. Escriba un algoritmo que acepte dos nmeros, calcule la suma e imprima el mensaje de acuerdo al resultado obtenido. suma <= 50 suma > 50 y <= 100 suma > 100 y <= 200 suma > 200
Pg. 4 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA 7. Escriba un algoritmo que permita conocer la edad de una persona, con solo ingresar la fecha de nacimiento y la fecha actual, ambas en el formato: DIA, MES , AO 8. Una persona decide realizar un viaje a Europa, para lo cual necesita una determinada cantidad de euros. La persona tiene ahorrada una cierta suma en dlares y desea saber si es suficiente y, en caso de haber diferencia (de ms o de menos) a cuantos pesos equivale. Realice un algoritmo que solucione el problema considerando que 1 dlar = 2.97 pesos, 1euro = 3.58 pesos, 1 dlar = 0,83 euros. 9. Las medidas de las tablas de surf, como invento norteamericano que son, se expresan en el sistema mtrico anglosajn, es decir, en pies y en pulgadas. De esta manera si decimos que nuestra tabla es una 62 estaremos diciendo que su longitud es de 1,88 m. Escriba un algoritmo que calcule la longitud de una tabla en metros, conociendo la misma en formato anglosajn. Las equivalencias con nuestro sistema mtrico seran las siguientes: 1 pie = 12 plg, 1 plg = 2,54 cm, 1 m = 100cm. 10. Dados dos nmeros enteros A y B generar un algoritmo que permita determinar si A es divisor de B o B es divisor de A. 11. Elabore un algoritmo que permita obtener el Mximo Comn Divisor de dos nmeros. 12. a) Hacer un algoritmo que calcule la altura aproximada de un edificio en pies, ingresando como dato la cantidad de pisos del mismo y la altura promedio de cada piso, en metros. (1 m = 3.28 pies) b) Modifique el algoritmo del punto a) para que permita calcular la altura de 50 edificios. c) Modifique el algoritmo del punto a) para que permita calcular la altura de una cantidad indeterminada de edificios. Prevea una condicin de fin. 13. a) Disee un algoritmo que obtenga el porcentaje de alumnos de ISI, IQ e IEM, sobre el total de egresados de la UTN-FRR de un ao. b) Modifique el algoritmo del punto a) para que permita obtener e informar los mismos porcentajes pero para varias Facultades y al final emitir el total de alumnos por carrera y total general. 14. Elabore un algoritmo que calcule el producto de dos enteros A y B empleando slo la operacin suma. 15. Elabore un algoritmo que calcule el cociente de dos enteros F y G y el Resto de la operacin, empleando slo las operaciones suma y diferencia. 16. Escribir un algoritmo que ingrese una variable V y emita el valor de sta, su cuadrado y su cubo. 17. Teniendo en cuenta el ejercicio anterior, realizar un incremento de la variable V en forma constante y creciente recalculando los dems valores 10 veces. Por ejemplo V=2 V V2 V3 2 4 8 3 9 27 ... ..... ..... 12 144 1728 18. Repita el ejercicio anterior con un clculo de n veces, con n > 1. Por final emitir la suma de los cuadrados de V. 19. Escriba un algoritmo que determine si un nmero es primo. 20. Escriba un algoritmo para calcular cada rengln de una factura (valor unitario * cantidad vendida) y el total de la misma, suponiendo que el nmero de renglones es variable. Emitir un mensaje de error si el valor unitario es <= 0. Realizar la prueba de escritorio con los siguientes valores: Cantidad de renglones: 4 Valor Unitario Cantidad vendida 2 10 1 25 3 15 2 8,5
Pg. 5 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA 21. Escribir un algoritmo que permita dado un importe dinero, calcule e informe cuanto corresponde pagar un impuesto, en cuantas cuotas y el valor de las mismas. Tener en cuenta los siguientes datos: -IMPUESTO = 10% del importe dado. - Los importes mayores que $500 y menor o igual que $1000 se pagan en dos cuotas. - Los mayores de $1000 en tres cuotas. El algoritmo debe permitir tratar varios importes finalizando cuando se ingresa 9999 como importe. 22. Elabore un algoritmo para calcular los primeros 50 nmeros de FIBONACCI, sabiendo que dichos nmeros cumplen con lo siguiente: A0=0, A1=1, A2=A0+A1, ..... An=A(n-1)+A(n-2). 23. Generar un algoritmo para imprimir las coordenadas (X,Y) de una funcin cuadrtica, de la forma: Y=aX^2+bX+c, haciendo variar X en el intervalo [20, -20] con un decremento de 2. 24. Repita el ejercicio anterior de modo que sea posible estudiar varias funciones, indicando que se desea terminar al ingresar 9999 para el trmino cuadrtico. 25. Construya un algoritmo capaz de encontrar todas la cifras de tres dgitos que cumplan con la condicin de que la suma de los cubos de sus dgitos sea igual al nmero que la cifra representa. 26. Escriba un algoritmo para imprimir los nmeros primos menores a un valor dado n. 27. Escriba un algoritmo para resolver el sgte. problema: Una empresa de transportes desea conocer el sueldo de sus 100 choferes . Estos se calculan teniendo en cuenta la categora ( 1 o 2 ) y la asistencia ( perfecta: si o no). El sueldo se obtiene sumando el sueldo bsico, mas el 2% de antigedad por cada ao trabajado y $200.- de premio por asistencia. El sueldo bsico es de $700.- para choferes de categora 1 y de $500.- para los de categora 2. 28. Una fbrica textil produce telas de dos calidades distintas (primera y segunda) y de dos materiales distintos ( seda y algodn). Generar un algoritmo que calcule el peso de varias piezas de tela, el cual est dado por la suma del peso neto, ms un porcentaje por el apresto, ms el peso del ncleo de cartn. Para realizar el clculo, tener en cuenta la siguiente informacin, para cada pieza: - el peso del m2 y la longitud de cada pieza. - al peso neto de la tela hay que sumarle un porcentaje por cada pieza, debido al apresto, el cual es del 2% para las telas de seda y del 7% para las de algodn. - tambin se debe considerar el ncleo de cartn, que es de 400 gr. para los rollos de telas de seda y de 300 gr. en los de algodn. Finalizar cuando la variable FIN sea igual a SI. 29. La fecha del domingo de Pascua corresponde al primer domingo despus de la primera luna llena que sigue al equinoccio de primavera. La secuencia de clculos que permite conocer esta fecha es: A = ao mod 19 B = ao mod 4 C = ao mod 7 D = (19*A + 24 ) mod 30 E = (2*B + 4*C + 6*D + 5) mod 7 N = (22+ D + E) Donde N indica el nmero del da del mes de marzo ( o abril si N es superior a 31) correpondiente al domingo de Pascua. Realizar un algoritmo que determine esta fecha para los aos comprendidos entre 1990 y 2010
Pg. 6 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA 30. Escribir un algoritmo que permita imprimir la siguiente sucesin. Considere que N es un nmero par, que se ingresa. 2 4 6 8 ... N 4 6 8 10 ... N 6 8 10 12 ... N .... .... N 31. Escribir un algoritmo que permita imprimir la siguiente sucesin. Considere que N es un nmero par, que se ingresa. 2 4 6 ................ N 2 4 6 .......... N-2 2 4 6 ... N-4 ............ 2 4 6 2 4 2 Ejercicios Complemetarios T.P. Nro. 1 1. La Mutual del personal del Banco, a pedido de un socio canjea un plazo fijo, pagndole el capital inicial. Luego, al cobrarse el plazo fijo, le paga los intereses, descontando los das correspondientes y $5 por gastos. Se desea liquidar el pago de la diferencia entre el capital inicial y capital con intereses, sabiendo que el inters es el 5% a 30 das y teniendo como datos el capital inicial, capital con intereses y los das de anticipo. 2. Se desea ingresar dos nmeros X, Y. Hallar la media aritmtica y la geomtrica de ambos valores. Disee un algoritmo que sea capaz de hallar el mximo entre los dos valores. 3. Escriba un algoritmo que acepte tres nmeros y los imprima en orden creciente. 4. Escriba un algoritmo que determine si un valor entero es par o impar. 5. Genere un algoritmo que determine el factorial de un nmero dado N. 6. Se desea determinar si un estudiante aprob una materia. Para ello se le toman 5 exmenes (E1, E2, E3, E4, E5). Se considera aprobada la materia a aquellos alumnos que aprobaron los 5 exmenes: debern rendir un examen de complemento aquellos que aprobaron 3 exmenes, siempre que uno de estos tres sea el ltimo. Tendrn la posibilidad de volver a rendir el ltimo examen aquellos alumnos que no lo aprobaron, pero aprobaron por lo menos el 3ro. y el 4to. 7. Se desea obtener una tabla con 5 valores de e^X, usando para ello la siguiente frmula: ex = 1 - x/1 ! + x2 /2 ! - x3 /3 ! + . . . . . .+ x20 /20 ! 8. Se desea realizar el clculo de una serie e^X que se detiene cuando un trmino es menor o igual que 0,000001. 9. Realizar un algoritmo que muestre el cambio en billetes de $100, $50, $20, $10, $5; $2 y monedas de $1, de un monto ingresado por teclado. Considere que este monto siempre sera entero. Ej: ingresa 377 muestra 3 billetes de $100, 1 billete de $50, 1 billete $20, 1 billete $5, 1 billete $2 10. Todo nmero cuya suma de sus dgitos sea mltiplo de 3 lo es tambin. Ej: 117 1+1+7 = 9 que es mltiplo de 3 , entonces 117 es mltiplo de 3 Realizar un algoritmo que determine si un nmero es mltiplo de 3 en funcin de la afirmacin antes realizada
Pg. 7 de 42
Pg. 8 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA 2.1 X:= 4; Y:= 3; Z:=Calc_105 (X,Y); 2.02 X:= 4, Y:= 3; K:= Calc_105 (X,Y) * 3 + ABSO(Y-10); 2.03 M:= -20; Calc_106(M); 2.04. A:=0; Calc_104; A:= A + B; 2.05. Calc_101; SUMA:=A + Y + TRUNC(C); 1. Tratamiento de Secuencias de Datos Elementales. 1.01. Generar un algoritmo que permita determinar la cantidad de palabras que comienzan con la letra I. 1.02. Generar un algoritmo que permita contar la cantidad de palabras que comienzan con una letra dada. 1.03. Dada una secuencia de caracteres, elaborar un algoritmo que determine la cantidad de palabras de 4 caracteres (letras) 1.04. Se dispone de una secuencia de caracteres. Se desea listar las palabras que comiencen con "ALG". 1.05. A partir del ejercicio anterior, determinar el porcentaje que representan las palabras que comienzan con ALG sobre todas las palabras de la secuencia 1.06. Se dispone de una secuencia de nmeros de socios, y se desea saber la cantidad de socios que estn registrados. 1.07. La secuencia de socios del problema anterior tiene el inconveniente de que los nmeros estn ordenados pero no son correlativos. Se desea generar una secuencia que contenga los nmeros de socios que no figuran en la secuencia de socios. 1.08. Se dispone de una secuencia de caracteres y se desea saber la cantidad de caracteres (incluidos los espacios) que existen entre la aparicin de dos comas consecutivas. Se debe considerar que puede haber ms de un par de comas, y que las subsecuencias inicial y final deben descartarse por no cumplir la condicin enunciada. Supngase que las comas son siempre contiguas al ltimo caracter de la palabra. 1.09. Se desea saber la cantidad promedio de palabras que contienen los prrafos de una secuencia de caracteres. Supngase que los puntos son siempre contiguos al ltimo caracter de la palabra. La secuencia finaliza con una marca. 1.10. Se dispone de una secuencia de numeros de DNI, asignados a un circuito electoral, y de otra secuencia de DNI nuevos, a asignar, ambas en orden ascendente. Elaborar un algoritmo que fusione ambas secuencias, respetando el orden. 1.11. Se desea calcular el costo de un telegrama, que se determina en funcin del nmero de palabras (que vale V1 cada una), salvo que el promedio de letras por palabra supere las cinco letras, caso en que cada palabra vale V2. 1.12. Escribir un algoritmo que produzca una secuencia de salida que contenga una oracin formada por por las palabras en posicin par de cada oracin de una secuencia texto de entrada, que adems comienzan con la letra M. 1.13. Dada una secuencia de caracteres, generar otra secuencia con todas las palabras de tres caracteres. Informar el porcentaje de las mismas, sobre el total de palabras de la secuencia de entrada. Considerar que puede haber ms de un blanco entre palabras.
Pg. 9 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA 1.14. Se dispone de dos secuencias texto formadas por oraciones bimembres (sujeto y predicado, separados por comas ,). Se desea una secuencia texto de salida formada por oraciones bimembres, de la siguiente forma: - El sujeto, de la secuencia 1, y el predicado, de la secuencia 2. Al finalizar informar cuantas oraciones tiene cada secuencia. 1.15. Se dispone de dos secuencias texto formadas por oraciones bimembres (sujeto y predicado, separados por comas ,). Se desea una secuencia texto de salida formada por oraciones bimembres, de la siguiente forma: - El sujeto, de la secuencia 2, y el predicado, de la secuencia 1. Al finalizar informar cuantas oraciones tiene cada secuencia. 1.16. La empresa Ideas Argentinas S.A. posee datos de sus empleados en dos secuencias de caracteres; la primera secuencia (Sec1) formado por los nombres (uno por persona) de los empleados separados por blancos y la segunda secuencia (Sec2) posee los nmeros de documento de cada uno de los empleados (palabras de 8 dgitos numricos). Ambas secuencias poseen la misma cantidad de datos, es decir el primer nmero de documento le corresponde al primer nombre de la segunda secuencia y as sucesivamente. La secuencia de nmeros de documentos no posee espacios en blanco ni ningn otro tipo de caracter que separe un nmero de documento de otro. A la empresa le interesa tener en una nueva secuencia (Sec3) los datos de todas aquellas personas que cumplan la condicin de que el nombre se encuentre en una posicin impar. La nueva secuencia debe generarse de la siguiente manera: el nmero de documento seguido (sin espacios) por una coma y luego (sin espacios) por el nombre y seguido al nombre un #. 1.17. Realice un algoritmo para el enunciado del ejercicio 1.16, pero considerando que los datos que se deben copiar en la Sec3 son los de aquellas personas que cumplan la condicin de que: el nmero de documento comienza con un nmero impar. 1.18. Realice un algoritmo para el enunciado del ejercicio 1.16, pero considerando que los datos que se deben copiar en la Sec3 son los de aquellas personas que cumplan la condicin de que: el nombre no comienza con una vocal. 1.19. Se posee 2 secuencias (S1 y S2) con las cuales se desea generar una nueva secuencia (SAL) donde se intercalen las palabras de las secuencias de entrada, de la siguiente manera: copiar de S1 aquellas palabras que empiezan y terminan con la misma letra y de S2 aquellas palabras que posean al menos un digito numrico y adems estn en posicin par. 1.20 Dada una secuencia texto de entrada que contiene palabras alfanumricas, escribir un algoritmo que genere dos secuencias de salida. Una de ellas contendr solo las palabras de la secuencia original que comienzan con vocal, en las cuales se reemplazarn todas las vocales por *, por ejemplo: entrada avin1, salida *v**n1 y la otra ser una secuencia numrica en la que se almacenarn las cantidades de vocales que se encontraron en cada una de las palabras que cumplieron la condicin. Por final de proceso se deber informar el promedio de palabras por oracin. 1.21. La NASA recibe datos de dos satlites en forma de secuencias de caracteres, llamadas SATL1 y SATL2, y necesita que, a partir de ellas se creen dos secuencias nuevas: una llamada COORD (secuencia de reales) y otra llamada DEST (secuencia de caracteres) en donde se extraiga de SATL1 las palabras que empiezan con POS y colocarla en la secuencia de salida y de la secuencia SATL2 se desea extraer las palabras que empiezan con un nmero impar. Para poder pasar de caracteres a nmeros reales se cuenta con una funcin llamada CAST(x: carcter):real que acepta como parmetro un carcter y devuelve el valor numrico. Por final de proceso se desea que se informe la cantidad de COORD que se registraron. LA FUNCION CAST NO LA DEBE ESCRIBIR SOLO UTILIZARLA!!! 2. Tratamiento de Secuencias de Registros. 2.01. Se dispone de una secuencia con los datos de los alumnos de la facultad: - Apellido y Nombre - Carrera (ISI - IEM - IQ) - N de Legajo - Fecha de Nacimiento - Fecha de Ingreso - D.N.I. - Sexo (M o F) - Fecha de ltimo examen aprobado - Codmat - Nota Se desea un listado de los mismos, con el siguiente formato: Nro. Legajo Apellido y Nombre Documento Carrera
Pg. 10 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA 2.02. Con la secuencia del problema anterior se desea generar otra secuencia con los alumnos de la carrera de Ingeniera en Sistemas de Informacin que aprobaron una materia dada este ao. Se debe ingresar el cdigo de materia. 2.03. Dada la siguiente secuencia de datos con el siguiente formato: - N de socio - Apellido y Nombre - Domicilio - N de telfono - Carrera (ISI - IEM - IQ - LAR) - Cantidad de unidades prestadas
Correspondiente a los alumnos socios de la Biblioteca, generar la secuencia de los alumnos de ISI que tengan prestadas ms de 4 unidades bibliogrficas. 2.04. Se dispone de una secuencia de facturas con los siguientes datos: - N de Factura - Fecha - Total Se desea un listado de las facturas cuyas fechas sean posteriores a una fecha dada, y cuyos importes totales no alcancen los $1.000.-, con el siguiente formato: Nro. de factura Fecha Importe total 2.05. A partir de la secuencia del ejercicio 2.01 se desea generar un listado con los alumnos que aprobaron la ltima materia rendida con nota superior a 7, e ingresaron el ao pasado, con el siguiente formato: Nro. Legajo Apellido y Nombre Carrera
2.06. Se cuenta con una secuencia que contiene el Apellido y Nombre y Promedio General de los Graduados de una Facultad, y se solicita generar un listado con diversas recomendaciones para cubrir vacantes en una importante Empresa. Las mencionadas recomendaciones sern establecidas del siguiente modo: si el promedio es menor que 7, la recomendacin ser negativa ("NO"); por el contrario, si el promedio es menor que 8, la recomendacin ser positiva ("SI"); de lo contrario, si el promedio es menor que 9, la recomendacin ser favorable ("F"); por ltimo, si el promedio supera los 9 puntos, la recomendacin ser muy favorable("MF"). El listado deber respetar el siguiente formato: Apellido y nombre Promedio Recomendacin
Adems, se solicita la impresin del total de graduados que recibieron cada una de las recomendaciones, y el promedio global de los mismos. 2.07. Se dispone de un archivo con los datos de un padrn electoral con la siguiente informacin: - Nombre y apellido - DNI - N de Mesa - N de Circuito - Clase - Direccin - Observaciones - Partido (0= independiente, 1=A, 2=B, 3=C)
Generar: a) Una secuencia de salida con nombre y apellido, DNI, y direccin de todas las personas afiliadas al partido C. b) Una secuencia de salida con nombre y apellido, DNI, y direccin de todas las personas no afiliadas a ningun partido y de clase posterior a 1940. 2.08. De los datos del siguiente ejercicio: Archivo COMPRAS Nro. de Cliente Fecha ltima compra Archivo CLIENTES Nro. de Cliente Nombre y Apellido Monto Domicilio Telfono DNI
Ambos archivos estn ordenados por Nro. de Cliente en forma ascendente. Pg. 11 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA Listar los nombres fecha y monto de ltima compra, de todos aquellos clientes cuya ltima compra sea posterior a una fecha dada y el monto supere un monto dado. 2.09. Se desea generar otra secuencia, a partir de la secuencia del problema 2.01, donde se actualice la fecha de aprobacin del ltimo exmen, para ello se cuenta con informacin del ltimo turno de exmen, segn el siguiente detalle: Fichero EXAMENES Nro. de Legajo Carrera Cd. Materia Fecha de exmen Nota
Se debe considerar que no necesariamente todos los alumnos se presentan en cada turno de exmen, y que un alumno puede presentarse a rendir ms de una materia en un mismo turno. Supnganse ambas secuencias ordenadas por Nmero de Legajo. Corte de Control 2.10. Del archivo general de alumnos de la U.T.N. - Facultad Regional Resistencia, ordenado por carrera, se desea emitir la cantidad de alumnos correspondientes a cada carrera y el total general. 2.11. Se desea conocer la composicin del parque automotor nacional.Para ello se cuenta con informacin de los vehculos de todo el pas, segn el siguiente detalle: - Provincia - Patente - Departamento - Modelo - Ciudad - Tipo Se desea sacar un listado con el siguiente detalle por ciudad, departamento, provincia y total nacional: TOTAL % del TOTAL Vehculos de ms de 5 aos xxxxx Vehculos de 5 aos o menos xxxxx Total de vehculos xxxxx xx,xx % xx,xx % 100,00 %
2.12. Se dispone de un archivo con datos de los alumnos de la U.T.N. con la siguiente informacin para cada alumno: - Nro. de Legajo - Fecha de ingreso - Sexo (M o F) - Total de materias aprobadas - Carrera (ISI - IEM - IQ - LAR) Se desea un listado con el siguiente detalle por sexo, carrera y total general a) Total de alumnos que ingresaron en el ao 92 con ms de 20 materias aprobadas b) Total de alumnos que ingresaron en el ao 92 con menos de 20 materias aprobadas. 2.13. Dada una secuencia con informacin de poblacin de UNA PROVINCIA: Departamento Ciudad Cantidad de habitantes
Generar una secuencia con informacin de los departamentos de esa provincia, cuyo registro tenga el siguiente formato: Departamento Cantidad de habitantes
2.14. Dado el siguiente fichero de alumnos de la U.T.N., con los siguientes datos: Regional Carrera Materia Curso Cantidad de alumnos
Se desea un listado con los totales de alumnos discriminados por Regional, Carrera y Materia. 2.15. Dados el siguiente fichero con datos de un censo de la ciudad de Resistencia:
Pg. 12 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA Radio Manzana N de vivienda Condicin de la vivienda Cantidad de Habitantes
Condicin puede ser : Muy Buena, Buena o Mala. Obtener los siguientes totales de personas que habitan en viviendas cuya condicin es muy buena: total en la ciudad y totales por Radio y Manzana). Apareo 2.16. Construir un algoritmo que a partir de un fichero de movimientos histrico (desde que se compr la pelcula hasta la fecha actual) conteniendo: Movim NRO_PELICULA FECHA_ALQUILER SOCIO
ordenado por pelcula, y otro fichero maestro de peliculas Pelculas NRO_PELICULA TITULO GENERO CANT_COPIAS FECHA_ESTRENO
genere un archivo de INACTIVAS (con el mismo formato del maestro) que contenga las pelculas que no fueron alquiladas durante el ao actual. Considerar que el primer fichero es consistente, es decir, no hay pelculas que no aparezcan en el fichero maestro. 2.17.Se tienen dos ficheros secuenciales: uno con datos de alumnos y otro con datos de materias aprobadas con el siguiente formato: ALUMNOS (ordenado por Nro. de Legajo) Nro. de Legajo Carrer D.N.I. ApeyNom F. Nacimien F. Ingreso a EXMENES (ordenado por Nro. de Legajo y Cd. Materia) Nro. de Legajo Cd. Materia Fecha de exmen Nota Se desea obtener un fichero de salida con el siguiente formato: SALIDA (ordenado por Nro. de Legajo) Nro. de Legajo Carrer D.N.I. ApeyNom Cant. Mat. Aprobadas Promedio a Tener en cuenta que un alumno puede tener 0 o ms materias rendidas, si no rindi o no aprob ninguna debe figurar en la salida con Cant. de Mat. Aprobadas y Promedio = 0. No existen exmenes sin alumnos. 2.18 La empresa Solventes del Norte S.A. desea que Ud. Le escriba un algoritmo que le genere el libro IVA de la empresa. Para ello cuenta con los siguientes archivos: Compras (ordenado por FechaCompra)
CompraNro FacturaNro TipoFact FechaCompra Importe
Se desea que el libro IVA sea de la siguiente manera: IVA CREDITO Fecha: [ xxxxx ] [ Numero de Factura] Subtotal TOTAL GENERAL [ xxxxx ] [ xxxxx ] [ xxxxx ] IVA DEBITO [ xxxxx ] [ xxxxx ] [ xxxxx ] Pg. 13 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA SALDO [ xxxxx ] (DEBITO CREDITO)
Se considera IVA Crdito al importe obtenido de calcular el 21% del campo IMPORTE del Archivo de Compras e IVA Dbito al importe obtenido de calcular el 21% del campo IMPORTE del Archivo de Ventas. Por final se desea informar si el saldo es ACREEDOR o DEUDOR (es deudor cuando el dbito es mayor que el crdito). Adems se desea el porentaje de Facturas Tipo A y Tipo B de cada archivo. 2.19 Dados los siguientes archivos: Estudiante (sec. ordenado por Legajo) Legajo DNI Apynom Un registro por cada alumno. Domicilio Fecha-Nac Fecha_Ins Titu-Sec
Exmenes (sec. ordenado por Legajo) Legajo Cod_Materia Fecha-Exmen Un registro por cada exmen.
Nota
Se desea un algoritmo que permita generar un archivo con todos los alumnos que han terminado la carrera, con el siguiente formato: Egresado (indexado por Legajo) Legajo DNI Apynom Actualizacin 2.20. Se dispone de un fichero secuencial con la siguiente informacin de los Equipos de Ftbol de 1ra divisin de la AFA: EQUIPOS Nro_Equipo Nombre ordenada por Nro_Equipo Fecha_ltimo_partido_ ganado Fecha_Ins Cod-Mat Fecha-Ex Nota-Aprob --------------------- se repite 40 veces --------------------
y otro fichero secuencial con informacin sobre los resultados de los partidos jugados en el ltimo torneo: PARTIDOS Nro_Equipo_Ganador Nro_Equipo_Perdedor ordenada por Nro_Equipo_Ganador Fecha en que se jug
A partir del fichero de PARTIDOS, Se desea generar otro fichero de equipos actualizado, especficamente la fecha de ltimo partido ganado: EQUIPOS_ACT Nro_Equipo Nombre Fecha_ltimo_partido_ ganado
Se debe considerar que cada equipo puede ganar ms de un partido o no ganar ninguno. Si no gan ningn partido en el ltimo torneo, copiar la fecha de ltimo partido ganado que figura en el fichero de entrada. 2.21. En una Empresa Farmacetica se posee un archivo Mae_Remedios (ordenado por Clave: Farmacia + Medicamento), el que se actualiza semanalmente, a traves de la informacin que se encuentra cargada en un archivo de Movimientos (ordenado por Clavem: Farmacia + Medicamento, y Codmov), de la siguiente forma: - Si Clave (Mae_Remedios) es menor que Clavem (Movimientos), simplemente se transfieren los datos del Maestro a la salida y se graban. - Si Clave (Mae_Remedios) es igual a Clavem (Movimientos) y el Codmov es 1, se considera error y se lista un mensaje indicando el tipo de error; pero si el Codmov es 2, entonces es un remedio que deja de fabricarse y se transfiere el registro al archivo de Remedios vencidos (Rem_Venc) ; pero si el Codmov es 3, se modifica la cantidad actual con la cantidad recibida. - Si Clave (Mae_Remedios) es mayor que Clavem (Movimientos) y el Codmov es 1, se incorpora el remedio a nuestro Vademecum, considerando que la cantidad recibida configura la cantidad actual y la fecha-vence es 30 das posterior a Pg. 14 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA la fecha actual; pero si el Codmov es 2 o 3 se considera error y se deben producir los correspondientes mensajes de error. Se considera que slo existe un registro de movimiento para cada registro del maestro. MAE_REMEDIOS = MAESTRO_ACTUAL REGR = REGA Farmacia Medicamento MOVIMIENTOS REGV Farmacia REM_VENC REGE Medicamento
Cant-actual
Fecha-vence
Medicamento
Codmov
Cant-recibida
Cant-vencida
2.22. Dados 2 ficheros secuenciales de entrada, conteniendo datos de 2 turnos de exmenes distintos, ordenadas por Nro. de Legajo, con la siguiente estructura: N Legajo Apellido y Nombre D.N.I. Fecha_ingreso Cod_materia Nota
se desea generar un nico fichero de salida con la mezcla de los datos de ambos ficheros de entrada, conteniendo el siguiente detalle: N Legajo Apellido y Nombre Cod_materia Nota
3. Tratamiento de Archivos Indexados. 3.01.Dado un fichero secuencial de Facturas, ordenado por Nro. de Cliente y Nro. de Factura, con la siguiente estructura: FACTURAS NRO_CLI NRO_FACT FECHA IMPORTE
Se desea un listado con el siguiente detalle: Nro. Cliente Nombre Cliente Total FacturadoCantidad de Facturas Los datos del cliente se encuentran en un fichero indexado por Nro. de Cliente, que tiene la siguiente estructura: CLIENTES NRO_CLI NOMBRE D.N.I. C.U.I.T DOMICILIO
3.02.Una empresa dispone de un fichero secuencial con datos de sus empleados, ordenado por nmero de sucursal, y categora, con los siguientes datos: NRO_SUCURSAL CATEGORA (A-B-C) NOMBRE COD_CURSO TCNICO (SI-NO)
y un fichero con datos de cursos, indexado por cdigo de curso: COD_CURSO NOMBRE FECHA CANT_HORAS
Emitir un listado informando: - para cada empleado: sucursal, categora, nombre del empleado y nombre del curso que debe realizar. - por sucursal, categora y toda la empresa: - total empleados tcnicos - total empleados no tcnicos Pg. 15 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA - total empleados
Pg. 16 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA 3.03.Los automovilistas pasan por el peaje del Puente Gral. Belgrano y deben pagar segn su categora, pero adems, si ya han pasado previamente dentro del da tienen pase libre. Teniendo en cuenta el archivo siguiente, construya el algoritmo que realice lo que corresponda: genere el comprobante, indicando el importe a pagar o emita un mensaje indicando que ya pas anteriormente. Adems indique cuales deberan ser los datos de entrada. PEAJE indexado por patente, fecha, hora PATENTE FECHA HORA CATEGORA XXX-NNN 8N 4N N Categora Costo 1 1,20 2 2,50 3 4 COSTO XXX,XX 4 5
3.03.Una persona desea ir de vacaciones a la Polinesia, por lo tanto acude a una agencia de turismo y solicita su pasaje y residencia en hotel. Si los archivos son: VUELOS indexado por codigo_vuelo, fecha_hora, asiento CODIGO_VUELO FECHA_HORA ASIENTO XXX_XXX 8N y 4N 3N y V,C,P COD_USO L C DESDE 8N / 0 COSTO XXX,XX HASTA 8N / 0
HOTELES indexado por codigo_hotel, piso, habitacin CODIGO_HOTEL PISO HABITACION TIPO XXX_XXX xx xxx S, 2, 3, 4, A
Genere un algoritmo, que consulte al cliente sus necesidades y le emita un comprobante de vuelo y de hotel, como as tambin reserve sus elecciones en los respectivos archivos. Nota: El cdigo de la Polinesia es 123. 3.04.Se dispone de los siguientes archivos: CUENTACORRIENTE, indexado por cdigo CODIGO RAZON SOCIAL SALDO INICIAL (8AN) (35 AN) (8N) contiene un registro por cada cuenta activa al inicio del mes CHEQUES, ordenado por clave ------------- clave -------------------------- CODIGO-CUENTA DIA IMPORTE-MOVIMIENTO (8AN) (1..31) (+-8N) Cada registro representa un movimiento de extraccin o depsito realizado en un mes, lo que se visualiza mediante el signo del importe. Desarrolle un algoritmo que: a) actualice el archivo de saldos, b) imprima un listado por cdigo de cuenta y da creciente con el siguiente formato RAZON SOCIAL: XXXXXXXXXXX CODIGO: XXXXXXXXXX DIA MOVIMIENTO IMPORTE -----XX XX --SALDO INICIAL DEPOSITO EXTRACCION SALDO FINAL 999999999 + 9999999 - 9999999 999999999 Detalle de Movimientos
Imprima al final cules fueron los cdigos de cuenta que habiendo tenido movimientos mantuvieron su saldo inicial (tenga en cuenta que no sabemos cuantas cuentas pueden ser). 3.05.Una Municipalidad debe liquidar las patentes de su parque automotor para el cuarto trimestre del ao e imprimir un padrn de cobros y deudas, con cortes de importe por grupo, categora y ao de fabricacin.
Pg. 17 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA Los archivos son: AUTOS, secuencial ordenado por CLAVE GRUPO CATEGORIA AO FAB 2N 1 .. 50 4N CLAVE NRO PATENTE 8N DNI 8N AYNOM 25 AN DOMIC 30 AN
DEUDAS, indexado por CLAVED NRO PATENTE AO DEUDA TRIMESTRE IMPORTE 8N 4N 1N 5 enteros 2 dec CLAVED Para el trimestre actual, la cuota a abonar viene en el siguiente archivo: CUOTAS, indexado por CLAVEC GRUPO CATEGORIA AO FAB IMPORTE 2N 1 .. 50 4N 5 enteros 2 dec CLAVEC
Antes de imprimir el rengln correspondiente a cada nro de patente se debe verificar si existen deudas pendientes, en cuyo caso se sumaran todos los importes adeudados y se consignarn en la columna de deudas. PADRON: CLAVE XXXXXXXXX DNI XXXXX AYNOM XXXXXXX DOMIC XXXXXXX TOTAL DEUDA $ XXX,XX $ XXX,XX 4to TRIMESTRE $ XXX,XX $ XXX,XX
3.06. Crear un algoritmo que imprima un reporte como el que se indica, incluyendo totales por Obra Social y Clnica de liquidaciones a mdicos. Los archivos que intervienen son: LIQUIDACIONES (secuencial, ordenado por O.S. y Clnica) O.S. Clnica NroLeg Mes Ao Bruto Desc AFIP Desc DGR Neto = Bruto ( Desc AFIP + Desc DGR) OBRAS SOCIALES (indexado por CodOs) CLNICAS (indexado por CodCli) CodOs Nombre CodCli Nombre MDICOS (indexado por NroLeg) NroLeg ApyNom Especialidad
D N I
Reporte: Obra Social: ___________________ Clnica: ______________________ Mdicos Nro. Legajo Nombre Neto _________ ___________ $_________ . Total Clnica. $_________ .. Total Obra Social $_________ Pg. 18 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA 3.07. Pepsico S.A.I.C. desea que Ud. realice el algoritmo para poner al corriente los saldos de sus clientes y el stock de la empresa. Para ello cuentan con: Clientes (indexado por ClienteID) ClienteID ClienteNombre ClienteCUIT ClienteSaldo Detalle_Clientes (indexado por FechaOperacion) FechaOperacio ClienteID Importe FacturaNumero n
Se debe actualizar el saldo del cliente y adems agregar el detalle de la compra que figura en el archivo de Ventas al archivo Detalle_Clientes, por cada venta realizada se deber descontar la cantidad vendida del stock. Por final del proceso se desea saber el total de productos vendidos, y un listado de los clientes con su saldo actualizado. 3.08. En una Empresa se dispone del Archivo Maestro de los Empleados, indexado por su DNI, y mes a mes se producen novedades ( altas, modificaciones y bajas) que provocan un proceso de Actualizacin. Se desea: a) que disee las estructuras de ambos archivos, considerando los datos filiatorios fundamentales que necesita una Empresa para el manejo de informacin referente a sus empleados y b) un algoritmo que realice el proceso descripto. 3.09. Se deber desarrollar un algoritmo que emita un listado con: - el total de Sueldo Neto, discriminado por sector, que deber abonar a sus empleados de planta una empresa. - el porcentaje que representa cada sector sobre el total general. Se cuenta para ello con los siguientes archivos:
EMPLEADOS: indexado por n-legajo, de longitud variable, en funcin de cant (cantidad de conceptos de haberes que cada empleado posea). Nota: Si no se conoce la estructura de registros variables, tambin se puede resolver el ejercicio, considerando una cantidad fija de conceptos, por ej. 30. Pero se requiere conocer la estructura de arreglos. Fecha-ini 72 Sector 74 Tipo 75 Cargo 78 Cant 80 Cod .... 139 Cod
Se prevee hasta 30 conceptos por empleado. En el campo tipo se identifica con p al personal de planta y con c a los contratados. Los sectores de la empresa se codifican numricamente de 1 a 15.
Cod-concepto 1
En clase contiene una p si se trata de un porcentaje sobre el bsico y f si se trata de una suma fija. Los conceptos menores o iguales que 40 son haberes y los mayores de 40 son descuentos.
CARGOS: indexado por cdigo de cargo, contiene los puntos asignados al cargo, dado que la empresa dispone de un esquema de puntaje dentro de su escalafn. Puntos 3
Cod-cargo 1
En cada ejecucin se ingresar por pantalla el valor del punto y el mes de clculo. Pg. 19 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA El bsico de cada empleado resulta de multiplicar los puntos asignados al cargo por el valor de cada punto. El sueldo neto es el resultado de sumar al bsico los haberes y restarle los descuentos. Ejercicios Complemetarios T.P. Nro. 2 Secuencias de Texto 1. Dada una secuencia TEXTO construir un algoritmo que cuente e informe por oracin cuntas palabras terminan con la slaba LA. 2. Dada una secuencia de caracteres que contiene un texto compuesto por oraciones, crear una secuencia de salida que contenga slo las palabras que comiencen con la slaba "MA". Informar para cada oracin cuntas palabras cumplen con la condicin. 3. Dada una secuencia de caracteres que contiene un texto compuesto por oraciones; crear una secuencia de salida que contenga solo las palabras con 4 letras, informar para cada oracin cuantas palabras cumplen con la condicin. El fin de cada oracin esta dado por un . 4. Dada una secuencia de texto de entrada desarrollar un algoritmo que produzca una secuencia oracin de salida; la que contendr palabras numricas formadas con los dgitos impares que contenga la palabra correspondiente de entrada . Ej. Si la entrada viniera A125EB%en la salida debera ir 15. Al final del proceso informar cul es el promedio de palabras por oracin encontradas en la secuencia de entrada. 5. Escribir un algoritmo que: dado un fichero de texto que contiene letras y nmeros, permita distinguir palabras de enteros de hasta 5 cifras y desglosarlos en dos secuencias que contengan respectivamente los valores pares y los impares. 6. Escribir un algoritmo que permita desglosar una secuencia que contiene monotonas crecientes (series de elementos consecutivos ordenados crecientemente; cada serie est constituida por un elemento como mnimo), en dos secuencias de salida, de tal modo que tales monotonas sean copiadas alternativamente en una de las secuencias resultado o en otra. 7. Dada una secuencia texto de entrada, desarrollar un algoritmo que produzca una secuencia oracin de salida; la que contendr palabras numricas formadas con los dgitos impares que contenga las palabras correspondientes de entrada. Ej.: entrada (q12w3e5) salida (135). Al final del proceso informar cual es el promedio de palabras por oracin encontradas en la secuencia de entrada. 8. Escribir un algoritmo que a partir de una secuencia de palabras dada, genere dos secuencias de salida. Una de ellas contendr solo las palabras de la secuencia original que comienzan con vocal y la otra ser una secuencia numrica en la que se almacenarn las longitudes de las palabras que cumplieron tal condicin. Por final de proceso se deber informar la cantidad de palabras de ambas secuencias de palabras y la longitud de la palabra ms larga que cumpli la condicin enunciada. 9. Escribir un algoritmo que a partir de una secuencia de palabras dada, genere una secuencia de igual tipo conteniendo solo las palabras de la secuencia original que NO comienzan con vocal . Por final de proceso se deber informar la cantidad de palabras de ambas secuencias de palabras y el porcentaje de palabras que no cumplieron con la condicin enunciada. 10. Escribir un algoritmo que permita efectuar la operacin de diferencia entre dos secuencias (ordenadas crecientes), esto es, que genere el conjunto de los elementos no comunes a las dos secuencias. 11. Escribir un algoritmo que dado dos ficheros de texto (caracter, palabra, oraciones) denominadas TEX1 y TEX2 genere otro fichero oracin, mediante la composicin de palabras en posiciones pares dentro de las oraciones del TEX1 y palabras en posiciones impares dentro del TEX2. Al final del proceso emitir los siguientes contadores : a) Cantidad de palabras del archivo de salida. b) Promedio de palabras por oracin de TEX1 Y TEX2. 12. En la cinta de la mquina se encuentra una sucesin de telegramas. Cada telegrama est terminado por la palabra FINTEL. Cada telegrama est constitudo por una sucesin de palabras (sucesin de caracteres no blancos) separadas por uno o varios blancos. Toda palabra est seguida al menos por un blanco. Pg. 20 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA Las palabras estn divididas en dos categoras: - palabras a facturar - palabras de servicio, no facturadas. Estas son FINTEL y STOP. La sucesin de telegramas est terminada por el telegrama vaco: telegrama que no contiene ninguna palabra o slo uno o varios STOP. Se pide escribir un algoritmo que permita, para cada telegrama, imprimir el texto del telegrama respetando las conveciones siguientes: las palabras est separadas por un blanco, y no pueden rebasar los 12 caracteres: las palabras demasiado largas deben ser truncadas por la derecha. El texto de cada telegrama ser seguido por la indicacin del nmero de palabras a facturar y del nmero de palabras demasiado largas. Archivos:Corte de control Una empresa dispone de un archivo de registros con los siguientes datos de sus empleados ordenados por planta: Nombre Categora Planta La categora est codificada del 1 al 4. La fbrica cuenta con dos plantas A y B. A continuacin se presenta el listado de empleados con su categora y lugar de trabajo: Nombre Perez Gutierrez Aranda Molina Salerno Mendez Corrales Derqui Biondi Nogueira Categora 3 2 1 1 1 4 4 3 4 1 Planta A A A A A A A A A A Nombre Casas Portales Morales Arce Cortezs Miln Davis Das Vera Basualdo Categora 2 2 3 2 1 4 1 1 2 1 Planta B B B B B B B B B B
PROCESOS CON CORTE DE CONTROL 1.Una empresa dispone de un archivo de registros con datos de sus empleados Nombre El archivo est ordenado por categora Obtener el listado con el siguiente diseo: LISTA DE PERSONAL Categora 1 Aranda Molina Salerno --------Categora 2 Gutierrez Casas 2.Una empresa dispone de un archivo de registros con datos de sus empleados: Reg. Nombre Categora Planta Categora
(Tomar los datos del comienzo del trabajo) El archivo est ordenado por categoras. Imprimir el siguiente Listado:
Pg. 21 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA LISTADO DE PERSONAL Categora 1 Nombre Planta Aranda B Molina A Salerno A -----------Categora 2 Nombre Planta Gutierrez B Casas B ------------------------------------3. El archivo de la empresa est ahora ordenado por planta. Los empleados cobran los siguientes sueldos segn la categora. 1- $1.500 2- $2.000 3- $3.500 4- $5.000 Imprimir el siguiente listado considerando la categora de cada empleado: LISTADO DE SUELDOS Planta A Nombre Sueldo Aranda 1500 Molina 1500 Salerno 5000 -------------Planta B Nombre Sueldo Perez 3500 Gutierrez 2000 Aranda 1500 -------------4. El archivo se encuentra ordenado por planta y dentro de cada planta ordenado por categora. Se supone en este caso que los sueldos que corresponden a cada categora deben ser introducidos como dato por el teclado PLANILLA DE EMPLEADOS Planta A Categora 1 Molinari Salerno --------Categora 2 Arce -----------Planta B Categora 1 Aranda Davis ------------Sueldo:------------Sueldo:-----------
Sueldo:----------
5. Una escuela dispone de un archivo con los registros de sus alumnos: Nombre Ao Divisin Nota1 Nota2 Nota3
Pg. 22 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA Ao: 1 a 5 Divisin: A, B, C, etc. Nota1, Nota2, Nota3: Notas correspondientes a cada uno de los tres cuatrimestres (0 a 10). Estos registros estn ordenados en forma decreciente por el AO y dentro de cada ao estn ordenados en forma creciente por la divisin. Obtener el siguiente listado:
Pg. 23 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA LISTA DE PROMEDIOS 5 Ao Divisin A Nombre ------------------------Divisin B Nombre ------------------------4 Ao Divisin A Nombre ------------------------Divisin B Nombre ------------------------------------------Promedio ---------------------------------------Promedio -------------------------Promedio -------------------------Promedio --------------------------
--------------------
6. El organismo del cual dependen las escuelas de un distrito lleva un archivo con los registros para todos los alumnos de nivel segundario de ese distrito: Nombre Escuela Ao Divisin Cant. Inasist.
Se introduce como dato el nmero de distrito y la cantidad de das de clase dictados en el ao. El archivo est ordenado por nmero de escuela y divisin.. Los alumnos que superan el 20% de las inasistencias estn en situacin de LIBRES, de lo contrario son REGULARES. Emitir el siguiente listado: LISTA DE ALUMNOS REGULARES Distrito N:------Escuela N 1 1 Ao Divisin A Nombre Porcent. Inasist. Prez 28% Sol 16% --------------Divisin B Nombre Porcent. Inasist. ------------------------------------------2 Ao --------------------------------------------------------------Idem para las dems escuelas
TOTALES Y SUBTOTALES 7. Una empresa dispone de un archivo de registros con los siguientes datos de los pasajeros que volaron en el da: Nombre Nro. De vuelo
Pg. 24 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA El archivo est ordenado por n de vuelo. Imprimir la cantidad De pasajeros que viajaron en cada vuelo y la cantidad total de pasajeros que viajaron ese da por la compaa: CANTIDAD DE PASAJEROS Vuelo 067: 83 Vuelo 123: 123 Vuelo 451: 321 --------------------------------Total: 1432 8.Reconsidere el problema 1. Obtener la salida: CANTIDAD DE EMPLEADOS Categora 1 ------------Categora 2 ------------Categora 3 ------------Categora 4 ------------Total ------------9. Reconsidere el problema 3. La compaa debe enviar a cada planta el dinero para abonar los sueldos. Para ello requiere el siguiente listado. TOTALES DE SUELDOS POR PLANTA Planta A: ------------------$ Planta B: ------------------$ Planta C: ------------------$ ---------------------Total: ------------------$
10. Reconsidere el problema 4. La compaa desea conocer los totales de los sueldos por planta discriminados por categora, para ello se requiere el siguiente listado: TOTALES DE SUELDO POR PLANTA Y CATEGORA Planta A Categora 1: ------------------$ Categora 2: ------------------$ --------------------------------Total planta A ------------------$ Planta B Categora 1: ------------------$ Categora 2: ------------------$ --------------------------------Total planta B ------------------$ -----------------------------------------------------------------------------Total de Sueldos: -------------------$ 11. Reconsidere el problema 6. En este caso se desea obtener los totales de alumnos en cada divisin, en cada ao de cada escuela, en cada escuela y en todo el distrito. Disee el formulario de salida como crea conveniente. 12. Reconsidere el problema 6. Se desea conocer: Para cada divisin: Cantidad de alumnos Para cada ao : Cantidad total de alumnos libres Cantidad de alumnos regulares Cantidad total de alumnos Pg. 25 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA Todas las escuelas: Cantidad total de alumnos Porcentaje de alumnos libres. Promedio de inasistencias por alumnos. Disee el formulario de salida como crea conveniente. EMISIN DE INFORMES POR CORTE DE CONTROL Problemas integrados 13.Una empresa con varias sucursales que dispone de un archivo de registros de sus empleados con los siguientes datos: CodSuc CodSuc: CodEmpl: HorasDa: cdigo de sucursal cdigo de empleado horas trabajadas en el da CodEmpl HorasDa
Teniendo en cuenta que se abona un premio a aquellos empleados que hayan trabajado durante el mes ms de 20 das y que cumplan simultneamente con: No menos de 180 horas trabajadas, el premio ser de $200. Ms de 170 horas y menos de 180 horas, el premio ser de $150.
Realizar el diagrama que leyendo el archivo de datos determine e imprima: Cdigo de sucursal, Cdigo de empleado y premio de los empleados que cumplan con las disposiciones anteriores, Importe total de los premios que deben pagar cada sucursal, Importe total que la empresa pagar.
14. Una empresa que vende lubricantes registra en un archivo de registros: NroCli NroCli: NroLubr: CantVen: PU: N de Cliente N de Lubricantes Cantidad vendida Precio por Unidad NroLubr CantVen PU
Toda est informacin est ordenada por N de Cliente. Determinar e imprimir: 15. El N de Cliente que compr ms en pesos Cuantos Clientes compraron ms de 100 latas en total Cantidad de latas vendidas de lubricante 31667 entre todos los clientes. Se realiza una encuesta en distintas provincias. Por cada persona que responde se genera un registro con: Cdigo de la provincia Edad Cdigo de los estudios cursados: 1.Primarios; 2. Secundarios; 3. Universitarios; 4.Terciarios; 5.Ninguno
La informacin se ordena por provincia y se graba en un archivo. Se pide: - Cantidad de personas con estudios primarios - Cantidad de personas con estudios secundarios - Para cada provincia: 1. Cdigo de la provincia 2. Total de encuestados Cdigo de la provincia que tuvo mayor cantidad de personas sin ningn estudio. Pg. 26 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA 16. En una empresa se preparan registros por cada venta individual segn se indica: Mes Importe
Estos registros, estn grabados en un archivo, y estn ordenados por mes. Se pide calcular: - Total y promedio de ventas de cada mes - Promedio anual de ventas - Total anual de ventas Imprimir adems la siguiente planilla con los ttulos que se indican: Mes Xx Xx Promedio anual de ventas Total anual EMPRESA NNN Total Xx Xx Promedio Xxx.xx Xxx.xx xxx.xx xxxx.xx
17. En una empresa se emiten comprobantes por cada venta que se realiza. Cada comprobante da origen a un registro de un archivo con la siguiente informacin: Ao Mes Da Importe
A fin de ao se procesa el archivo que est ordenado secuencialmente por mes y por da. Se pide la planilla siguiente: EMPRESA NNN Mes Da Importe 01 01 xxx.xx 01 01 xxx.xx Total diario 2000 01 01 xxx.xx ------------------------------------------------------------------------(das restantes) ------------------------------------------------------------------------Total Mensual xxx.xx ------------------------------------------------------------------------(meses restantes) ------------------------------------------------------------------------Total Anual xxxx.xx Ao 2000 2000 Cuando se produce el corte; Por da : dar el total diario. Por cambio de mes : dar el total mensual. Al final : total diario, mensual y anual. 18. Un banco tiene varias sucursales, cada una de las cuales tiene un gran nmero de cuentas corrientes. Al final de cada mes se desea conocer el capital existente en: - Cada cuenta corriente Cada sucursal Total en el banco. Para ello se prepara un archivo de registros clasificado por sucursal y por nmero de cuenta corriente: Sucursal CtaCte Importe Cdigo
Puede haber ms de un registro con el mismo nmero de cuenta corriente. CODIGO puede tomar dos valores: D - depsito, E - Extraccin. Pg. 27 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA La planilla que se pide es la siguiente
Pg. 28 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA EMPRESA NNN CUENTA CORRIENTE IMPORTE 1007 1000 1007 2000 2054 2000
CODIGO D D 3000 E
Total Cta.Cte. -2000 --------------------------------------------------------------------------------------(dems Ctas. Ctes.) --------------------------------------------------------------------------------------Total sucursal xxxx -----------------------------------------------------------------------------------------------(dems sucursales -----------------------------------------------------------------------------------------------Total banco
xxx
19.Una empresa de venta de accesorios de automviles comercializa 100 artculos como mximo. Para controlar sus exigencias y sus ventas genera un archivo con la siguiente informacin por cada artculo: Un primer registro por cada artculo con: NROART NroArt Cant : nmero de artculo - CANT: cantidad de unidades en existencia
A continuacin un lote de registros, uno por cada venta, con: NroArt Cant NROART: nmero de artculo - CANT: cantidad de unidades de cada venta. Habr, por lo menos, un artculo con sus ventas. Puede ser que de algn artculo no haya ventas. Imprimir: - Saldo final de cada artculo y su nmero. - Al final del proceso indicar el N de artculo - Si de algn artculo se vende ms de lo que hay en existencia detener el proceso con un texto aclaratorio ( sin imprimir el mnimo). - Indicar si se procesaron ms de 100 artculos - Calcular el promedio de las cantidades vendidas por artculo exclusivamente para los artculos que tienen ventas. 20. Se conocen - Las tarifas particular y comercial del KW. - El consumo mnimo de ambas categoras
Adems se dispone de un archivo de usuarios en el que cada registro contiene NroZona Nombre Calle Nro TipoUsuario Consumo
Los usuarios estn ordenados por zona P o C Se pide: - Listar para cada zona de aquellos usuarios que superen el consumo mnimo lo siguiente: - Tipo de Usuario - Nombre - Calle y Nmero - Consumo e importe
Pg. 29 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA - Informar para cada zona: - Nombre y consumo promedio de los usuarios particulares - La direccin del usuario comercial cuyo consumo haya sido el mximo registrado en esa zona. - El total facturado y la cant. De usuarios de cada categora que abonen el mnimo. Informar adems al final del listado: - Zona con mayor cantidad de usuarios comerciales - Zona que registra el menor consumo. Archivos:Actualizacin 1. Dado un Archivo Maestro secuencial con datos de usuarios de una empresa proveedora de energa elctrica con la siguiente estructura: Nro_U Nombre Domicilio Tipo_U (a - b - c) Consumo prom
el cual se actualiza, mes a mes, a partir de las novedades (altas, modificaciones y bajas) almacenadas en otro archivo secuencial de Movimientos. Puede haber ms de una novedad para cada usuario y las bajas son fsicas. a) Disee el ambiente, con todas las estructuras de datos necesarias para realizar el proceso de actualizacin. Tenga en cuenta que los nombres de variables se ajusten al algoritmo del punto b). b) Dado los siguientes algoritmos, marque los errores que encuentre y desarrolle las subacciones usadas en el mismo que estn subrayadas. b.1) Algoritmo Abrir_Archivos Leer_Maestro Leer_Movimiento MIENTRAS (Reg_Mae.Nro_U <> High Value) o (Reg_Mov. Nro_U <> High Value) HACER SI Reg_Mae. Nro_U < Reg_Mov. Nro_U ENTONCES ESCRIBIR(Arch_sal, Reg_sal) Leer_Maestro SINO SI Reg_Mae.Nro_U = Reg_Mov. Nro_U ENTONCES MIENTRAS Reg_Mae.Nro_U = Reg_Mov.Nro_U HACER Proceso_Movim Leer_Movimiento FMientras Reg_sal : = Aux ESCRIBIR(Arch_sal, Reg_sal) Leer_Maestro SINO Con Reg_Mov Aux.Nro_U : = Nro_U; Aux.Nombre : = Nombre; Aux.Domicilio : = Domicilio; Aux.Tipo_U : = Tipo_U; Aux.Consumo_Prom : = Consumo_prom; F con; Leer_Movimiento MIENTRAS Aux = Reg_Mov.Nro_U HACER Proceso_Movim FMientras Reg_sal : = Aux ESCRIBIR(Arch_sal, Reg_sal) FSI; FSI; Fmientras; Cerrar(Arch_sal) Pg. 30 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA b.2) Algoritmo Abrir_Archivos Leer_Maestro Leer_Movimiento MIENTRAS (Reg_Mae.Nro_U <> High Value) o (Reg_Mov. Nro_U <> High Value) HACER SI Reg_Mae. Nro_U < Reg_Mov. Nro_U ENTONCES Reg_sal : = Reg_mae ESCRIBIR(Arch_sal, Reg_sal) SINO SI Reg_Mae.Nro_U = Reg_Mov. Nro_U ENTONCES Aux : = Reg_mae MIENTRAS Reg_Mae.Nro_U = Reg_Mov HACER Proceso_Movim FMientras Reg_sal : = Aux ESCRIBIR(Arch_sal, Reg_sal) Leer_Maestro SINO Leer_Movimiento MIENTRAS Aux.Nro_U = Reg_Mov.Nro_U HACER Proceso_Movim Leer_Movimiento FMientras Reg_sal : = Aux ESCRIBIR(Arch_sal, Reg_sal) FSI; FSI; Fmientras; Cerrar(Arch_sal) b.3) Algoritmo Abrir_Archivos Leer_Maestro Leer_Movimiento MIENTRAS (....................<> High Value) o (Reg_Mov. Nro_U <> High Value) HACER SI Reg_Mae. Nro_U < Reg_Mov. Nro_U ENTONCES Reg_sal : = Reg_mae RE-ESCRIBIR(Arch_sal, Reg_sal) Leer_Maestro SINO SI Reg_Mae.Nro_U = Reg_Mov. Nro_U ENTONCES Aux : = Reg_mae MIENTRAS Reg_Mae.Nro_U = Reg_Mov.nro_U HACER Proceso_Movim Leer_Movimiento FMientras Reg_sal : = Aux ESCRIBIR(Arch_sal, Reg_sal) SINO Con Reg_Mov Aux.Nro_U : = Nro_U; Aux.Nombre : = Nombre; Aux.Domicilio : = Domicilio; Aux.Tipo_U : = Tipo_U; Aux.Consumo_Prom : = Consumo_prom; F con; Leer_Movimiento Pg. 31 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA MIENTRAS Aux = Reg_Mov.Nro_U HACER Proceso_Movim Leer_Movimiento FMientras Reg_sal : = Aux ESCRIBIR(......................, Reg_sal) Leer_Maestro FSI; FSI; Fmientras; Cerrar(Arch_sal) Mezcla 1. Suponer que los datos del ejercicio 2.01 se encuentran en 3 secuencias por separado, correspondientes a ISI, IQ y IEM, todas ordenadas por Nro. de Legajo. Generar un algoritmo que permita fusionar estas en una sola secuencia, respetando el orden y la estructura.
Pg. 32 de 42
TRABAJO PRACTICO N 3
Tratamiento de Arreglos 01. Para cada una de las consignas siguientes, genere un algoritmo que permita solucionarla (3 algoritmos) usando un arreglo de 100 nmeros enteros: a. Almacenar 100 nmeros. b. Localizar el nmero de mayor valor y el de menor valor, informar sus valores y sus posiciones. c. Contar y sumar todos los nmeros pares. 02. Genere un nico algoritmo que resuelva las 3 consignas del ejercicio anterior. 03. Dados un vector de reales a de n elementos, con n N0, y un nmero real x >= 0, calcular el valor y tal que: n y= (ai * xi) i=1 04. Considerando un arreglo de 50 nmeros enteros, confeccione un algoritmo para resolver las siguientes consignas: a. Transformarlo en un arreglo donde todos sus elementos sean mltiplos de 3. b. Crear otro arreglo que contenga los nmeros que no cumplieron la condicin. c. Informar cuntos nmeros cumplieron la condicin. 05. Dados 2 vectores: A: arreglo [1 .. 30] de reales y B: arreglo [1 .. 30] de reales, ambos ordenados de forma creciente, escribir un algoritmo que realice la mezcla de ambos para obtener otro vector C: arreglo [1 .. 60] de reales, tambin ordenado de forma creciente. 06. Escribir un algoritmo que permita cargar un arreglo de N nombres, considerando que cada nombre debe tener entre 1 y 10 caracteres. 07. Escribir un algoritmo que permita localizar un nombre en un arreglo de N nombres, ordenados alfabticamente. Cada nombre puede tener, como mximo, 10 caracteres Escriba por lo menos dos algoritmos que permitan solucionar el problema; especifique cul de las formas considera ms eficiente y por qu. 08. Repita el ejercicio anterior, pero suponiendo que se precisa localizar todos los nombres que comienzan con una letra dada. 09. Se posee un arreglo de 200 libros con el siguiente formato: NRO_LIBRO | TITULO | AUTOR | CANT_HOJAS ; ordenado por AUTOR y se presentan las siguientes premisas: a. Se necesita saber que libros se poseen de Nicklaus Wirth. b. Se necesita saber en qu posicin se encuentra Algoritmos + Estructuras de Datos=Programa. c. Se necesita saber cual es el libro de Nicklaus Wirth de mayor volumen. 10. Dado un arreglo de 50 elementos, cada uno de los cuales tiene los siguientes datos: Cdigo de localidad y Lluvia cada en un ao. Escribir un algoritmo que permita saber dada una localidad, cuanto llovi en el ao. Aplicar el mtodo mas adecuado considerando que el arreglo esta ordenado por Cdigo de localidad. 11. Dado un arreglo de 100 elementos, que contiene la siguiente informacin sobre videos: Ttulo de la pelcula, Nombre del Director, Categora de pelcula, Cantidad de personas que la vieron, Alquilado (si/no); y est ordenado por el Ttulo de la pelcula, disee un algoritmo que, ingresando una categora, liste todas las pelculas que pertenecen a dicha categora. 12. A partir del arreglo de videos descrito en el ejercicio anterior, disee un algoritmo que permita atender un pedido de alquiler, para lo cual debe verificar si es posible o no y, cuando corresponda, actualizar la cantidad de personas que vieron dicha pelcula. 13. Se precisa ordenar un arreglo de N alumnos de mayor a menor, de acuerdo a la cantidad de materias aprobadas. Cada elemento del arreglo contiene Nro. de Legajo y Cantidad de materias aprobadas. Escriba por lo menos dos algoritmos que permitan solucionar el problema; especifique cul de las formas considera ms eficiente y por qu.
Pg. 33 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA 14. El mes que viene se realizar en Buenos Aires el desfile Alta Moda 2005 , el cual rene a los diseadores ms reconocidos del pas. Para organizar las pasadas, se dispone de un arreglo por diseador, con la siguiente informacin: nombre de el/la modelo y altura. La directora del evento necesita que se imprima cada lista ordenada de acuerdo a la altura de el/la modelo. Escribir un algoritmo que permita ingresar los datos de cada diseador e imprimirlos de acuerdo a lo solicitado. 15. Se precisa ordenar un arreglo de enteros de menor a mayor, eliminando los nmeros repetidos. 16. Una empresa que comercializa una cierta cantidad de artculos diferentes desea confeccionar un ranking de ventas de los mismos, a partir de una secuencia que contiene: NRO_ARTICULO | TIPO | CANT_VENDIDA, ordenado por artculo. Escribir un algoritmo que emita el ranking deseado en orden decreciente por cantidad. 17. Se precisa generar una secuencia con los datos de los 10 videos ms vistos de una categora, a partir de una secuencia de entrada de 200 registros que contiene el Ttulo de la pelcula, Nombre del Director, Categora de pelcula, Cantidad de personas que la vieron y que est ordenada por el Ttulo de la pelcula. 18. Se precisa disear una agenda electrnica, donde se archivar el nombre, la direccin y el telfono de hasta 50 personas. Disee un algoritmo que permita efectuar consultas, modificaciones, eliminaciones de los datos de una persona y agregados de nuevas personas (slo ser posible incorporar una persona si hay menos de 50 archivadas en la agenda). Los datos se hallan almacenados en una secuencia. Considere que la agenda siempre debe mantenerse ordenada alfabticamente. 19. Escribir un algoritmo que emita cul es y dnde est ubicado el mayor elemento de cada fila de una matriz, e imprima un mensaje si todos los mayores se encuentran en la misma columna. 20. Dadas dos matrices A y B, cuadradas, de 5 x 5, con nmeros enteros, cargar una matriz C, de 5 x 5 teniendo en cuenta las siguientes condiciones: la diagonal principal completar con ceros, en las posiciones que estn por encima de la diagonal principal, copiar los correspondientes elementos de la matriz A y en las posiciones que estn por debajo de la diagonal principal, copiar los elementos correspondientes de la matriz B. 21. En un sector de un hospital, donde se encuentran internados 50 pacientes, se toma la temperatura de cada paciente 4 veces al da durante una semana. Lectura 1 2 3 4 Dom XX XX XX XX Lun XX XX XX XX Mar XX XX XX XX Mie XX XX XX XX Jue XX XX XX XX Vie XX XX XX XX Sab XX XX XX XX
Se dispone de un arreglo con la informacin recopilada de todos los pacientes. Construir un algoritmo que: a. Liste por pantalla las temperaturas mxima y mnima de cada paciente, indicando el da y lectura en la que ocurrieron. b. Genere un nuevo arreglo que contenga la temperatura promedio por da de cada paciente. 22. Una Fbrica que posee 4 plantas de produccin en nuestro pas y compra materia prima a 3 proveedores distintos, desea realizar un control de los montos totales correspondientes a compras realizadas en cada planta durante el ltimo ao, discriminados por proveedor y por mes. Para ello dispone de un archivo con los datos de las facturas correspondientes. (Aclaracin: el archivo no est ordenado por ningn criterio) COMPRAS Nro_Factura Proveedor Fecha Nro_planta Importe (A, B, C) (dd/mm/aaaa) (1..4) 23. Se cuenta con informacin acerca de los cajeros de un Supermercado, el cual se halla estructurado en 10 cajas registradoras. Dicha informacin est registrada en una secuencia que contiene Apellido y Nombre del empleado, nmero de caja que tiene asignada, importe facturado y horario de facturacin; la secuencia est ordenada Pg. 34 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA alfabticamente por Apellido y Nombre. Se solicita una estadstica de los importes facturados, discriminado por nmero de caja y franja de horas y adems los montos totales, segn el siguiente formato: Cajas 8-10 1 ......... ........ ......... 10 ......... Total x horas ......... Franja de horas 10-12 12-16 16-18 ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... ......... Total x Cajas 18-20 ......... ......... ......... ......... ......... ......... ......... .........
24. Se dispone de un archivo secuencial de facturas de una empresa de energa elctrica, correspondientes a un ao, con el siguiente formato: NroFact NroUsuario Zona Fecha Consumo (en Kw.)
Se desea obtener un cuadro estadstico que informe los consumos y los importes totales facturados por mes discriminados por zona, con el siguiente formato: Zona A Zona B Zona C Zona D Total por Mes Enero Febrero .... Diciembre Total por Zona
Total General
La ciudad est dividida en 4 Zonas (A,B,C,D) , la tarifa por Kw. que cobra la empresa en cada una de ellas es: Zona A: $ 0,05, Zona B: $ 0,07, Zona C: $ 0,09 y Zona D: $ 0,13. 25. Se desea efectuar una estadstica de ventas. Se cuenta para ello con una secuencia de las facturas emitidas, las cuales son identificadas por un Nmero; dicha secuencia contiene informacin relativa al cliente: su Nmero y Zona a la cual pertenece, como as tambin el Tipo de mercadera entregada, la Cantidad de unidades, el total gravado, el total exento de IVA y el valor del IVA. Construya un algoritmo que emita por zona, y dentro de la zona por tipo de mercadera el total de unidades vendidas, el total gravado, el total exento y el total de IVA, y adems un total general con la misma informacin. Hay 9 zonas y 4 tipos de mercadera. 26. La Municipalidad de Resistencia desea obtener una estadstica de los valores ( en $) de los terrenos de la ciudad, discriminados por zona y ubicacin dentro de la manzana (en esquina, interna, etc.), y los totales por zona y ubicacin. El valor de cada final de cada terreno es igual a: Valor del Terreno = Superficie terreno (en M2) * valor del M2 * coeficiente de incremento Para ello cuenta con la siguiente informacin: a) un archivo de los terrenos con los siguientes datos: Nro_terreno Zona Ubicacin Superficie_terreno ( en M2) Zona: codificadas de A a F Ubicacin: codificada de 1 a 10 b) un arreglo V que contiene los valores del M2 por zona. Ejercicios Complementarios T.P. Nro. 3 1. Escribir un algoritmo que tome como entrada 2 arreglos A y B de enteros, de longitud n y devuelva como salida otro vector C, conteniendo los componentes de B para los que los correspondientes de A sean negativos. Adems emitir el vector C e informar el valor y la posicin del elemento mayor de C. Pg. 35 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA 2. Dado un vector con los siguientes datos de libros: Autor, Ttulo, Cantidad de hojas, en donde un autor puede tener varios libros, determinar cul es el Ttulo del libro con mayor cantidad de hojas, para cada Autor, generando el siguiente listado: Autor Ttulo Cant. de hojas .......... ........... ........................... Considerar que el arreglo est ordenado por Autor y posee 50 elementos. 3. En el Laboratorio de I.S.I. se desea emitir un listado de los totales de horas ociosas de cada uno de los equipos (son 20 en total), ordenados en forma decreciente. Para ello se tiene la siguiente informacin almacenada en un fichero secuencial: cd_equipo descrip aaaa fecha_falla mm dd cant_hs_ociosas
a. Considerar que el fichero se encuentra ordenado por cdigo de equipo. b. Considerar que el fichero est desordenado. 4. Se dispone de una secuencia con datos de alumnos de la Facultad: Nro. legajo, apellido y nombre, domicilio, fecha ingreso, cant. de materias aprobadas, promedio, carrera, edad. a. Se desea emitir una estadstica de cantidad de alumnos con ms de 20 materias aprobadas, por carreras y grupos de edades, con el siguiente formato: Edades Carreras ISI IQ IEM Totales por Grupos de Edades b. Se desea emitir una estadstica de cantidad de alumnos con promedio mayor o igual que 7, por carreras y grupos de edades, con el mismo formato que se us en 4.a. 5. Dada una matriz de N x N confeccionar un algoritmo para cargarla de la siguiente forma: - Cada a[i,j] = i + j - Los elementos de la ltima fila a[N,j] = Sumatoria de a[i,j], donde i vara entre 1...(n-1) - Los elementos de la ltima columna a[i,N] = Sumatoria de a[i,j], donde j vara entre 1...(n-1) - La posicin a[N,N] = Sumatoria de a[i,j], donde i = j Ejemplo: 2 3 4 9 3 4 5 12 4 5 6 15 9 12 15 12 18 - 25 26 - 30 31 o ms Total por Carrera
6. Se lleva a cabo una encuesta a fin de anticipar los posibles porcentajes de votos que obtendrn cada uno de los 4 partidos polticos de mayor peso en las elecciones. Los datos solicitados a los encuestados son: partido al que votara, edad, sexo y partido al que vot en las elecciones anteriores. Las respuestas se tabulan de acuerdo a los siguientes criterios: - Partidos: P1, P2, P3, P4, Otro, En Blanco, Indeciso - Edad: 18-25, 26-35, 36-45, 46-55, 56-65, +65 - Sexo: Femenino, Masculino Disee un algoritmo que, utilizando un arreglo de 4 dimensiones (partido al que votara, edad, sexo , partido al que vot), permita responder a las siguientes consultas: Cantidad de personas de cierta edad que votarn a un Partido dado.
Pg. 36 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA Cantidad de personas de un sexo dado que votarn a un determinado Partido. Cantidad de personas de cierta edad que votaron a un determinado Partido y actualmente votarn a otro Partido dado. Cantidad de personas de un sexo dado que votaron a un determinado Partido y actualmente votarn a otro Partido dado. 7. Disee un algoritmo que basndose en los datos del ejercicio anterior construya los siguientes cuadros: - Partido actual/Partido anterior - Partido actual/Edad - Partido actual/Edad/Sexo 8. Con la secuencia de facturas del ejercicio 25, se precisa generar otra secuencia actualizada, a partir de una secuencia de Descuentos a clientes, la cual solamente contiene el Nmero correspondiente al cliente, su Razn Social, y Porcentaje de descuento. Dicho porcentaje se fija a travs de una tabla que establece la relacin entre el total (con IVA) de las compras realizadas en el mes, considerado por rangos, y un determinado descuento del que gozar el cliente en el mes siguiente. Se desea adems contar con un listado de los descuentos establecidos para el mes. Construya un algoritmo que satisfaga los requerimientos enunciados; considere que la secuencia de facturas es consistente, es decir no hay facturas de clientes no registrados, pero pueden existir clientes que no hayan efectuado compras en el mes.
Pg. 37 de 42
TRABAJO PRCTICO N 4
Tratamiento de Listas 1. Disear un algoritmo para acceder al k-simo elemento de una lista. - Si la lista esta vaca o si el valor de k esta fuera del rango del ndice de la lista, invocar al procedimiento de ERROR. En cualquier otro caso, retornar el valor solicitado. 2. Disear un algoritmo para eliminar el k-simo elemento de una lista. - Si la lista est vaca o si el valor de k esta fuera del rango del ndice de la lista, invocar al procedimiento de ERROR. En cualquier otro caso, efectuar el procedimiento de ELIMINACIN. 3. Disear un algoritmo para insertar un nuevo elemento en el k-simo lugar de una lista. - Si la lista esta vaca o si el valor de k est fuera del rango del ndice de la lista, invocar al procedimiento de ERROR. En cualquier otro caso, efectuar el procedimiento de INSERCIN. 4. Se dispone de una lista simplemente encadenada de nmeros enteros, disear un algoritmo que a partir de ella genere otra lista conteniendo los nodos cuyos datos terminan en cero; dichos elementos, debern ser eliminados de la lista original. Se asume que la lista est cargada, y que el algoritmo recibe como parmetro de entrada la direccin del primer elemento. 5. Dada una lista simplemente encadenada de nmeros disear un algoritmo que calcule en forma independiente: La suma de los nmeros impares. y la suma de los nmeros pares. 6. Dada una lista simplemente encadenada de nmeros enteros , disear un algoritmo que a partir de ella genere otra lista conteniendo los nodos cuyos datos sean mltiplos de 3, dichos elementos debern ser eliminados de la lista original. Se asume que la lista est cargada y que el algoritmo recibe como parmetro de entrada la direccin del primer elemento. 7. Se dispone de una lista simplemente encadenada cuyos registros estan ordenados en forma ascendente por una clave de tipo entero; disear un algoritmo que invierta el orden de la lista. 8. Escribir un algoritmo que permita buscar, insertar o borrar un elemento identificado con una clave determinada en una lista circular simplemente encadenada. 9. Dada una lista circular con los datos de los socios de un club: nmero, nombre y condicin ( A= alta, B= baja); hacer un algoritmo que cree otra lista simplemente encadenada con los socios mltiplos de 100, que no estn dados de baja y eliminar de la lista original los socios dados de baja ( cond = B). 10. Dada una lista doblemente encadenada que contiene datos de todas las provincias de la Repblica Argentina: nombre, capital, cantidad total de habitantes y cantidad de analfabetos, y est ordenada alfabticamente por nombre de provincia, se desea generar otra lista simplemente encadenada pero ordenada en orden decreciente por nmero de habitantes analfabetos. 11. De la lista generada en el ejercicio anterior generar otras tres listas que contengan el nombre, la capital y el porcentaje de analfabetos de las Provincias que respondan a las siguientes restricciones. L1: < = 10 % analfabetos L2: 16 a 25 % analfabetos L3: > = 26 % analfabetos 12. Supngase que, utilizando una lista encadenada, se implementa una cola Q (estructura "FIFO", es decir, "primero en entrar, primero en salir"). Disear un algoritmo que permita insertar o extraer un elemento, comprobando siempre si la cola esta vaca o no. 13. Supngase que, utilizando una lista encadenada, se implementa una pila P (estructura "LIFO", es decir, "ltimo en entrar, primero en salir"). Disear un algoritmo que permita insertar o extraer un elemento, comprobando siempre si la pila esta vaca o no. 14. Se desea ingresar una serie de nmeros, e imprimirlos en el orden contrario al de ingreso. Disear un algoritmo que satisfaga tal requerimiento, utilizando la estructura de datos ms apropiada. Pg. 38 de 42
1.2.
El algoritmo de Euclides para encontrar el MCD (mximo comn divisor) de dos nmeros enteros positivos (m y n) se puede definir recursivamente. Algoritmo de Euclides: el MCD de dos enteros es el entero mayor que divide a ambos. Dividendo m n r1 Divisor n r1 r2 Cociente q1 q2 q3 Resto r1 r2 r3
Cuando el ltimo resto es cero (por ej. r3 = 0), el MCD es el ltimo divisor (en ese caso, r2). El algoritmo recursivo se puede definir con los siguientes pasos: MCD (m,n) = n, si n<= m y n divide a m MCD (m,n) = MCD (n,m) si m > n MCD (m,n) es MCD (n, resto de m dividido por n) Para simplificar el algoritmo considerar que siempre m> n 2. Crear un procedimiento recursivo para solucionar cada uno de los enunciados siguientes: 2.02. Obtener el nmero inverso de un nmero n (siendo n >= 0), el cual se genera invirtiendo las cifras. Por ej.: el inverso de 254 es 452. 2.03. Leer una palabra (una cadena de caracteres) y la cantidad de caracteres y generar su palndromo. El palndromo de Venezuela es aleuzeneV. 2.rboles 1. Responda las siguientes preguntas para el rbol de la figura: a) Qu nodos son hojas ? b) Qu nodo es raz? c) Cul es el padre del nodo C? d) Qu nodos son los hijos de C? e) Qu nodos son los antecesores de C? f) Qu nodos son los descendientes de E? g) Cules son los hermanos derechos de D y E? h) Qu nodos estn a izquierda y qu nodos a derecha de G? i) Cul es la profundidad del rbol? Pg. 39 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA j) Cul es la altura del nodo C?
A B D E I M N F J C G K H L
2. Cuntos caminos de longitud 3 hay en el rbol representado en la figura anterior ? 3. Dada la expresin de la siguiente lnea, dibujar el rbol equivalente [(x-y)*z] / (m+n**p) 4. Recorrer en los 3 modos el rbol siguiente:
* + A B
5. El recorrido en orden de un rbol binario produce la secuencia de nodos: dfcgbea. Dibujar el rbol. 6. Escriba un algoritmo que permita recorrer el siguiente rbol en los tres procedimientos, Realice la prueba de escritorio:
C D E
7. Escribir un algoritmo que permita conocer el nmero de nodos de un rbol binario. 8. Se dispone de un rbol binario de enteros. Escribir funciones que calculen: a) La suma de sus elementos. b) La suma de sus elementos que son mltiplos de 3.
Pg. 40 de 42
ALGORITMOS Y ESTRUCTURAS DE DATOS UNIVERSIDAD TECNOLOGICA NACIONAL - FACULTAD REGIONAL RESISTENCIA 9. Suponiendo que un rbol est definido como la estructura recursiva de datos: Arbol=registro X: entero; Izq, Dcha: arbol; Freg; Escribir un algoritmo que encuentre un elemento con una clave dada C, y realice una operacin P con l. 10. Convirtase la expresin ((a + b) + c * (d + e) + f) * (g + h) en a) expresin prefija b) expresin postfija. 11. Muestre que el mximo nmero de nodos de un rbol binario de altura h es (2 h+1 1). Un rbol binario de altura h con ese mximo nmero de nodos se denomina rbol binario lleno.
Pg. 41 de 42
EJERCICIOS COMPLEMENTARIOS
Secuencias de Texto, Arreglos y Listas 1. Dada una secuencia TEXTO se desea un algoritmo que cuente cuntas veces aparece la primera palabra del texto dentro del mismo y dentro de cada oracin. 2. Escribir un algoritmo que produzca una secuencia ORACION de salida, formada por palabras en posiciones impares y que finalicen con la letra N de una secuencia TEXTO de entrada; en la salida cambiar las vocales por su vocal inmediata siguiente. (Ej. Si es a, saldr e, si es usaldr a). 3. Escribir una algoritmo que permita desglosar una secuencia de caracteres en dos secuencias que contengan respectivamente los caracteres numricos y los no numricos contenidos en la secuencia original. Por final de proceso se deber informar la cantidad de caracteres de cada una de las secuencias y las frecuencias de aparicin de cada dgito ordenadas en forma creciente. 4. Dada una secuencia de texto (caracter, palabra, oracin, texto), se desea generar otra secuencia que contenga la cantidad de palabra de longitud par de cada oracin, y al final del proceso se emita un ranking decreciente por oracin. 5. Dado un texto, efectuar un algoritmo que lo recorra y detecte la frecuencia de vocales por oracin y luego liste dichos totales en rden decreciente. 6. Para un archivo texto confeccione un ndice de palabras, indicando para cada una, en que rengln se encuentra y conque ocurrencia. Enunciar literalmente la filosofa seguida en la solucin. Ejemplo: EXAMEN FINAL DE ALGORITMOS Y ESTRUCTURA DE DATOS 1. ESCRIBIR UN ALGORITMO QUE DADA DOS SECUENCIA ORACIN DE ENTRADA, DENOMINADAS ORAC1 Y ORAC2, GENERE UNA DE SALIDA, DE MANERA TAL QUE SE INTERCALEN LAS PALABRAS DE LAS SECUENCIAS DE ENTRADA, QUE CUMPLAN CON LA SIGUIENTE CONDICIN: DE ORAC1 SOLO ME INTERESAN LAS PALABRAS QUE COMIENZAN Y TERMINAN CON UNA VOCAL. DE ORAC2 SOLO ME INTERESAN LAS PALABRAS DE NO MS DE 5 CARACTERES. AL FINAL DEL PROCESO INFORMAR CANTIDADES DE PALABRAS DE TODAS LAS SECUENCIAS. 2. UN CLUB ESTA INFORMATIZANDO EL MANEJO DE LA COBRANZA DE LAS CUOTAS DE SUS SOCIOS, Y NECESITA ACTUALIZAR LOS REGISTROS DEL CORRIENTE AO, PARA ELLO CUENTA CON : SOCIOS-2000 (arch gral de los socios) de long variable e indexado por nro-socio NRO-SOCIO APELLYNOM DC C NRO-CUOTA IMPORTE 0 a 12 ................................................... PAGOS (archivo de de pagos efectuados) ordenado por nro-socio y nro-cuota NRO-SOCIO NRO-CUOTA IMPORTE CUANDO UNA CUOTA EST PAGADA DEBE INCORPORARSELA AL REGISTRO DE SOCIOS, EN ORDEN CRECIENTE POR NRO-CUOTA; Y SI EL SOCIO DEBE CUALQUIER CUOTA ANTERIOR AL MES ACTUAL DEBE PRODUCIRSE UNA SALIDA EN: ADEUDA (archivo de deudores) NRO-SOCIO NRO-CUOTA
3. ENUNCIE UN TROZO DE ALGORITMO QUE PRODUZCA LA INSERCIN DE UN ELEMENTO EN UNA LISTA DOBLE. 4. ESCRIBA UN TROZO DE ALGORITMO PARA APLICAR UNA BSQUEDA BINARIA SOBRE UN ARREGLO UNIDIMENSIONAL. 5. CLASIFIQUE LOS DATOS Y SUS ESTRUCTURAS, Y DESCRIBA EN PARTICULAR LAS LISTAS LINEALES.
Pg. 42 de 42