Está en la página 1de 31

UNIVERSIDAD TECNOLGICA NACIONAL

FACULTAD REGIONAL CONCEPCIN DEL URUGUAY

GUA DE TRABAJOS PRCTICOS.


AO 2006
Materia: Carrera: Ao: Algoritmos y Estructuras de datos Ing. en Sistemas de Informacin Primero

Carga horaria: 9 horas semanales

PROFESORES: ING. CLAUDIA LVAREZ. AUS. PASCUAL PONTELLI. ING. ROSSANA SOSA ZITTO.

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

Trabajo Prctico N 1 Entender el Problema. 1. Dadas las longitudes de los 2 catetos de un triangulo rectngulo, hallar la longitud de la hipotenusa. 2. Dadas las horas trabajadas por un operario y el valor de las mismas, determinar que sueldo percibe dicho operario. 3. Dados dos valores A y B distintos, determinar cul es el mayor. 4. Dados dos valores A y B determinar si A es mayor que B. 5. Crear dos problemas elementales, uno de evaluacin y otro de decisin. 6. Determinar si una palabra cualquiera es un palndromo (capica); por ejemplo radar. 7. Dada una lista de 5 valores determinar si se encuentran ordenados en forma creciente. 8. Dado un nmero hallar su factorial. 9. Hallar el rea de un cuadrado, cuyos lados tienen la longitud de la hipotenusa de un tringulo rectngulo cuyos catetos son dados. 10. Dados los catetos de un tringulo rectngulo, hallar el rea del cuadrado cuyo lado es la hipotenusa, si esta es mayor que 200, caso contrario, hallar el rea del cuadrado cuyo lado es el doble de la hipotenusa. 11. Dada una lista de valores numricos, hallar su rango, es decir, la diferencia entre su valor mximo y su valor mnimo. 12. Dada una lista de valores enteros positivos, hallar cuantos valores mayores que 1000 hay. Si esta cantidad es menor que 20, calcular su factorial. 13. Dadas las calificaciones de 7 exmenes finales de un estudiante determinar el promedio. 14. Dada una lista de 4 Ns determinar si el N 2 se encuentra en dicha lista. 15. Dados 5 Ns hallar el mximo. 16. Calcular la sumatoria de los Ns comprendidos entre 150 y 200. 17. Dada una medida en pies convertir a sus equivalentes: a) Yardas (1 pie = 12 pulgadas). b) Pulgadas (1 yarda = 3 pies). c) Centmetros (1 pulgada = 2.,54 cm.). d) Metros (1mt. = 100cm.).

Prof. AUS. Pascual Pontelli

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

TRABAJO PRCTICO N 2 ESTRATEGIA. 1. Determinar si dos nmeros enteros positivos son primos relativos (esto es si no tienen divisores comunes con excepcin del nmero 1). 2. Dada una lista de valores numricos, hallar su rango, es decir, la diferencia entre su valor mximo y su valor mnimo. 3. Dada una lista de valores enteros positivos, hallar cuantos valores mayores que 1000 hay. Si esta cantidad es menor que 20, calcular su factorial. 4. Disear estrategias de los problemas que se detallan, determinando, en caso de ser necesario, las partes principales de los mismos. a) Dada una lista de valores enteros, (N), emitir el mensaje Lista Ordenada si todos los valores estn ordenados en forma creciente, caso contrario, emitir el mensaje Lista Desordenada. b) Idear un problema no computacional y disear una estrategia para la resolucin del mismo. c) Construir las estrategias de los dos ejemplos dados en clase sobre el clculo del rea del cuadrado relacionado con un triangulo rectngulo. 1. Escriba en forma imperativa las instrucciones que le dara a una persona para que se comunique con otra desde un telfono pblico. Suponiendo que esa persona no encuentra ningn inconveniente para efectuar la llamada. 2. Escriba las instrucciones a seguir para cambiar las ruedas de un auto sabiendo que la rueda tiene 4 tuercas de sujecin. 3. dem anterior pero para cocinar una tortilla. 4. dem anterior pero para andar en bicicleta.

Prof. AUS. Pascual Pontelli

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

TRABAJO PRCTICO N 3 SECUENCIA. 1. Leer tres nmeros de a una por vez, calcular su suma y su producto. 2. Dadas las longitudes de los 2 catetos de un triangulo rectngulo, hallar la longitud de la hipotenusa. 3. Dadas las horas trabajadas por un operario y el valor de las mismas, determinar que sueldo percibe dicho operario. 4. Hallar el rea de un cuadrado, cuyos lados tienen la longitud de la hipotenusa de un tringulo rectngulo cuyos catetos son dados. 5. Dadas las calificaciones de 4 exmenes finales de un estudiante determinar el promedio. 6. En una carrera de turismo carretera el tiempo se mide en minutos, segundos y centsimas de segundo y el espacio recorrido se mide en metros. Disee un algoritmo para determinar la velocidad promedio de un automvil en km/hr. 7. Disee un algoritmo que determine el porcentaje de varones y de mujeres que hay en un recinto, dado el total de personas, cantidad varones y mujeres. 8. Dados dos nmeros a y b, se desea intercambiar sus valores, utilizando una variable auxiliar. 9. Un millonario excntrico tena tres hijos: Carlos, Jos y Marta. Al morir dej el siguiente legado: A Jos le dej 4/3 de lo que le dej a Carlos. A Carlos le dej 1/3 de su fortuna. A Marta le dejo la mitad de lo que le dej a Jos. Preparar un algoritmo para darle la suma a repartir e imprima cuanto le toc a cada uno. 10. Dada una medida en pies convertir a sus equivalentes: a. Yardas (1 pie = 12 pulgadas). b. Pulgadas (1 yarda = 3 pies). c. Centmetros (1 pulgada = 2.,54 cm.). d. Metros (1mt. = 100cm.).

Prof. AUS. Pascual Pontelli

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

TRABAJO PRCTICO N 4 ESTRUCTURAS CONDICIONALES. CONDICIONAL SIMPLE Deducir si un numero ledo es positivo. Mostrar si un numero es mayor que 10. Leer el nombre y sueldo de una persona mostrar si este gana mas de 500 pesos. Dados dos nmeros si el primero es divisible por el segundo mostrar un mensaje que as lo indique. 5. Ingresar 1 par de valores, emitirlos y si ambos son positivos, emitir tambin su promedio. 6. Dados dos nmeros si el primero es divisible por el segundo intercambiarlos. 1. 2. 3. 4. CONDICIONAL ALTERNATIVO 7. Deducir si un numero ledo es positivo o negativo. 8. Dados tres nmeros enteros positivos, determinar cual es el mayor. 9. Leer tres letras, encontrar y visualizar cul viene primero en el alfabeto. 10. Confeccionar un algoritmo tal que dados dos nmeros enteros cualesquiera devuelva la suma de los mismos, si se cumple que el primero es menor que el segundo, en caso contrario devolver el producto de los mismos. 11. Se ingresa el nombre, edad y direccin de dos socios, se pide mostrar los datos de socio mas joven. 12. Dados tres nombres de alumnos mostrar si Gonzlez Pedro se encuentra entre ellos, de lo contrario emitir un mensaje No existe. 13. Dado un monto calcular el descuento considerando que por encima de 100 el descuento es del 10% y por debajo es del 2%, Se pide mostrar monto con descuento incluido. CONDICIONAL MLTIPLE 14. Escribir un algoritmo en el que se introduzca el nmero de un mes (1 a 12) y visualice el N de das de ese mes. 15. Emular una calculadora en la cual se ingresan 2 nmeros y el operador ( *, /, +, -) e imprime el resultado. CONDICIONAL ANIDADOS 16. Determinar si un ao dado es bisiesto o no. 17. Leer dos nmeros. Decir si el primero es divisible por el segundo, si esto se cumple decir si es un nmero par o impar. 18. Leer un nmero, si dicho nmero est comprendido entre 23 y 54, decir si es mltiplo de 3 o de 5. EJERCICIOS CONDICIONAL 19. Dadas las 4 notas obtenidas por un alumno, calcular e informar su promedio e informar una leyenda que indique si est aprobado o no. La condicin de aprobacin es obtener un promedio mayor o igual que 4. 20. Dados 3 nmeros, informarlos en orden creciente. 21. De una prueba de nivel realizada a un alumno se conoce la cantidad total de preguntas realizadas y la cantidad de respuestas correctas. Informar el nivel registrado de acuerdo a la siguiente escala : Muy Bueno si el porcentaje es mayor o igual a 90% Bueno entre 70% y 90% Regular entre 50% y 70% Malo si el porcentaje es menor que 50% 22. Una empresa fabrica tapas de material laminado en 2 formatos: cuadrado o rectangular. Cobra $9 el metro cuadrado. Se pide: a. Ingresar el cdigo de forma: 1-cuadrada, 2- rectangular. b. Si es 1- Ingresar el lado sino ingresar largo y ancho para calcular superficie para calcular y mostrar el costo total de la tapa.
Prof. AUS. Pascual Pontelli

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

23. Dados los coeficientes de una ecuacin de segundo grado, hallar las dos races reales o la nica raz. Si no tiene races reales emitir una leyenda que lo indique.

Prof. AUS. Pascual Pontelli

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

TRABAJO PRCTICO N 5 CICLOS. (MIENTRAS Y REPETIR) 1. Dada una secuencia de caracteres acabada en #, mostrar los nmeros (0..9) que en ella aparecen. 2. Construir un algoritmo que, dada una secuencia de enteros acabada con el valor cero, devuelva el mayor de ellos. Determinar cuantos nmeros negativos han aparecido. 3. Dada una secuencia de caracteres acabada en punto, obtener un algoritmo que determine cuantas veces aparece un determinado carcter, el cual ser ledo previamente. 4. Contar la cantidad de Ns negativos de una lista que finaliza con el N 0. 5. Escribir un algoritmo que permita leer una serie de enteros. Contar el N de valores introducidos y su suma. 6. Dada la siguiente situacin: se dispone de un mazo de cartas espaolas. Se debe sacar la primer carta y separarla. Luego sacar de a una carta por vez hasta encontrar una del mismo palo y nmero mayor a la primera. El problema planteado es determinar cuntas cartas fue necesario extraer del mazo. 7. Dada una lista de valores numricos, hallar su rango, es decir la diferencia entre su valor mximo y su valor mnimo. 8. Dada una lista de valores enteros positivos, hallar cuntos valores mayores que 1.000 hay. Si la cantidad es menor que 20 calcular su factorial. 9. Se dispone de un conjunto de tarjetas rojas y azules, las cuales estn numeradas en forma correlativa. El lote de tarjetas termina con una tarjeta blanca. El problema es determinar de las tarjetas del lote: cuntas son azules y con nmero par; cuntas son rojas y con nmero impar, y cuntas son las restantes (excepto la blanca). 10. Cuantos trminos de la serie h(n) son necesarios para satisfacer: h(n)=1 + + 1/3 + ... + 1/n > limite, siendo limite un valor conocido. 11. Hay un gran nmero de cajas cada una de las cuales contienen varias monedas de diferentes valores. Confeccionar un algoritmo que permita auxiliar en la solucin del problema que es determinar cuntas cajas como mnimo es necesario abrir para conseguir 100 monedas de 10 centavos. 12. Dada una lista de Ns terminada en un N negativo y un N n, se desea saber a)- cuantos Ns pares < que n se leyeron y de ellos cuantos son mltiplos de 5. b)- emitir el % de los mltiplos de 5 sobre el total de Ns pares y sobre el total de Ns ledos. c)- el % de N pares sobre el total de ledos. CICLOS (PARA) 13. Ingresar 5 pares de valores, en cada oportunidad emitir ambos valores y si ambos son positivos, emitir tambin su promedio. 14. Calcular la suma y el producto de los nmeros pares comprendidos entre 20 y 500. 15. Leer un lote de 475 valores de a uno por vez. Determinar y emitir el valor mximo del conjunto y el orden en que fue ledo. Si hay mas de un mximo considerar solo el primer valor hallado. 16. Ingresar un N y un carcter y mostrar dicho carcter repetido tantas veces como indica el N. 17. Hacer un programa que lea 100 Ns, indique cules son mltiplos de 2 y contarlos. 18. Hacer un programa que lea 8 caracteres e indique que cantidad de * y que cantidad de letras a aparecen. 19. A cunto asciende la suma de los nmeros pares comprendidos entre 300 y 1232? 20. Se efecta una encuesta entre 120 consumidores de cigarrillos. Las respuestas estn codificadas como 1, 2 3 segn sea la marca elegida. Preparar un algoritmo para ingresarle las 120 respuestas, y muestre por pantalla el nmero de la marca preferida. 21. Desarrollar un algoritmo que determine en un conjunto de 100 nmeros naturales: a) Cuntos son mayores que 15. b) Cuntos son mayores que 50. c) Cuntos estn comprendidos entre 25 y 45.
Prof. AUS. Pascual Pontelli

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

22. Obtener un algoritmo que permita calcular la siguiente serie: h(n)=1 + + 1/3 + ... + 1/n 23. Se leen 50 pares de Ns, c/u de los cuales tienen 2 valores: x e y distintos. Se pide contar en cuantos pares x>y y en cuantos y>x. 24. En un colegio de 1000 alumnos se ha registrado para cada uno de ellos un cdigo sealando su comportamiento acadmico. Dicho cdigo puede tomar valores 1, 2 o 3. Indicar cuntos alumnos obtuvieron cada una de las calificaciones tratando de a una calificacin por vez. 25. En una fbrica hay 4.000 obreros distribuidos en cinco secciones. Se requiere determinar cuntos obreros hay y el promedio de edad de los mismos por cada seccin. Asumir que se tiene como entrada los siguientes datos para cada obrero: N de empleado, seccin a la que pertenece y edad. 26. Construir un algoritmo que muestre por pantalla las tablas de multiplicar usuales hasta el N 10. Ej. 5 por 1 es 5 5 por 2 es 10 5 por 3 es 15 27. Construir un algoritmo que muestre por pantalla las tablas de multiplicar usuales para valores comprendidos entre a y b. (a<b). 28. Escribir un programa que escriba todos los nmeros primos comprendidos entre a y b.

Prof. AUS. Pascual Pontelli

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

TRABAJO PRCTICO N 6 SUBPROGRAMAS. PROCEDIMIENTOS . 1. Escribir un procedimiento Geometra tal que dado el alto y ancho de un rectngulo calcule el rea y el permetro. 2. Dados tres nmeros enteros distintos, obtener el mayor de las siguientes formas: a- Aplicando un procedimiento sin parmetros. b- dem con parmetros valor. c- dem con parmetros variables. 3. Escribir un procedimiento que calcule el valor del trinomio de 2do. grado ax2 + bx + c y devuelva el resultado en y. 4. Escribir un procedimiento que calcule el factorial de un N entero usando parmetro valor y variable. 5. Escribir los procedimientos correspondientes a la carga y visualizacin de un arreglo de x elementos. 6. Escribir un programa que acepte un arreglo (no ordenado), un valor cualquiera y obtenga la posicin del elemento si lo encontr. (Utilizar procedimientos para cada operacin). 7. Utilizar el procedimiento gettime para comparar los tipos de ordenamiento (seleccin, burbuja e insercin). Cul es el mejor para ordenar un arreglo de 1000 elementos?. Utilizar funcin random para generar los valores. 8. Escribir un programa tal que dados 2 arreglos uno de Nombres y otro de Sueldos: a- los cargue. b- los muestre por orden alfabtico. c- los muestre por orden de sueldo (de menor a mayor). d- dado un nombre consulte para determinar si est o no. FUNCIONES. 1. Disear una funcin que calcule potencias de forma xn y un programa que haga uso de la misma, para distintos valores de x y n. 2. Escribir una funcin que tenga un parmetro de tipo entero y que devuelva la letra P si el N es positivo y N si es negativo o cero. 3. Escribir una funcin lgica de dos parmetros enteros que devuelva True si uno divide al otro y False en caso contrario. 4. Escribir una funcin lgica digito, que determine si un carcter es uno de los dgitos de o a 9. 5. Escribir una funcin lgica vocal que determine si un carcter es una vocal. 6. Escribir una funcin que permita calcular la suma 1+2+3+ ... + n. 7. Escribir una funcin tipo calculadora donde se le da como entrada dos nmeros y el tipo de operacin y esta devuelve el resultado. 8. Escribir una funcin que dado un nmero entero, devuelva una seal que indique si dicho nmero es primo o no. 9. Escribir una funcin que dados 2 nmeros, calcule el porcentaje que el primero representa 10. respecto del segundo. 11. Escribir una funcin que dados a y b devuelva el cociente de la divisin entera, sin utilizar el operador correspondiente del lenguaje. Validar los tipos de datos de entrada. 12. Escribir una funcin que dados a y b devuelva el resto de la divisin entera, sin utilizar el operador correspondiente de lenguaje. Validar los tipos de datos de entrada.

Prof. AUS. Pascual Pontelli

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

TRABAJO PRCTICO N 7 ARREGLOS. 1. Leer un vector de 100 Ns reales, un componente por vez. Emitir la sumatoria de sus componentes. 2. Sea un lote de Ns enteros positivos que finaliza con un cero que no debe ser procesado. Generar un vector con dichos valores y calcular la productoria de sus componentes. 3. Leer un vector de N elementos, de a uno por vez. Generar y emitir la sumatoria de sus componentes de posicin par. 4. Generar y emitir el vector A = (1,0,1,0,1,0, ... ) de N elementos. 5. Leer un vector de 10 elementos reales y emitir las siguientes leyendas segn, corresponda: El vector tiene todas sus componentes positivas, El vector tiene componentes negativas, El vector tiene algn cero. 6. Leer un arreglo de 20 elementos de tipo carcter. Generar y emitir otro vector B tal que B[i] = A[i]. 7. Leer un vector de N elementos y emitir la posicin que ocupa el mayor de ellos. Si hay dos o ms valores iguales, se debe emitir la posicin menor. 8. Leer un vector de N elementos. Emitir el valor mnimo y la cantidad de veces que se repiti ese valor. 9. Leer un vector con la edad de un grupo de x cantidad de personas. Se pide mostrar la cantidad de jvenes considerando a una persona joven si su edad esta entre 20 y 40 aos. 10. Codificar un programa que acepte los valores de ventas de una librera en el ao 2000. Se pide: A- Definir la estructura capaz de almacenar dichas ventas. B- Cual fue la venta en el mes 10. C- Cual fue el promedio de ventas de ese ao. D- En que mes se produjo la mayor venta y de cuanto fue. E- dem para la menor. 11. Escribir un programa que invierta el contenido de un arreglo de n N enteros tal que el primero se vuelve el ltimo, el segundo el penltimo, y as sucesivamente. 12. Dados dos arreglos A y B ordenados alfabticamente de cardinalidad m y n respectivamente, formar un tercer arreglo C = A + B, tambin ordenado alfabticamente. 13. Dado un texto de un telegrama que termina en punto: contar la cantidad de palabras que posean ms de 10 letras y el % que representan estas sobre el total. informar la cantidad de veces que aparece cada vocal informar el porcentaje de espacios en blanco. Nota: Las palabras estn separadas por un espacio en blanco. 14. Dado un texto que finaliza en punto, se pide: la posicin inicial de la palabra ms larga, la longitud del texto, cuantas palabras con una longitud entre 8 y 16 caracteres poseen ms de tres veces la vocal a, Nota: - Las palabras pueden estar separadas por uno o ms espacios en blanco. - Pueden haber varios espacios en blanco antes de la primera palabra y tambin despus de la ltima. - Se considera que una palabra finaliza cuando se encuentra un espacio en blanco o un signo de puntuacin.

Prof. AUS. Pascual Pontelli

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

TRABAJO PRCTICO N 8 MATRICES. 1. Calcular la media de una lista de veinticinco alumnos de una clase de informtica con notas en cuatro asignaturas. 2. Una empresa con 20 sucursales que vende distintos tipos de artculos (30). Se desea acumular cantidad de ventas por sucursal y por artculo. 3. Dada una matriz de 5 filas y 10 columnas: a- Escribir el algoritmo necesario para cargar la matriz con valores. B- Determinar la sumatoria de c/u de las columnas. C- Mostrar el mayor valor de c/u de sus columnas. D- Mostrar la posicin (F,C) del menor valor de la matriz. 4. Dada una matriz rectangular realizar un programa que devuelva el mayor de los elementos contenidos en ella, considerando solamente aquellos en los cuales la suma de sus subndices es par. Es decir [1,1], [1,3], [1,5] ... [2,2], etc. 5. Se tiene una matriz de 150 filas y 12 columnas de celdas reales. Las filas representan 150 clientes y las columnas los 12 meses del ao. Cada celda contiene el monto total facturado a cada cliente c/mes. Se pide: a- Mostrar el monto facturado al cliente 142 en el mes de Agosto. b- Mostrar el N de cliente que registr el mayor monto de facturacin mensual. CMostrar en que mes se registr la menor facturacin mensual para un cliente. 6. Se tiene un listado con los siguientes datos: nmero de alumno ( 1 a n ) , nmero de materia ( 1 a m ), nota ( 0 a 10 ). a) El mismo nmero de alumno y de materia puede aparecer ms de una vez. b) El listado no est ordenado, ni necesariamente completo. Esto ltimo quiere decir que puede ser que un alumno no haya cursado una o ms materias, y por lo tanto no existan los datos correspondientes en el listado. Se pide : (1) Crear una estructura bidimensional que almacene el promedio por materia de cada alumno e informarla asignndole en la impresin un guin al caso de falta de datos mencionado. (2) Informar el porcentaje de alumnos que curs cada materia y el promedio general por materia considerando los alumnos que la cursaron. (3) Informar la cantidad de materias que curs cada alumno y el promedio que obtuvo considerando las materias que curs. 7. Una empresa de transporte de pasajeros de larga distancia posee micros de 4 categoras y viaja a 250 localidades de zonas tursticas del pas. No necesariamente todas las temporadas se habilitan las 4 categoras, ni hay viajes a todas las localidades posibles. a) Se dispone de un registro de todos los pasajes vendidos en una temporada consistente en: cdigo de categora (a, b, c, d y cdigo de destino (1 a 250 ) y de un listado ordenado por cdigo del nombre de cada localidad de destino. Se pide informar : (1) La cantidad de pasajeros por localidad, por categora. (2) La cantidad de pasajeros por localidad. (3) La cantidad de pasajeros por categora. (4) El nombre de la localidad a la que viaj la mayor cantidad de pasajeros. (5) El nombre de la localidad a la que viaj la menor cantidad de pasajeros.

Prof. AUS. Pascual Pontelli

10

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

TRABAJO PRCTICO N 9 MTODOS DE ORDENAMIENTO Y BSQUEDA. 1. Hacer un algoritmo que: Lea una lista de nmeros de teclado que culmina con uno negativo. Los ordene en forma creciente y Visualice la lista ordenada. Buscar si existe el N 27 en la lista. 2. Se lee un vector de Ns enteros y se desea saber si entre dichos nmeros se encuentra un valor ledo previamente. En caso afirmativo, visualizar su posicin en la lista. Resolver el problema por: a- Bsqueda secuencial. b- Bsqueda binaria. 3. Se desea realizar un programa que lea una lista de letras minsculas, que las visualice, que las ordene en modo decreciente, que visualice la lista ordenada, que busque si la z esta en la lista. 4. Se leen dos listas de Ns enteros A y B de 10 y 6 elementos respectivamente. Se desea: aOrdenar c/u de las listas. B- Crear una lista C por intercalacin de A y B. c- Localizar si existe en C, el N 255, visualizar el mensaje Existe o No existe segn corresponda. 5. Se lee una lista de Ns por teclado, se desea saber si entre dichos Ns se encuentra el 333, en caso afirmativo visualizar su posicin en la lista. Resolver por bsqueda binaria y secuencial. 6. Se tiene la siguiente informacin sobre pacientes de un instituto: Nombre, direccin, si tiene obra social. A- Imprimir toda la informacin ordenada alfabticamente. B- Dado el nombre de un paciente determinar si tiene obra social. C- Mostrar todos los pacientes con Obra Social Dasuten. 7. En un comercio se tienen los siguientes datos sobre distintos artculos: cod_art, descripcin y precio. Se pretende: - Un listado ordenado por cdigo de artculo - Un listado ordenado segn la descripcin. - Mostrar los cdigos de articulo cuyos precios superen los $ 2.00 ordenados alfabticamente. 8. Se tiene una planilla con la programacin de una radio, en la misma se llevan los siguientes datos: nombre programa, hora emisin, cantidad total encuestados (por programa), cantidad oyentes (por programa). Se pide: A- Listado ordenado por nombre de programa con sus datos respectivos. a. Mostrar el programa que se escucha en esa radio a las 15 hs. b. Mostrar horario de emisin del programa los incorregibles y % de oyentes que lo siguen en funcin de la cantidad de encuestados. 9. Una empresa de colectivos de larga distancia posee los sig. datos sobre sus pasajeros: - Nombre de la persona - Numero de asiento - Monto pasaje (puede variar) - Destino Se pide: a- Listado ordenado por numero de asiento b- Monto total de pasajes vendidos. c- cantidad de personas que viajan a la ciudad X. 10. Se tiene una clase de 25 estudiantes, para cada uno se almacenan los sig. datos: nro. Estudiante, nombre y nota. Se pide: - Listar los alumnos con sus respetivas notas ordenados. - Nro. Estudiante con mayor nota. - Cantidad alumnos que la obtuvieron. - Nota que obtuvo Carla Snchez. 11. En una librera se lleva el stock de libros, de cada libro se tiene: titulo, autor, categora, stock y precio unitario. Se pide: - Mostrar todos los libros de la autora gatha Cristie, mostrar adems a que categora pertenece dicha autora y el stock valorizado total. - Emitir listado ordenado por categora y autor.
Prof. AUS. Pascual Pontelli

11

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

- Listar todos los libros que empiezan con LA. 12. Se tienen los datos pertenecientes a los clientes de una empresa comercial: Nro. De cuenta, apellido, direccin, fecha de ltimo pago y saldo. Se pide confeccionar un algoritmo que permita listar los clientes cuyos apellidos comiencen con una letra dada y teniendo saldos mayores a cero, no hayan efectuado pagos dentro de los 30 ltimos das a la fecha de emisin de listados.

Prof. AUS. Pascual Pontelli

12

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

TRABAJO PRCTICO N 10 REGISTROS. 1- Escribir una declaracin de tipo registro que almacene la sig. informacin sobre un disco de audio: titulo, autor, ao de publicacin y duracin en segundos. 2- Realizar la declaracin de tipo registro para un automvil: los campos son marca, modelo, ao, color, N de puertas y precio. 3- Escribir un prg. que cargue y visualice la informacin de los registros dados en los puntos 1 y 2. 4- En un edificio se administran sesenta departamentos; con el fin de cobrar a cada dueo la cuota de gastos correspondiente al ltimo mes. Se registran los gastos de: energa elctrica, gas, guardias, lavandera y conserjera de cada departamento. Crear la estructura que lo almacene, el proceso de carga y emitir al final un listado con los importes que por cada concepto debe pagar cada propietario, adems utilizar un vector auxiliar para cargar el importe total que se debe pagar por departamento. 5- En un centro estadstico se registran datos de personas para conocer distintas caractersticas fsicas (nombre, edad, peso, altura). Realizar un programa que cargue los datos y brinde la siguiente informacin: a) Cantidad de personas con ms de sesenta aos. b) Cantidad de mujeres de mas de 1,70m. c) Porcentaje de personas con menos de 50Kg. de peso. TRABAJO PRCTICO ARREGLO DE REGISTROS 1- Un arreglo de registros contiene la descripcin de personas a efectos estadsticos, Cada registro tiene los campos: nombre, edad, peso, sexo, altura, color de piel, color de ojos y nacionalidad. Se pide: - Cantidad de personas con ms de sesenta aos. - Cantidad de mujeres de mas de 1,70m. - Porcentaje de personas con menos de 50Kg. de peso. - % de hombres de origen cubano. - % de mujeres argentinas. - % de personas con menos de 30 aos y ojos violetas. 2- Supongamos que definimos un arreglo de 1000 plizas de seguro de vida, cada una posee N de pliza, nombre del asegurado, direccin, ao de nacimiento, cantidad asegurada y cuota. Codificar un algoritmo que permita ingresar plizas en la estructura anterior. Adems se pide: - Mostrar los nombre y direcciones de las personas que cumplen 70 aos en el corriente ao. - Mostrar las personas cuya cuota es menor a $ 30.00. - Mostrar las personas que tengan asegurada un monto mayor a $100.000 ordenados alfabticamente - Mostrar si Pedro Fernndez est asegurado en la compaa. 3- Se tiene una clase de 30 estudiantes, para c/u se almacenan los sig. datos: - Nro_estudiante - Nombre - Nota Se pide: a- Lista de alumnos con sus respectivas notas ordenados alfabticamente. b- Nro. de estudiante con mayor nota. c- Nombre de estudiante de menor nota. d- Nota que obtuvo la alumna Laura Surez. 4- Escribir un programa que lea los valores de c/campo de un registro de stock de un almacn. Los campos son: - Cod_art: integer; - Descripcion: string [30]; - Cantidad: word; (0 ..65535)
Prof. AUS. Pascual Pontelli

13

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

- Precio_unitario: real; Se pide adems: a- Cargar datos hasta que el cod_art = 0. b- Mostrar del articulo mas caro, cantidad en existencia. c- Dado un cod_articulo ver si existe. d- Mostrar si este almacn vende queso Don Bautista. e- Mostrar el articulo con menor existencia. f- Mostrar cual es el articulo mas barato. 5- En una librera se almacenan los datos de x cantidad de libros, por cada libro se tiene la siguiente informacin: cdigo y stock. Realizar un programa que informe cuando se deba reponer stock de cada libro, considerando stock mnimo = 3 libros. 6- Se leen los nombres, edades y alquileres que pagan los inquilinos de un edificio. Se pide calcular: a- Total recaudado por el consorcio en concepto de alquileres. b- Nombre del inquilino que paga el alquiler mas caro. c- Nombre y edad del inquilino ms viejo. d- Nombre y edad del inquilino ms joven. 7- En una empresa se guardan los cdigos de empleados, edades, los sueldos y la antigedad en aos (N entero). Se pide calcular: a- Sueldo del empleado ms antiguo y edad. b- Sueldo del empleado ms nuevo y edad. c- Promedio de sueldos. d- Promedio de edades. 8- De cada alumno de una materia x se registra N de alumno, nota y sexo. Se desea saber: acuantos varones aprobaron (nota>=4), b- que % de mujeres sac 10, c- % de desaprobados. 9- En una distribuidora se lleva mensualmente, la siguiente informacin: cdigo de producto, cantidad vendida, costo de fabricacin del producto (por unidad), precio unitario de venta al pblico. Se desea calcular: a- Cual fue el producto mas vendido. b- Cual fue la ganancia que se obtuvo al vender dicho producto (en x cantidad). c- Cual es el costo unitario del producto mas caro. 10- Se tiene una agenda telefnica con los siguientes datos: Nombre, direccin, N telfono (puede o no tener), se pide: a- Listado de personas con N telefnico. b- Listado de personas sin N telefnico, con sus respectivas direcciones. c- Dada una persona mostrar su direccin y N de telfono si tiene. 11- Se tiene una lista de precios con cdigo de articulo, descripcin, precio. Se pide: a- lista de precios completa. b- Listado de todos los artculos que empiezan con b. c- Consulta de un precio segn el cod. de articulo. d- Cual es el articulo mas caro.

Prof. AUS. Pascual Pontelli

14

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

TRABAJO PRCTICO N 11 RECURSIVIDAD. 1. Realizar una funcin recursiva que calcule los seis primeros trminos de la serie de Fibonacci. 0, 1, 1, 2, 3, 5. 2. Realizar una funcin recursiva tal que reciba un nmero y muestre su factorial. 3. Escribir una funcin recursiva que calcule la suma: 1 + 2 + 3 + 4 + ... + (n-1) + n. 4. Escribir una funcin recursiva que calcule la potencia de un N entero. 5. Escribir un procedimiento recursivo tal que reciba una cadena y devuelva su inversa. Obtener un subprograma recursivo que imprima los dgitos de un nmero entero positivo en orden inverso.

Prof. AUS. Pascual Pontelli

15

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

TRABAJO PRCTICO N 12 PILAS. 1. Escribir los algoritmos correspondientes a las operaciones sobre pilas (implementada en arreglos). c. Insercin en cabeza. d. Supresin en cabeza. e. Es_vaca (determina si una pila es no vaca). f. Pila_vaca (crea una pila vaca). g. Cima (devuelve el ultimo elemento insertado en la pila). h. Ver_Pila (muestra el contenido de la pila). i. Llenar_pila (introduce una serie de elementos en una pila). 2. Realizar un subprograma que obtenga el nmero de copias de un determinado elemento en una pila dada. 3. Utilizando las operaciones sobre pilas, desarrollar un subprograma que permita eliminar de una pila de enteros todos los nmeros impares. 4. Haciendo uso de las operaciones sobre pilas, realizar un programa que permita cambiar todas las apariciones de un determinado elemento de la pila por otro dado. 5. Disear un algoritmo sencillo para invertir el contenido de una pila cualquiera. 6. Obtener un algoritmo que determine si una cadena de caracteres es o no un palndromo. 7. Escribir un algoritmo para determinar si una hilera de caracteres de entrada es de la forma xCy, donde x es el inverso de y. Ej. mamaCamam. 8. Leer una palabra y visualizarla en orden inverso. 9. Escribir un segmento de programa que elimine el elemento justo debajo de la cima de la pila. 10. Escribir una funcin que obtenga el esimo elemento a partir de la cima de una pila, sin borrarlo.

Prof. AUS. Pascual Pontelli

16

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

TRABAJO PRCTICO N 13 COLAS. 1. Escribir los algoritmos correspondientes a las operaciones sobre colas (implementada en arreglos). j. Insercin en cola. k. Supresin en cabeza. l. Es_vaca (determina s una cola est o no vaca). m. Cola_vaca (crea una cola vaca). n. Primero (devuelve el primer elemento de la cola). 2. Realizar dos operaciones, una para mostrar el contenido de una cola y otra para introducir una serie de elementos en ella. 3. Utilizando las operaciones bsicas de colas y pilas, escribir un algoritmo que invierta el contenido los elementos de una cola. 4. Escribir un programa que lea una cadena de caracteres, introduciendo cada carcter en una pila a medida que se lee y aadindolo simultneamente a una cola. Cuando se encuentra al final de la cadena, utilice las operaciones bsicas de pilas y colas para determinar si la cadena es un palndromo. 5. Usando los procedimientos y funciones que implementan las operaciones permitidas para pilas y colas; escriba los procedimientos que permitan efectuar las siguientes tareas: (Cuando escriba los procedimientos tenga en cuenta chequear apropiadamente si las estructuras estn llenas o vacas cuando corresponda hacerlo). a) Mueva todos los elementos desde una pila hacia una cola. b) Mueva todos los elementos desde una cola hacia una pila. c) Vace una pila sobre otra, de tal manera que los elementos agregados a la segunda mantengan el mismo orden relativo que tenan en la primera. d) Vace una pila sobre otra, de tal manera que los elementos agregados a la segunda estn ordenados al revs de lo que estaban en la pila original. e) Comience con una pila vaca y una cola vaca, use la pila para invertir el orden de todos los elementos de la cola. f) Comience con una pila vaca y una cola vaca, use la cola para invertir el orden de todos los elementos de la pila. 6. Escribir un programa que lea una cadena de caracteres, compuesta de dos partes separadas entre s por dos puntos :. Como resultado el programa deber indicar cual de las siguientes condiciones se cumple en la cadena ingresada: o. No se encontraron dos puntos en la lnea. p. La parte de la izquierda (antes de los dos puntos), es ms larga que la de la derecha. q. La parte de la derecha (despus de los dos puntos), es ms larga que la de la izquierda. r. Las partes derecha e izquierda tienen igual longitud pero son diferentes. s. Las partes derecha e izquierda son exactamente iguales. Use una cola para mantener la parte izquierda de la lnea mientras analiza la parte derecha.

Prof. AUS. Pascual Pontelli

17

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

TRABAJO PRCTICO N 14 LISTAS. 1. Desarrollar los algoritmos correspondientes a las operaciones usuales sobre listas, a- crear una lista vaca. b- recorrer una lista. c- insertar un nuevo elemento detrs de uno dado. d- Insertar un nuevo elemento delante de uno dado. e- borrar un elemento determinado. 2. Dada una lista enlazada, cuyos nodos tienen la estructura (informacin, siguiente), disear un procedimiento que cuente el N de nodos de la lista. 3. Escribir un programa tal que dada una lista de caracteres, borre de ella las vocales. 4. Dada una lista de enteros generar dos listas uno con Ns impares y otra con los pares. 5. Escribir un procedimiento que modifique el campo informacin de un nodo j-esimo de una lista enlazada. 6. Construir un procedimiento que realice una insercin inmediatamente antes del nodo i-esimo de una lista. (Buscar por campo). 7. Realizar un procedimiento que muestre los elementos de una lista de enteros y su suma. 8. Construir una lista de registros con los siguientes campos (Nombre, edad, edo_civil, direccin), eliminar el nodo que contiene los datos de Roberto Gonzlez. 9. Escriba un algoritmo que realice c/u de las sig. operaciones: a- Concatenar dos listas. b- Liberar todos los nodos de una lista. c- Formar una lista que contiene la interseccin de los elementos de dos listas.

Prof. AUS. Pascual Pontelli

18

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

Trabajo Prctico N 15 Pilas, Colas y Listas. 1. Se tiene en una lista implementada en arreglo los datos pertenecientes a los clientes de una empresa comercial ordenados por orden alfabtico segn sus apellidos. De cada cliente se conoce: Nro. de cuenta: 0 .. 999; Apellido: Cadena ; Direccin: Cadena; Fecha ltimo pago: TipoFecha y Saldo: Real. Se requiere la confeccin de un algoritmo que permita listar los clientes cuyos apellidos comiencen con una letra dada, y teniendo saldos mayores que cero no hayan efectuado pagos dentro de los ltimos treinta das a la fecha de emisin del listado. (lista) 2. En una lista se tiene almacenado el stock de cada uno de los artculos que vende un supermercado, ordenados por cdigo de artculo. Cada elemento de la lista tiene la siguiente forma: - Cdigo de Artculo - Descripcin - Sucursal - Stock mnimo - Stock actual - Siguiente artculo. Sabiendo que el supermercado cuenta con tres sucursales, se pide generar un procedimiento que tomando la lista original, genere tres listas - una por sucursalordenadas por descripcin del artculo. 3. Efectuar un procedimiento que reciba dos listas diferentes de artculos, ordenados por descripcin, y devuelva una nica lista ordenada, referenciada por el primer apuntador recibido. Cada elemento de la lista contiene los siguientes campos: - Cdigo de artculo - Descripcin - Precio - Siguiente Nota: Si existe algn artculo duplicado, ste deber aparecer una nica vez en la lista devuelta. 4. Se tiene una lista donde cada elemento contiene el apuntador al Primer elemento de otra Lista (es decir que cada nodo de la lista madre representa a su vez una nueva lista). Los nodos de las "sublistas" contienen un valor numrico. Se pide recorrer la estructura, calculando la sumatoria de estos valores y asignndolos a los nodos correspondientes de la lista madre. Los campos de los nodos de la lista madre son: -Primero (apuntador al primero de una sublista) y -Total (Campo en el cual hay que asignar la sumatoria de los valores de los nodos de la sublista correspondiente). 5. Realizar un procedimiento que permita la reserva de pasajes correspondientes a una empresa turstica de colectivos. El mismo debe utilizar las siguientes estructuras. Una COLA que contiene los movimientos que ingresan al sistema. Estos son de dos tipos: a) Requerimiento de reserva de pasaje, b) Cancelacin del asiento reservado. Los datos de cada elemento de la Cola son: -Nombre del interesado. -Tipo de Movimiento (Reserva o Cancelacin) Una LISTA de las personas que tienen su pasaje reservado, ordenada por nmero de asiento. Los datos de cada elemento de la Lista son: -Nombre del pasajero. -Nmero del Asiento. Una PILA que contiene los nmeros de asientos libres, es decir que no se encuentren ocupados.
Prof. AUS. Pascual Pontelli

19

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

Los datos de cada elemento de la Pila son: -Nmero de asiento. *Como parmetros (de entrada-salida) al procedimiento se debern poner las tres estructuras. Funcionamiento: Se da de baja a un elemento de la Cola. Si es una reserva, se toma un asiento de la Pila (si no est vaca) y se lo da de alta en la lista, en el lugar correspondiente de acuerdo a dicho nmero. Si la pila est vaca se ingresa el movimiento nuevamente en la cola y se lo marca como ya atendido. Si el movimiento es una cancelacin, se da de baja al pasajero en la Lista y se da de alta el nmero de asiento en la Pila. 6. Dadas las siguientes estructuras: Una Cola de Listas de Artculos comprados por un cliente, con los siguientes datos por cada elemento: - Nombre del cliente. - Apuntador al primer elemento de la Lista de Artculos (Puede haber ms de un elemento con el mismo Nombre de Cliente.) Listas de Artculos Comprados, una por cada elemento de la Cola, con la siguiente informacin por cada elemento: Nmero de artculo. Cantidad comprada. Precio Unitario. Una Lista de Clientes, (sobre punteros) ordenada por Nombre de Cliente, que contiene los montos totales de compra de cada cliente, con la siguiente estructura: - Nombre del Cliente. - Monto total de compra. A) Hacer un procedimiento que tome (baja a la cola) cada elemento de la Cola (es decir cada Lista de Artculo), calcule el monto total de la compra y lo ingrese a la Lista de Clientes, teniendo en cuenta que: - Si el cliente no existe, se lo debe dar de alta en dicha lista, en el lugar correspondiente. - Si el cliente ya est en la lista, se deber sumar el monto calculado al monto que ya tena. * Una vez calculado el monto de compra, eliminar la Lista de Artculos tratada. B) Hacer un procedimiento de carga de las Listas de Artculos y el alta de estas listas a la Cola. Para ello se ingresarn los datos: - Nombre del Cliente (por cada elemento a dar de alta en la cola) - Artculo, Cantidad y Precio (N veces por cada cliente). 7. Una empresa privada de construcciones posee un plan de viviendas para la adquisicin de departamentos en cuotas. Las personas interesadas eligen un nmero de departamento de acuerdo al piso y la ubicacin que desean. Si el departamento no ha sido vendido ya, la persona ingresa como Titular, in caso contrario se anota en una cola de suplentes, por si el titular renuncia o no puede pagar sus cuotas. La informacin relativa a esta situacin se representa mediante las siguientes estructuras. Una Lista, donde cada elemento contiene el nmero de departamento asociado con los datos del titular y la Cola de suplentes: - N. de departamento. - Nombre del Titular. - Telfono. - Monto pagado por el titular. - cola de suplentes. La lista se encuentra ordenada por N de departamento y no se debe perder dicho orden. Cada una de las Colas que estn en la Lista anterior puede guardar informacin de hasta 10 suplentes. El contenido de cada uno de sus elementos es el siguiente: - Nombre de la persona suplente. - Telfono. Se pide declarar las estructuras y realizar los procedimientos necesarios para satisfacer los requerimientos que se detallan a continuacin:

Prof. AUS. Pascual Pontelli

20

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

1: Alta del titular o suplente: Se deben ingresar por pantalla los datos: n departamento, Nombre de la persona y telfono. Si el n de departamento no est en la lista, se lo da de alta en el lugar correspondiente junto con los dems datos de la persona y se crea la cola correspondiente, vaca. Si est, se da de alta a la cola de espera. 2: Baja del titular: Se debe ingresar por pantalla el Nombre de la persona Titular. Se busca el nodo de la lista y se borran los datos de la persona luego, se saca el primer suplente de la cola y se lo asigna como titular. Si la cola estuviese vaca, se da de baja al nodo de la lista. En todos los casos se deba mostrar por pantalla el monto pagado hasta el momento. 3: Pago de cuota: Se debe ingresar por pantalla: Nombre del titular e Importe que paga. Se busca la persona y se le suma el importe al monto pagado (la persona debe ser Titular).

Prof. AUS. Pascual Pontelli

21

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

TRABAJO PRCTICO N 16 RBOLES. 1. Escribir un algoritmo que inserte en un rbol binario de bsqueda vaco los siguientes nodos: 3,1,4,6,9,2,7,5. 2. Realizar dos algoritmos, el primero que devuelva el hijo derecho de un nodo y el segundo, el izquierdo. 3. Realizar un algoritmo para insertar un nodo en un rbol binario de bsqueda. 4. Construir dos algoritmos para calcular el mximo y mnimo elemento de un rbol binario de bsqueda. 5. Construir los algoritmos prefijo, postfijo e infijo para recorrer el siguiente rbol binario.

B C

6. Recorrer en los tres modos el siguiente rbol:

*
+

B
7. Escribir procedimientos tal que dado un rbol binario, calcule: a- el nmero de nodos del rbol. b- el nmero de hojas del rbol. c- la altura del rbol. 8. Se dispone de un rbol binario de elementos tipo integer. Escribir funciones que calculen: a- la suma de sus elementos. b- la suma de sus elementos que son mltiplos de 3. 9. Construir un algoritmo tal que elimine un nodo c de un rbol binario. Considerar los tres casos. (nodo c no se encuentra, nodo c tiene 0 o un subrbol, nodo de clave c tiene dos subrboles). 10. Realizar un procedimiento que elimine un rbol binario. 11. Realizar una funcin tal que dado un nivel de un rbol binario, devuelva el nmero de nodos de ese nivel.

Prof. AUS. Pascual Pontelli

22

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

TRABAJO PRCTICO N 17 GRAFOS. 1. Realizar un algoritmo que represente el siguiente grafo dirigido mediante una matriz de adyacencia. Adems se pide confeccionar: a. Un procedimiento que agregue un arco a la matriz de adyacencia. b. Un procedimiento que elimine un arco de la matriz. c. Una funcin que determine si un nodo posee ciclo. d. Una funcin que determine si dos nodos son adyacentes.

1 2 5

2. Se tiene la matriz de incidencia de un grafo de n nodos implementada en un arreglo bidimensional de n n elementos. La celda (i,j)=1, siendo 1<=j<=n y 1<=i<=n si hay un arco entre el elemento i y el elemento j; y 0 si no lo hay. Escribir el algoritmo necesario para cargar la matriz y determinar la cantidad de arcos que tiene el grafo. 3. Se tiene un grafo dirigido con informacin relativa al tiempo de vuelo para ciertas rutas entre ciudades. Se desea construir una tabla que brinde el menor tiempo requerido para viajar entre dos ciudades cualesquiera. Adems se pide mostrar en que ciudad hizo escala el vuelo. 4. Dado el siguiente grafo hallar su matriz de adyacencia y la matriz de caminos de longitud dos. (Utilizar potencias de la matriz adyacente).

3 4

5. Realizar una funcin que determine si existe un camino de longitud 3 o menor entre los nodos i y j de una matriz adyacente dada. ((Adj[i,j] or Adj2[i,j] or Adj3[i,j])=V). 6. Dada una matriz de adyacencia A, hallar la matriz C, tal que C sea la clausura transitiva de A. 7. Cmo se puede calcular de manera automtica el grado de un nodo a partir de su matriz de adyacencia, y las aristas?.

Prof. AUS. Pascual Pontelli

23

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

APENDICE I Ejemplos de Exmenes. Listas, Pilas y Colas. 1- Se tiene una estructura con la informacin de los cinco aos de la carrera de ISI a saber: - Cuatrimestre - Cod_materia - Nombre - Docente titular - Docente auxiliar - Electiva (V,F) - Integradora (V,F) - Cant Horas semanales Se pide: A- Confeccionar una lista de docentes del primer cuatrimestre, mostrando cantidad de inasistencias permitidas para regularizar (70%) y para promocionar (85%), sabiendo que dicho periodo es de 16 semanas. B- Permitir una opcin para incorporar una materia electiva en 3ro., 4to. O 5to. Ao. C- Calcular horas ctedras totales para el 1er. y 2do. Cuatrimestre (16 semanas). D- Mostrar % de horas que representan las materias electivas integradoras sobre el total. 2- Se tiene la siguiente informacin de los alumnos de 5to. Ao: - N legajo - Nombre - Direccin - DNI - Nacionalidad Adems por cada alumno se lleva registro de las materias que se tiene aprobada con la siguiente informacin: - Cdigo - Nombre materia - Ao - Promociona (si/no) - Nota Se pide: A- Permitir incorporar una materia aprobada que ser dada de alta en la medida que se rinda y se apruebe la misma. B- Calcular el promedio de aquellos alumnos que tengan aprobadas (promocionadas o no) todas las materias de los aos anteriores (calcular 7 materias por ao). En dicho caso mostrar el promedio y los datos del alumno. C- Porcentaje de alumnos que hayan promocionados todas las materias. D- Formar una lista a partir dela informacin antes mencionada con los sig. datos: - Nombre - Promedio - Cantidad materias aprobadas (todas las que hayan aprobado) 3- Se tiene una cola con los aspirantes a un puesto de trabajo a saber: - Nombre - Direccin - Telfono - Edad - Profesin Se pide: A- Confeccionar una lista con los profesionales de informtica de entre 25 y 45 aos. B- Confeccionar una pila con los restantes.

Prof. AUS. Pascual Pontelli

24

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

4- Una empresa posee una flota de camiones, por cada camin se tiene: - Cdigo camin - Nombre - Nro. Patente - Cantidad de viajes realizados En la medida que se realiza un viaje se registra para cada nombre de chofer y se suma 1 a la cantidad de viajes realizados. Cada viaje es: - cod_provincia destino - importe Se pide: A- Insercin de un camin (controlar si ya existe). B- Insercin de viajes. C- Calcular y mostrar el importe que percibir cada chofer. D- Mostrar las provincias visitadas por los chferes cuyo nombre comience con DE. E- Cul es el chofer que ms viajes realiz?. (suponiendo que existe un solo mximo). 5- Una compaa area realiza las reservas de pasajes al destino X a lo largo de un mes, para lo cual se lleva registro por da de: fecha, hora, cantidad pasajeros (mx. 42). Cada vez que un pasajero reserva un lugar se debe incorporar a la lista de pasajeros de ese da, los siguientes datos: N asiento, nombre y DNI. Se pide: A- Brindar informacin sobre los das y horas en los que se pueda reservar un pasaje (tener en cuenta cantidad de pasajeros). B- Permitir incorporar una reserva en el da solicitado (contabilizar el N de pasajeros). C- Permitir cancelar una reserva y pasar la misma para otro da. D- Listado ordenado por N asiento de un da determinado. Determinar en que quincena hubo mayor demanda. 6- Se lleva registro en un aeropuerto de las reservas de pasajes para las distintas empresas (5) hacia los distintos destinos. Para ello se ingresa: empresa, destino, fecha, nombre, DNI, importe. Se pide: A- Listado ordenado por empresa, destino y fecha de las reservas (uno por cada empresa). B- Cantidad de pasajeros por empresa al pie de cada listado. C- Porcentaje de la empresa con mayor cantidad de pasajeros. D- Consulta de nombres de pasajeros de una empresa y destino dados, ingresando adems las dos primeras letras del nombre. Arreglos. 1- - Se tiene una estructura con la informacin de los cinco aos de la carrera de ISI a saber: - Cuatrimestre - Cod_materia - Nombre - Docente titular - Docente auxiliar - Electiva (V,F) - Integradora (V,F) - Cant Horas semanales A- Implementar en cada arreglo la informacin anterior. B- Mostrar por ao las materias en orden alfabtico. C- Determinar si IA es una materia de dicho plan en caso afirmativo mostrar toda la informacin. 2- La secretaria de un centro mdico necesita obtener informacin de cada uno de los 6 mdicos que atienden en dicho lugar para ello leva un registro del da, por doctor, paciente, obra social (S/N) y plus, se pide:
Prof. AUS. Pascual Pontelli

25

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

Totales de pacientes atendidos por cada mdico. Total recibido en concepto de plus por cada mdico. Total recaudado en el da. Porcentaje total de pacientes sin obra social. Medico que ms percibi en concepto de plus.

3- Realizar un algoritmo para una compaa de sepelios teniendo en cuenta los siguientes datos a volcar: - socio N - apellidos y nombres - fecha de alta - motivo de baja (cdigos del 1 al 10) - convenio colectivo (cdigos del 100 al 200) - cuota mensual Se pide: A- Un procedimiento que permita un listado ordenado por apellido y nombres para cada uno de los convenios que muestre el resto de la informacin y el total de cuota a recaudar por cada convenio. B- Un procedimiento para obtener toda la informacin sobre un determinado socio de existir este. C- Un procedimiento que me permita obtener un listado de socios por convenios y el importe total a recaudar por cada uno de ellos. D- Un listado con los socios dados de bajas. 4- Se tiene un edificio de departamentos de 11 pisos c/u de los cuales tiene 4 dptos. La informacin que se tiene es la siguiente: - Piso - Dpto. - Propietario - Gastos Se pide: A- Confeccionar un vector con aquellos Dptos. ocupados. B- Mostrar listado ordenado por propietario del Dpto. A. C- Listar ordenado por gastos aquellas personas cuyos gastos estn entre $ 100 y $ 200. D- Determinar cual es el piso con mayor total de gastos. 5- Una distribuidora presenta 15 vendedores de los cuales se tiene la siguiente informacin: - Cdigo de vendedor - Nombre - Zona - Importe vendido Se pide: A- Listado ordenado por zona y nombre de vendedor. B- Dada una zona determinar monto total recaudado por sus vendedores y cantidad de vendedores que posee dicha zona. Adems mostrar el vendedor que vendi mas y premiarlo con un 15 % de sus ventas. 6- Se tienen almacenadas las distintas materias de la carrera Ing. en sistemas por ao (1ro., 2do., 3ro.). Por cada materia se lleva: cod_materia, nombre, rea, cant. alumnos, promocionable (boolean), cant. horas semanales, ao. Se pide: A- Definir la estructura adecuada para almacenar los datos anteriores. B- Dado un ao mostrar todas las materias y la materia que ms horas tiene. C- Mostrar la materia que ms horas tiene de toda la carrera. D- Mostrar horas semanales a cursar por ao.

Prof. AUS. Pascual Pontelli

26

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

7- Se tiene cargada informacin reflejada a las ultimas compras. Los datos son: - N artculo - Descripcin - Cantidad comprada - Valor unitario Se pide: A- Listar ordenado por N artculo la cantidad comprada y su descripcin. Determinar si dado un articulo se efectu la reposicin o no. Establecer el importe de la compra (cant. * $). 8- Dado un arreglo principal en donde figuran los siguientes datos: - N artculo (est ordenado por N art. ) - Descripcin - Stock (cantidad en existencia) - Precio de costo - Precio de venta Se pide: A- Actualizar de acuerdo al arreglo del pto. 1 con el arreglo principal en un tercer arreglo. (mezcla) Nota: Actualizar: cantidad en existencia, precio de costo si es necesario, agregar un registro en el tercer arreglo si es que el N de articulo no existe en el principal, calculando el precio de venta con un 40% de ganancia. 9- Se tienen los sig. datos: - Cod. Vendedor: (1 2 3) - Venta: $ - Provincia: (A, B, C) Se pide: A- Cargar datos B- Determinar total de ventas realizadas por cada vendedor C- Cual fue el vendedor que ms vendi D- Porcentaje vendido en cada uno de las provincias E- Cual fue la provincia mas visitada por el vendedor 2?. Existe alguna que no haya visitado?

10- Se tiene una matriz que contiene las notas de 7 asignaturas correspondientes a los alumnos de primer ao. Se pide: A- Determinar la mejor nota para cada asignatura y a que alumno corresponde (en caso de haber mas de un alumno con la mejor nota mostrar cantidad de alumnos que la obtuvieron. 11- Un club realiza la cobranza de sus socios a travs de cobradores. Los datos que figuran en registros son: DNI, apellido y nombre, domicilio, cuota, pago cuota, cobrador, zona. A- Declare tipos y variables que necesita para este problema en Pascal. B- Realice un procedimiento listado (cobrador: byte); ordenado por zona y total por cobrador. C- Realice un procedimiento pago (DNI: longint) que permita imputar el pago de cuota a un socio o el mensaje que corresponda. D- Realice el cuerpo del algoritmo con los puntos en cuestin y los procedimientos que adems requieran para su solucin. Nota: Las estructuras de datos estn cargadas y aplicar de ser necesario mtodo de ordenacin y bsqueda binaria.

Prof. AUS. Pascual Pontelli

27

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

APENDICE II Equivalencias entre Pseudocdigo y Lenguaje Pascal. PSEUDOCDIGO Algoritmo Identificador MBITO LENGUAJE PASCAL Program Identificador; Type Const Var a:=b; If <Expresin Lgica> Then <Sentencias> ELSE <Sentencias>; Case <Selector> of <Valor 1> : <Sentencia 1> ; <Valor 2> : <Sentencia 2> ; ......................................... <Valor n> : <Sentencia n> ; End;

ASIGNACIN

a b ESTRUCTURAS CONDICIONALES Si <Expresin Lgica> <sentencias> sino <sentencias> Segn <selector> <Valor 1> : <Sentencia 1> ; <Valor 2> : <Sentencia 2> ; ......................................... <Valor n> : <Sentencia n> ;

ESTRUCTURAS CCLICAS Para Var: valor inicial..valor final <sentencias>

For <variable>:= <valor_inicial> to <valor_final> do <sentencias> ; While <Expresin Lgica> do <sentencias>; (i) Repeat <Sentencia 1> ; ....................... <Sentencia n> ; Until <Expresin Lgica> Write o Writeln Readln o Read

MIENTRAS <EXPRESIN LGICA> <sentencias> REPETIR .................. Instrucciones ................... hasta <Expresin Lgica> OPERACIONES DE ENTRADA / SALIDA DE DATOS MOSTRAR Leer

Prof. AUS. Pascual Pontelli

28

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

Tipos de Variables en Turbo Pascal. Existen diversos tipos de variables disponibles en Pascal entre las que se destacan: Nmeros Enteros Tipo Byte Integer Longint Shortint Word Caracteres Tipo Char Booleano o Lgico Tipo Boolean Cadenas de Texto Tipo String Nmeros Reales Tipo Real Single Double

Memoria Utilizada 1 Byte 2 Byte 4 Byte 1 Byte 2 Byte Memoria Utilizada 1 Byte Memoria Utilizada 1 Byte Memoria Utilizada 1 Byte Memoria Utilizada 6 Byte 4 Byte 8 Byte

Rango de Valores 0 a 255 -32.768 a 32.767 2147483648 a 2147786647 -128 a 127 0 a 65.535 Rango de Valores 0 a 255 Rango de Valores True o False Rango de Valores 0 a 255 Rango de Valores 2.910 x 10-39 a 1.710 x 1038 1.510 x 10-45 a 3.140 x 1030 5.010 x 10-24 a 1.710 x 10308

Prof. AUS. Pascual Pontelli

29

UNIVERSIDAD TECNOLGICA NACIONAL - FACULTAD REGIONAL C. DEL URUGUAY

Algoritmos y Estructuras de Datos

a)

Palabras Reservadas

Las palabras reservadas en PASCAL son palabras que tienen un significado especial y no se pueden utilizar para otros propsitos. Una palabra reservada NO se puede utilizar como un identificador.

AND CONST ELSE FORWARD IN NOT PROCEDURE SET UNTIL ABSOLUTE IMPLEMENTATION PRIVATE VIRTUAL INLINE STRING

ARRAY DIV END FUNCTION LABEL OF PROGRAM THEN VAR ASM INTERFACE SHR CONSTRUCTOR INTERRUPT USES

BEGIN DO FILE GOTO MOD OR RECORD TO WHILE DESTRUCTOR OBJECT UNIT EXTERNAL SHL XOR

CASE DOWNTO FOR IF NIL PACKED REPEAT TYPE WITH

Estas palabras no pueden ser usadas como identificadores ya que cada una de ellas tiene una funcin definida en Turbo Pascal.

Prof. AUS. Pascual Pontelli

30