Ingeniería en Informática...Y $5 y monedas de $2, $1, $0.50 Y $0.25 para una cantidad dada....

16
Ingeniería en Informática ALGORITMOS Y ESTRUCTURAS DE DATOS I GUIA DE TRABAJOS PRÁCTICOS

Transcript of Ingeniería en Informática...Y $5 y monedas de $2, $1, $0.50 Y $0.25 para una cantidad dada....

  • Ingeniería en Informática

    ALGORITMOS Y ESTRUCTURAS

    DE DATOS I

    GUIA DE TRABAJOS PRÁCTICOS

  • ALGORITMOS Y ESTRUCTURAS DE DATOS

    Guía de Trabajos Prácticos

    Página 1 de 16

    TRABAJO PRÁCTICO Nº 1

    1. Escribir los algoritmos que resuelvan los siguientes problemas:

    a. Preparar mate. b. Preparar huevos fritos. c. Lavar el auto. d. Alistarse para ir al Instituto. e. Cambiar una lámpara quemada por una nueva.

    2. Indicar cuáles de los siguientes nombres de variables no son válidos en un algoritmo:

    a. Precio f. X&Z b. 4x g. 4_X c. Apellido y Nombres h. Ape_Nom d. A34 i. A_34 e. Calle y Número j. Año

    3. Indicar cuáles de las siguientes constantes no son válidas en un algoritmo:

    a. 234 f. 3 b. –10.365 g. 5 mm c. San Martín 1.236 h. “Salta 1.968” d. “Hola” i. 10 * X e. 10 x 3.69 j. 31/03/2001

    4. Escribir las siguientes expresiones algebraicas como expresiones algorítmicas:

    a. 4acb2

    e. 4

    12 z 4

    b. 2z

    y x 22 f. x 30

    5

    25

    c. 3r3

    4π g. 2 x x 2x 23

    4

    1

    d. 7 2x - 4x2 h. 3 5 / 3* 95

    5. Si A = 5 y B = 10. ¿Qué valor asume C en cada caso?

    a. B A C f. 3)- (A / A) - (B C

    b. B 5* A C g. A - 2 ^ 5 / 1 / 2 / B 6 / 3* 2 / 4 C

    c. 2 / B)* (A* 4 25 A B C h. B / 20 - B) / (A A ^ B C

    d. B -A* 5* (1/2) ^ 25 C i. A) - (B / B) (A C

    e. 5* A 2 / B - A C j. 3 ^ A) - (B 5* B* A C

    6. ¿Con qué valores finalizan A, B y C después de las siguientes asignaciones? Realizar la

    prueba de escritorio.

    a)

    CB

    BC

    B

    A

    5

    10

    c)

    CBAB

    BAC

    B

    A

    *5*

    5

    10

    b) 2 ^ A / B*4-A*3C

    5B

    2A

    d) 2/2/1^4*

    10

    5

    BAC

    B

    A

  • ALGORITMOS Y ESTRUCTURAS DE DATOS

    Guía de Trabajos Prácticos

    Página 2 de 16

    7. Evalúe las siguientes expresiones lógicas:

    a) A←Verdadero

    B←falso

    (A and B) or (A and (not B))

    b) A←15

    B←40

    (A123))

    e) A←135 B←89

    C←45

    ((CA) and (B=100)) or not((CB) or (C>52))

    f) A←Verdadero B←236

    X←”C”

    (A or (B

  • ALGORITMOS Y ESTRUCTURAS DE DATOS

    Guía de Trabajos Prácticos

    Página 3 de 16

    TRABAJO PRÁCTICO Nº 2:

    ESTRUCTURAS DE CONTROL

    1. Escribir un algoritmo que permita ingresar por teclado dos números e imprima su suma.

    2. Escribir un algoritmo que permita ingresar por teclado un número y escriba su cuadrado.

    3. Escribir un algoritmo que intercambie dos valores numéricos ingresados por teclado. Ej: si A5 y B10, al finalizar el ejercicio los valores de las variables deben ser B=5 y A=10

    4. Convertir una cantidad expresada en dólares a pesos. Se debe prever que el valor de conversión es variable.

    5. Se ingresa una medida en metros. Se desea un algoritmo que realice la conversión de metros a pies y pulgadas (1 metro = 39.37 pulgadas, 1 pie = 12 pulgadas).

    6. Escribir un algoritmo que permita calcular e imprimir la hipotenusa de un triángulo rectángulo

    dados los valores de sus catetos. Fórmula de cálculo: 22 b a h , donde a y b son los

    catetos, h es la hipotenusa; los valores de a y b se ingresan por teclado

    7. Escribir un algoritmo que calcule la superficie de un círculo. Fórmula de cálculo: S = π.r2

    8. Realizar un algoritmo que, al ingresar por teclado el precio por Kg y la cantidad en Kg adquirida por el cliente de tres productos ( 6 variables) muestre:

    a.- El monto total en pesos correspondiente a la compra de cada producto.

    b.- El total en pesos de la compra realizada por el cliente.

    c.- Si el total es superior a $800, hacer un descuento del 10%. Informar el nuevo monto.

    9. Realizar un algoritmo que permita ingresar las notas de 4 parciales correspondientes a un alumno y calcule e informe el promedio de sus notas.

    10. Un negocio de venta de electrodomésticos realiza un descuento a sus clientes del 25% sobre el monto de su compra. Realice un algoritmo que ingresando el monto total de la compra, permita calcular e informar el monto correspondiente al descuento y el total a abonar por el cliente luego del descuento.

    11. Realizar el ejercicio anterior considerando que el porcentaje de descuento puede ser variable.

    12. Para la materia Algoritmos y Estructuras I se exige un 75 % de asistencia como uno de los requisitos para regularizarla. Realice un algoritmo calcule e informe el porcentaje alcanzado por el alumno. Analice el enunciado y determine que datos deberá ingresar para realizar el cálculo.

    13. Realizar un algoritmo para calcular e informar el importe a abonar en una factura de consumo de agua. Los datos que se ingresan son el valor actual y el valor anterior del medidor. Para el cálculo deberá considerar que los clientes abonan por metro cubico de agua consumida $1.18, más un monto fijo de $ 38,25, más un 25.67% de impuestos. Analice en detalle el enunciado.

    14. Realizar un algoritmo que permita convertir una temperatura ingresada en grados Celcius a Fahrenheit. La Fórmula de conversión es: F=95xC + 32.

  • ALGORITMOS Y ESTRUCTURAS DE DATOS

    Guía de Trabajos Prácticos

    Página 4 de 16

    15. Todos los lunes, miércoles y viernes, una persona corre la misma ruta y cronometra los tiempos obtenidos. Realice un algoritmo que permita determinar el tiempo promedio que la persona tarda en recorrer la ruta en una semana cualquiera.

    16. Calcular el número de pulsaciones que una persona debe tener por cada 10 segundos de ejercicio, si la fórmula es NroPulsaciones= (220-Edad)/10

    17. Realice un algoritmo que lea los datos necesarios y calcule la masa, según la formula siguiente: masa=(presion x volumen) / (0.37 x ( Temperatura + 460 ) )

    18. Escribir un algoritmo que calcule el salario de un trabajador de la manera siguiente. El trabajador cobra un precio fijo por hora y se le descuenta el 10% en concepto de aportes. El algoritmo debe solicitar que se ingrese las horas trabajadas y el precio que cobra por hora. Como salida debe informar el sueldo bruto, el descuento de aportes y el salario a pagar.

    19. Realice un algoritmo que solicite el precio de un artículo y calcule su valor aplicándole un 21% de IVA.

    20. Desarrolla un algoritmo que ayude a una cajera a identificar el número de billetes que se necesitan de cada una de las siguientes denominaciones $1000, $500, $100, $50, $20, $10 Y $5 y monedas de $2, $1, $0.50 Y $0.25 para una cantidad dada. Ejemplo si la cantidad es 1343,75 se necesitan 13 billetes de $100, 2 billetes de $20, 1 billete de $2 y 1 monedas de $1, 1 moneda de $0.50 y 1 moneda de $0.25. Para realizar este algoritmo, vuelva a leer el material teórico donde se describen los operadores matemáticos.

    21. Escriba un algoritmo capaz de encontrar el máximo de dos valores (M y N) que se ingresan por teclado

    22. Escribir un algoritmo que permita ingresar tres números distintos entre sí e imprima el mayor.

    23. Desarrollar un algoritmo que permita realizar la suma de dos horas distintas (HH, MM, SS) utilizando para el almacenamiento de dichas horas, variables de tipo numéricas enteras.

    24. Escriba un algoritmo que halle la media de tres valores A, B, C. El mismo debe informar los tres valores por separado y luego el promedio.

    25. Las raíces de una ecuación de segundo grado ax2 + bx + c = 0 son reales si y sólo si el discriminante dado por (b2 - 4ac) no es negativo. Se desea leer el valor de los coeficientes “a”, “b”, “c” e imprimir el resultado del discriminante. Realizar prueba de escritorio.

    26. Realizar un algoritmo para determinar si dados dos números leídos por teclado, uno es múltiplo del otro.

    27. Escribir un algoritmo que muestre los números impares entre 0 y 100 y que imprima cuantos impares hay.

    28. Escribir un algoritmo que imprima la tabla de multiplicar del 2.

    29. Escribir un algoritmo que imprima todas las tablas de multiplicar (desde la del 2 a la del 9).

    30. Realizar un algoritmo que imprima e informe la suma total de la serie de números 3,6,9,12,...,99.

    31. Realizar un algoritmo que permita ingresar un número, entero y realizar la suma de todos los números que le anteceden, comenzando desde 0. Mostrar el resultado por pantalla.

  • ALGORITMOS Y ESTRUCTURAS DE DATOS

    Guía de Trabajos Prácticos

    Página 5 de 16

    32. Escribir un algoritmo que imprima la suma de los 1000 primeros números naturales, es decir, 1 + 2 + 3 + 4 + ... + 998 + 999 + 1000.

    33. Escriba un algoritmo para imprimir las coordenadas (X Y) de una función cuadrática, de la forma Y = ax2 + bx + c, haciendo variar x en el intervalo [-20, 20] con un incremento de 2.

    34. Escribir un algoritmo que calcule la suma de los cuadrados de los 10 primeros números naturales.

    35. Escribir un algoritmo que calcule el factorial de un número. El factorial de un número N se simboliza: N!, donde N! = N * (N-1)!. Sólo existen factoriales de números naturales y el cero. Se define 0! = 1. Ej: 5! = 5 * 4 * 3 * 2 * 1 * 1.

    36. Dados 10 números enteros, escribir un algoritmo que imprima la suma de los números pares de la lista, cuántos números pares existen y cuál es el promedio de los números impares.

    37. Escribir un algoritmo capaz de encontrar todos los números de tres dígitos que cumplan con la condición de que la suma de los cubos de sus dígitos sea igual al número que la cifra representa. Ej que imprima 328 si se cumple que 328=33+23+83

    38. Ingresar una a una las edades de un grupo de 50 alumnos y determinar la menor edad y en que orden ingreso el alumno. Ejemplo para n=5 alumnos, si las edades son: 13, 12, 11, 16, 15 entonces la menor edad es 11 y el alumno entro en el orden 3 de la lista.

    39. Diseñe un algoritmo para calcular el resultado de la suma de los 100 primeros términos de la siguiente serie:

    S = 1 – 1/3 + 1/9 – 1/27 + 1/81-….

    40. Desarrollar un algoritmo que determine en un conjunto de cien números naturales cuántos son impares, cuántos son mayores de 50 y cuántos están comprendidos entre 25 y 45.

    41. Realizar un algoritmo que imprima todos los múltiplos de un número M comprendidos entre otros dos números A y B. (A

  • ALGORITMOS Y ESTRUCTURAS DE DATOS

    Guía de Trabajos Prácticos

    Página 6 de 16

    e) Cuántos leen el diario ‘A’ y otro más.

    46. 500 personas completan un cuestionario sobre lectura de los diarios ‘A’, ‘B’ y ‘C’. Efectuar un algoritmo que informe:

    a) Cuántos leen los tres diarios. b) Cuántos leen ‘A’ y ‘B’ c) Cuántos leen ‘B’ y ‘C’ d) Cuántos no leen.

    47. Se realizó un censo provincial y se desea procesar la información obtenida en dicho censo. De cada una de las personas censadas se tiene la siguiente información: numero de documento, edad y sexo (‘F’ o ‘M’). Realizar un algoritmo que lea los datos de cada persona censada (para fin de ingreso de datos, ingresar cero como numero de documento) e informe: Cantidad total de personas censadas, cantidad de varones y cantidad de mujeres, porcentaje de varones cuya edad varia entre 16 y 65 años, respecto del total de varones, datos de la persona que registra la mayor edad.

    48. En una tienda de artículos para caballeros al final del día se carga en la computadora las boletas que confeccionaron los distintos vendedores para saber cuanto fue la comisión del día de cada uno de ellos. Los datos que se ingresan (por boleta) son: el número de vendedor y el importe. Cuando no hay más boletas para cargar se ingresa 0 como numero de vendedor. Teniendo en cuenta que el negocio tiene 3 vendedores y que el porcentaje sobre las ventas es del 5%, indicar cuánto ganó cada vendedor en el día.

    49. En un club se registran, entre otros datos, para cada uno de los socios: Número de socio, edad, tipo de deporte que practica (1 tenis, 2 rugby, 3 vóley, 4 hockey, 5 futbol). Realizar un algoritmo que permita informar cuantos socios practican tenis y cuantos futbol y el promedio de edad de los jugadores por deporte.

    50. Una empresa de servicios de entregas, desea informatizar su sistema de cálculo del costo de envío de encomiendas de entrega dentro del país. El costo depende del peso (en gramos) de la encomienda. Se consideran solo tres rangos de pesos: Hasta 500 gr. el costo es de $9,50; hasta 1 kg. es de $18,50 y para paquetes de más de 1 kg. el costo es de $20,00 más $1,00 por cada 100gr. A partir de l kilogramo. La empresa no hace entregas de paquetes de más de 5 kg.. Además se deberá tener en cuenta si el paquete debe ser de entrega con urgencia (U) o normal (N). Para envíos con urgencia se recarga el valor final en un 15%.Realizar un algoritmo que, dando el peso de los paquetes, calcule el costo de envío de los mismos. El proceso finaliza con un paquete de peso 0 (cero).

    51. Un atleta pierde en sus carreras, 100 gramos de peso por cada 50 m recorridos. La comisión organizadora de Olimpiadas desea un algoritmo que ingresando como datos el numero del corredor, peso (en gramos), la longitud del circuito(nunca menor a 50m) y el tiempo empleado (expresado en segundos) informe para cada corredor lo siguiente: Cuantos gramos perdió el corredor y cual es su peso final. Si ha perdido mas de 300gr de peso, pero menos de 450gr, indicar con un mensaje que necesitará vitamina A; si ha perdido mas de 450 gr necesitará vitamina C. Si el circuito tiene una longitud de 400m el tiempo record es 25 seg y si la longitud es de 250m el tiempo record es 15seg, informar si el corredor ha mejorado alguno de estos tiempos.

  • ALGORITMOS Y ESTRUCTURAS DE DATOS

    Guía de Trabajos Prácticos

    Página 7 de 16

    TRABAJO PRÁCTICO Nº 3

    PROCESAMIENTO SECUENCIAL

    1. Realizar un algoritmo que permita ingresar una cadena de caracteres e informe cuántas letras ‘a’ contiene esa cadena.

    2. Se ingresa por teclado una cadena de caracteres, el algoritmo deberá contar cuántas

    veces aparece la cadena de caracteres “la” dentro de la cadena ingresada.

    3. Se ingresa por teclado una cadena de caracteres, el algoritmo deberá contar cuántas veces aparece la palabra “la” dentro de la cadena ingresada.

    4. Realizar un algoritmo para ingresar una serie de números enteros positivos (de a uno

    por vez). El algoritmo deberá imprimir el mayor de todos. El final de la serie viene dado por el número 0.

    5. Ingresar un texto por teclado, el fin del texto esta dado por un punto y las palabras están

    separadas entre si por espacios en blanco, comas o punto y coma. Realizar un algoritmo que informe:

    a. Cantidad de palabras que finalicen con la expresión “ese” b. Cantidad de palabras “ese” c. Determinar la cantidad total de “s” en el texto d. Calcular el promedio de letras “s” en todo el texto

    6. Se dispone de una secuencia de caracteres y se desea saber la cantidad de caracteres

    (incluidos los espacios) que existen entre la aparición de dos comas consecutivas.

    7. Ingresar un texto por teclado, el fin del texto esta dado por un punto y las palabras están separadas entre si por espacios en blanco, comas o punto y coma. Realizar un algoritmo que informe:

    a. Cantidad de palabras que terminen con “ga”, “la” o “ta”, pero tengan menos de cinco letras.

    b. Longitud de la palabra más corta. c. Cantidad de palabras que contengan un número par de veces la letra “c”

    8. Se ingresa una serie de números naturales, el final está dado por el 0. Escribir un

    algoritmo que imprima el mayor, el menor, el promedio y la cantidad de números ingresados.

    9. Ingresar un texto por teclado, letra por letra. Las palabras están separadas con blancos,

    comas o puntos y comas. El fin del texto se indica con un punto. Se necesita informar cuantas palabras contienen las letras c1 y c2, ingresadas por teclado.

    10. En una ciudad se realiza un plebiscito. A cada persona se le realiza una pregunta, la

    respuesta puede ser “S “(si) “N” (no) o una abstención. Realizar un algoritmo que informe cuántas personas votaron por “si”, cuántas por “no”, cuántas abstenciones hubo y en total cuántos votaron. Por fin se ingresa un ‘*’

    11. Realizar un algoritmo que determine si una serie de números naturales ingresada por

    teclado es ascendente. El final de la serie viene dado por el cero (0). (Ej: Para la

  • ALGORITMOS Y ESTRUCTURAS DE DATOS

    Guía de Trabajos Prácticos

    Página 8 de 16

    siguiente serie:1, 5, 5, 10, 11, 12, 12, 20, 0 el algoritmo debe informar que es una serie ascendente).

    12. Realizar un algoritmo que determine si una serie de números naturales ingresada por

    teclado es estrictamente ascendente. El final de la serie viene dado por el cero (0). (Ej: Para la siguiente serie: 1, 5, 10, 11, 12, 20, 0 el algoritmo debe informar que es una serie estrictamente ascendente).

    13. Se desea calcular el costo de un telegrama, que se determina en función del número 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. Los valores por palabra se ingresan por teclado.

    14. Escribir un algoritmo que informe todas las palabras en posición par de cada oración de

    una secuencia texto de entrada que además comienzan con la letra ‘M’.

    15. Realizar un algoritmo para ingresar una serie de ternas de números enteros positivos distintos entre sí. El final de la serie viene dado por una terna de ceros. Por cada terna, imprimir el mayor, por final imprimir el mayor número de todos.

    16. Se procesa una encuesta de alumnos que contiene los siguientes datos: edad, sexo y

    Estado Civil (1:soltero, 2: Casado). Realizar un algoritmo que informe cuántos alumnos hay en total, cuántos son varones de 21 ó más años de edad y cuántas mujeres son solteras. El fin viene dado por una terna 0, ‘ ‘, ‘ ‘.

    17. Realizar un algoritmo para determinar si una serie es estrictamente positiva (no contiene

    números negativos ni el cero (0)). El fin de la serie viene dado por el cero (0).

    18. Escribir un algoritmo para ingresar una cadena de caracteres. Deberá informar cuántas palabras contiene. (Sugerencia: Contar las palabras, no los espacios en blanco que separan palabras, pues el operador puede equivocarse y tipear más de un espacio en blanco entre las palabras).

  • ALGORITMOS Y ESTRUCTURAS DE DATOS

    Guía de Trabajos Prácticos

    Página 9 de 16

    TRABAJO PRÁCTICO Nº 4:

    VECTORES

    1. Realizar un algoritmo que permita el ingreso por teclado de los 30 elementos, estos elementos deberán cargarse a un vector numérico, duplicar sus valores y luego imprimirlos en el orden ingresado.

    2. Realizar un algoritmo que permita el ingreso por teclado de los 30 elementos, estos elementos deberán cargarse a un vector numérico y luego imprimirlos en el orden inverso al ingresado.

    3. Realizar un algoritmo que permita el ingreso por teclado de los 30 elementos, estos elementos deberán cargarse a un vector numérico y luego imprimir cada elemento del vector que vaya precedido inmediatamente por un elemento cero.

    4. Realizar un algoritmo que cargue un vector A con 10 elementos numéricos reales y realice las siguientes modificaciones: a. Asignar el valor 11.2 a la tercer posición del vector A b. Asignar el valor del elemento de la octava posición del vector A en la segunda posición c. Intercambiar el elemento de la cuarta posición, con el de la novena posición del vector A.

    5. Cargar un vector con las alturas de los N alumnos de un curso. Determinar la media y luego informar cuantos alumnos son mas altos que la media y cuantos mas bajos.

    6. En un colegio secundario, se maneja la información de las notas de un curso, con tres vectores de longitud N, llamados trim1, trim2 y trim3. Los componentes de los vectores, son las notas del primero, segundo y tercer trimestre respectivamente, para cada alumno. Generar un cuarto vector de nombre prom, donde cada componente sea el promedio de los elementos homólogos de los tres vectores. Imprimir los tres mejores promedios del curso.

    7. Los elementos de un vector numérico de 10 posiciones están relacionados con la siguiente expresión: A[i+1] = i*A[i]+i2 y siendo A[1] = 1. Realizar un algoritmo para calcular

    los elementos de este vector.

    8. Realizar un algoritmo que permita el ingreso por teclado de los 30 elementos, estos elementos deberán cargarse a un vector numérico y luego imprimir:

    a. El posición (índice) del primer elemento menor que 0. b. El valor y posición del mayor elemento.

    9. De los 100 empleados de una fábrica se registra: número de legajo (coincide con el número de índice), edad y salario. Se pide: a. Cargar un vector con los datos Ingresados correlativamente. b. Calcular la edad promedio informando número de legajo de los empleados cuya edad

    supere el promedio.

    10. Mismo enunciado al ejercicio anterior. Se pide: a. Ingresar los datos en forma aleatoria. (se pide ingreso de número de legajo de 1 a 100,

    se posiciona en el elemento correspondiente del vector y se ingresa edad y salario)

    b. Calcular salario promedio informando número de legajo de aquellos cuyo salario supere el promedio.

  • ALGORITMOS Y ESTRUCTURAS DE DATOS

    Guía de Trabajos Prácticos

    Página 10 de 16

    11. Dado dos vectores A y B de N y M componentes, realizar un algoritmo que permita ingresar datos a través del teclado en dichos vectores, generar un nuevo vector que contenga los componentes comunes de los dos anteriores e imprimirlo.

    12. Cargar dos vectores: uno de legajos de empleados, y otro de horas trabajadas por estos empleados. Cada vector tendrá N elementos y el legajo en la posición i del primer vector se corresponde con el valor de las horas trabajadas en la posición i del segundo vector. Se pide: a. Promedio de horas trabajadas b. Imprimir legajos de las personas que trabajaron mas horas que el promedio general c. Legajo de la persona que mas horas trabajo y de la que menos trabajo.

    13. Una empresa dedicada a la emisión de una revista informática, desea conocer cierta

    información, luego de haber lanzado una campaña de promoción. La empresa tiene N vendedores, los cuales realizan suscripciones de clientes. A cada vendedor le será otorgado un 2% sobre el monto de cada una de las suscripciones que hayan concretado. El monto de las suscripciones es único y debe ingresarse como dato. El algoritmo a realizar deberá manejar un vector CANT, donde cada componente representa un vendedor y en el cual se almacene la cantidad de suscripciones realizadas por cada vendedor. Calcular el porcentaje resultante para cada vendedor, y almacenarlo en otro vector PORC. Imprimir los porcentajes de los 5 vendedores que menos percibieron.

  • ALGORITMOS Y ESTRUCTURAS DE DATOS

    Guía de Trabajos Prácticos

    Página 11 de 16

    TRABAJO PRÁCTICO Nº 5:

    MATRICES

    1. Elaborar un algoritmo que permita ingresar números enteros en una matriz de 6 x 6, y que imprima al final la suma de las columnas.

    2. Elaborar un algoritmo que, permita el ingreso de números enteros en una matriz de 10 x 10, imprima los elementos de la matriz recorriendo por fila y al final de cada fila imprima la suma de esta última.

    3. Realizar un algoritmo que cargue una matriz de 5 x 10 con elementos reales y realice las siguientes operaciones:

    a) Asignar el valor 15.6 a la posición que se encuentra en la segunda fila, quinta columna. b) Ingresar un número de fila y asignar en todas las posiciones de esa fila el valor 20. c) Permutar la columna 2 con la 5. d) Informar la matriz con todos los cambios realizados.

    4. Elaborar un algoritmo que lea números enteros en una matriz cuadrada de 10 x 10 elementos. Calcular e imprimir la suma de los elementos de su diagonal principal.

    5. Elaborar un algoritmo que genere una matriz cuadrada de 10 x 10, en la cual asigne ceros a todos sus elementos, excepto a los de la diagonal principal, donde asignará unos. (Esta matriz recibe el nombre de matriz unidad).

    6. Elaborar un algoritmo que genere una matriz cuadrada de 10 x 10, en la cual asigne ceros a todos sus elementos, excepto a los de la diagonal secundaria, donde se asignarán números leídos por teclado.

    7. Elaborar un algoritmo que lea números enteros en dos matrices de 5 x 5. Calcular en una tercera matriz la suma de los elementos de las dos anteriores. Al final imprimir las tres matrices.

    8. Se dispone de las notas correspondientes a una materia de los 40 alumnos de un curso. Cada alumno tiene 5 notas, donde las notas de un alumno corresponden a una fila de una matriz. Elaborar un algoritmo que calcule e imprima el promedio de cada alumno.

    9. Se dispone de las notas correspondientes a una materia de los 40 alumnos de un curso. Cada alumno puede tener hasta 5 notas, donde las notas de un alumno corresponden a una fila de una matriz. Si el alumno no posee las 5 notas, en su lugar figurará un cero, el cual no se promedia. Elaborar un algoritmo que calcule e imprima el promedio de cada alumno.

    10. Una compañía de aviación tiene 4 destinos (numerados de 1 a 4) con 3 vuelos cada uno (numerados de 1 a 3). Se ingresa la información de las plazas disponibles en cada uno de los 12 vuelos. Posteriormente llegan pedidos de pasajes de los que se ingresa:Nº de pedido, N° de destino, N° de vuelo, Cantidad de pasajes requeridos Si la cantidad de pasajes pedidos es superior a la disponibilidad existente en ese vuelo y para ese destino se rechaza el pedido indicando la leyenda: NO HAY CANTIDAD DE PLAZAS DISPONIBLES. Se pide informar la cantidad de pasajes sobrantes en cada vuelo, los N° de pedidos rechazados con la cantidad de pasajes solicitados.

    11. Elaborar un algoritmo que lea números enteros en una matriz de 5 x 10, calcular la suma de cada una de sus filas y almacenar su resultado en un vector de 5 elementos, donde al primer elemento del vector le corresponde la suma de la primera fila de la matriz, al segundo la suma de la segunda fila y así sucesivamente.

    12. Elaborar un algoritmo que lea números enteros en una matriz de 5 x 10, calcular la suma de cada una de sus filas y columnas, dejando dichos resultados en dos vectores, uno de 5 elementos para las filas y otro de 10 elementos para las columnas.

    13. Una empresa de colectivos tiene 3 líneas de 12 coches cada una. Por cada viaje el chofer entrega al llegar a la terminal una planilla con el número de coche (de 1 a 12) , número de

  • ALGORITMOS Y ESTRUCTURAS DE DATOS

    Guía de Trabajos Prácticos

    Página 12 de 16

    línea ( de 1 a 3) y la recaudación del viaje. Las planillas se entregan sin ningún orden. Se pide informar por pantalla:

    a) La recaudación total por línea de colectivo. b) La recaudación total por coche c) La recaudación total general

    14. Un comercio mayorista trabaja con cierta cantidad de artículos. Dispone de un plantel de 15 vendedores para su venta, los cuales están numerados del 1 al 15 inclusive. El Gerente de dicho comercio, desea obtener cierta información estadística respecto de las ventas realizadas en el mes. El algoritmo deberá cargar y manejar: a) Una matriz CANT de 15 * N, en donde cada fila representa un vendedor, cada columna

    un articulo y cada componente de la matriz CANT [ i, j] la cantidad del articulo j vendida por el vendedor i.

    b) Un vector en el que cada componente, sea el precio unitario de venta de cada articulo.

    Se pide emitir un listado como el que se muestra, con las ventas totales por vendedor indicando en él, los importes vendidos.

    Estadística de Ventas

    Vendedor Importe vendido

    1 9-------------9.99

    2 9-------------9.99

    15. Una empresa dedicada a la comercialización de productos, tiene un cierto número de

    clientes selectos. Cargar por teclado una matriz, en la que cada fila represente uno de los clientes de la empresa y en la que sus tres columnas representen los siguientes puntos: Columna 1: Numero de cuenta del cliente; columna 2: Tipo de cliente (0:Normal, 1: Atrasado, 2: Especial); columna 3: Años de relación comercial con la empresa.

    16. Cargar además un vector saldos, en donde cada componente indique el saldo de cada cliente en su cuenta con la empresa. Debe existir un componente por cada fila de la matriz. Realizar un algoritmo que:

    a) Modificar el vector de saldos de tal forma que: Sume un interés del 5% a todo cliente atrasado, y otorgue un descuento del 2% a los clientes atrasados.

    b) Listar el número y el saldo de los clientes normales que tengan más de 5 años de relación con la empresa.

    17. Elaborar un algoritmo para ingresar números en una matriz en las posiciones correspondientes al triángulo superior (de la diagonal principal hacia la derecha), el resto de la matriz permanece en 0.

    18. Elaborar un algoritmo que lea números en dos matrices una de 5 x 4 y la otra de 4 x 3. Calcular en una tercera matriz el producto de los elementos de las dos anteriores, la matriz resultado será de 5 x 3. Al final imprimir las tres matrices.

    Nota: Para poder multiplicar matrices, el número de filas de una matriz debe coincidir con el número de columnas de la otra (no necesariamente deben ser cuadradas). El producto está definido por la fórmula:

    c[i,j] = a[i,k] * b[k,j] 19. Elaborar un algoritmo que permita determinar si dada una matriz cuadrada ésta es

    identidad.

    Nota: Una matriz A es considerada “identidad” si cada elemento a[i,j] = a[j,i]. 20. En un vector de cadenas de caracteres se tienen almacenados en orden alfabético los

    nombres de los 30 alumnos de un curso. Se dispone además de una matriz de 30 filas (una fila por cada alumno) por 7 columnas correspondientes a las notas de cada uno de ellos en

  • ALGORITMOS Y ESTRUCTURAS DE DATOS

    Guía de Trabajos Prácticos

    Página 13 de 16

    las 7 materias que están cursando. Realizar un algoritmo que permita ingresar por teclado el nombre de un alumno, realizar una búsqueda en el vector de alumnos e imprimir sus correspondientes notas. El número de fila correspondiente a las notas de un alumno coincide con la posición dentro del vector donde se encuentra el alumno (por ejemplo, si el alumno se encuentra en la posición 23 dentro del vector, sus notas corresponderán a la fila 23 de la matriz).

    21. Considere el ejercicio anterior. Agregue un vector de 30 números reales en el cual se almacenará el promedio de cada alumno, donde el i-ésimo promedio corresponde al promedio del i-ésimo alumno y se calcula promediando la i-ésima fila de la matriz. Realizar un algoritmo que permita buscar un alumno dado por teclado e imprimir sus notas y su promedio.

    22. Una empresa de construcciones que posee 112 empleados lleva un control de horas trabajadas por cada empleado durante el mes. Para ello cuenta con una estructura de tipo matriz en la que se almacena información acerca de las horas trabajadas por cada empleado durante los días del mes (cada empleado trabaja como máximo 25 días al mes). En la primera columna de la matriz se almacena el código (numérico) del empleado, en la segunda el precio por hora, hay una columna para cada día en la que se almacena la cantidad de horas trabajadas en un día. Realizar un procedimiento que calcule e imprima el sueldo de cada empleado: Se debe sumar todas las columnas correspondientes a las horas de trabajo de cada día y multiplicarlo por la Columna 2 para obtener el sueldo. Imprimir el código del empleado y su sueldo.

    23. La empresa proveedora del servicio de agua potable desea informatizar su sistema de facturación a clientes. Para ello, cuenta con información acerca del consumo de cada cliente y con una tabla de importes según la cantidad consumida. Esta información se organiza en dos matrices: una matriz con el código de cliente, la cantidad de agua consumida en metros cúbicos y una columna para el Importe a facturar, y una segunda matriz: es una tabla en la que figura el costo del metro cúbico de agua según la cantidad consumida (hay 10 rangos de pares cantidad, importe). Realizar un algoritmo para actualizar el importe a facturar, teniendo en cuenta que el Importe total se obtiene del producto de la cantidad de agua consumida por el costo del metro cúbico (según el costo que corresponda) mas un costo fijo (que es el mismo para todos los clientes) mas un 25% en concepto de impuestos.

  • ALGORITMOS Y ESTRUCTURAS DE DATOS

    Guía de Trabajos Prácticos

    Página 14 de 16

    TRABAJO PRÁCTICO Nº 6:

    ORDENAMIENTO, BÚSQUEDA Y HASHING

    1. Se dispone de una lista de 5.000 números enteros clasificados en orden creciente, almacenada en un vector. Se desea conocer si un número dado a través del teclado se encuentra en la lista. ¿Qué método utilizaría en este caso?¿Porque?

    2. Se dispone de una lista de 10 números enteros clasificados en orden creciente, almacenada en un vector. Se desea conocer si un número introducido desde el teclado se encuentra en la lista. En caso afirmativo informar su posición. ¿Qué método utilizaría?¿Porque?

    3. Se dispone de una lista de alumnos ordenada alfabéticamente (almacenada en un vector) y sus correspondientes promedios de la materia “Algoritmos y Estructuras de datos” (almacenados en otro vector). Realizar un algoritmo que permita ingresar por teclado el nombre de un alumno y muestre el promedio de dicho alumno.

    4. Se necesita localizar un nombre en un arreglo de N nombres, ordenados alfabéticamente. Escriba por lo menos dos algoritmos que permitan solucionar el problema; especifique cuál de las formas considera más eficiente y por qué

    5. Se necesita ordenar un arreglo de N productos de mayor a menor. Cada elemento del arreglo contiene Número y Precio. Escriba por lo menos dos algoritmos que permitan solucionar el problema; especifique cuál de las formas considera más eficiente y por qué.

    6. Cargar un vector con 20 números enteros positivos. Mostrar el vector tal como fue ingresado y luego mostrar el vector ordenado en forma decreciente.

    7. Dados dos vectores A y B de N y M componentes ordenados, realizar un algoritmo que genere un nuevo vector de N+M componentes en el que se copian ordenadamente los elementos de A y B.

    8. Dado un vector de N números enteros, realizar los algoritmos para ordenar sus elementos a través de los métodos:

    a. Intercambio o burbuja. b. Inserción. c. Selección. d. Shell. e. Quicksort.

    9. Se dispone de la lista de alumnos inscriptos en la materia “Algoritmos y Estructuras de Datos”. Realizar un algoritmo que ordene alfabéticamente esta lista.

    10. Cargar un vector con 20 números enteros (positivos y negativos) distintos de cero. Mostrar

    el vector tal como fue ingresado y luego mostrar los positivos ordenados en forma decreciente y los negativos ordenados en forma creciente.

    11. Se dispone de una lista de alumnos ordenada alfabéticamente (almacenada en un vector) y sus correspondientes promedios de la materia “Algoritmos y Estructuras de Datos” (almacenados en otro vector). Realizar un algoritmo que ordene la lista de alumnos de acuerdo a sus promedios.

    12. Realizar un algoritmo que cargue dos vectores, uno con los nombres de las provincias Argentinas y el otro con la temperatura media anual de cada una de ellas. El algoritmo deberá informar un listado de provincias y sus temperaturas ordenadas alfabéticamente y un listado de provincias y sus temperaturas ordenado por temperaturas decrecientes.

    13. Se cuenta con dos vectores de n elementos cada uno. El primer vector contiene nombre de personas y el segundo su sexo (“F” si es mujer o “M” si es varón) El algoritmo deberá generar dos nuevos vectores uno contendrá el nombre de todas las mujeres y el otro vector contendrá el nombre de todos los varones ordenados alfabéticamente.

    14. Una farmacia desea procesar datos sobre sus medicamentos. Se sabe que la misma trabaja con 5 laboratorios distintos. Se pide realizar un algoritmo que cargue dos vectores, uno con

  • ALGORITMOS Y ESTRUCTURAS DE DATOS

    Guía de Trabajos Prácticos

    Página 15 de 16

    los nombres de los laboratorios y otro con la cantidad de remedios de ese laboratorio que tiene la farmacia e informe:

    a) Cantidad de remedios que posee en total la farmacia.

    b) El vector de cantidades de remedios de cada laboratorio ordenado en forma decreciente, junto con el laboratorio correspondiente (*)

    c) Ingresar el nombre de un laboratorio e informar con un mensaje indicando si la farmacia trabaja o no con ese laboratorio, en caso afirmativo informar la cantidad de remedios que tiene.

    15. Se dispone de una lista de alumnos con sus respectivas matrículas, se dispone además, de dos vectores de 100 posiciones, uno de tipo entero y otro de cadenas de caracteres. Realizar un algoritmo que transforme el número de matrícula del alumno en una posición de almacenamiento en los vectores (la matrícula en el de enteros y los nombres en el de cadenas de caracteres). Utilice el método del módulo, en caso de colisiones, utilizar la primera celda vacía.