Guia Ejercicios Ay ED1

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 16

Ingeniería en Informática

Analista Universitario de Sistemas

ALGORITMOS Y ESTRUCTURAS
DE DATOS I

GUIA DE TRABAJOS PRÁCTICOS


ALGORITMOS Y ESTRUCTURAS DE DATOS
Guía de Trabajos Prácticos

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:
2 12
a. b  4ac e. 4 z 
4
x2  y2 25
b. f.  30 x
z2 5
4 3 1
c. πr g. 2x 3  x 2  x2
3 4
d. 4x 2 - 2x  7 h. 5  9 * 3 / 5  3

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


a. C  A  B f. C  (B - A) / (A - 3)
b. C  A * 5  B g. C  4 / 2 * 3 / 6  B / 2 / 1 / 5 ^ 2 - A
c. C  B  A  25  4 * (A* B) / 2 h. C  B ^ A  (A / B) - 20 / B
d. C  25 ^ (1/2)* 5 * A - B i. C  (A  B) / (B - A)
e. C  A - B / 2  A * 5 j. C  A * B * 5  (B - A) ^ 3

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


prueba de escritorio.
A  10 A  10
B5 B5
a) c)
CB C  A*5* B
BC B  A B C

A2 A5
b) B  5 d) B  10
C  3* A - 4 * B / A ^ 2 C   A  B * 4^ 1 / 2  / 2

Página 1 de 16
ALGORITMOS Y ESTRUCTURAS DE DATOS
Guía de Trabajos Prácticos
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
(A<B) or (B<55)

c) A←10
B←Falso
not (A<5) and (B and (A>20))

d) A←25
B←Verdadero
C←”X”
(C>”Y”) or ((not B) and (A>123))

e) A←135
B←89
C←45
((C<>A) and (B=100)) or not((C<>B) or (C>52))

f) A←Verdadero
B←236
X←”C”
(A or (B<163) and X=”H” and (not (B<=25)))

g) A←255
B←142
C←Verdadero
not (((A>=B) or C) and (not C or ((B<= 356) and C)))

h) A←255
B←142
C←150
((C<A) and (B<=256)) or not ((C<>B) or (C>63))

Página 2 de 16
ALGORITMOS Y ESTRUCTURAS DE DATOS
Guía de Trabajos Prácticos

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
A5 y B10, 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: h  a 2  b 2 , 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.

Página 3 de 16
ALGORITMOS Y ESTRUCTURAS DE DATOS
Guía de Trabajos Prácticos
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.

Página 4 de 16
ALGORITMOS Y ESTRUCTURAS DE DATOS
Guía de Trabajos Prácticos
32. Se ingresan 30 pares de valores, que representan mes y cantidad de entradas vendidas en
un espectáculo. Imprimir cantidad de entradas vendidas en cada estación del año.
Otoño: Marzo, Abril, mayo Invierno: junio, julio, agosto
Primavera: septiembre, octubre, noviembre Verano: diciembre, enero, febrero
33. Escribir un algoritmo que imprima la suma de los 1000 primeros números naturales, es decir,
1 + 2 + 3 + 4 + ... + 998 + 999 + 1000.
34. 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.
35. Se ingresan 20 pares de catetos que corresponden a triángulos rectángulos. Para cada par,
imprimir el valor de la hipotenusa y el número de par correspondiente (catetos).
36. 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.
37. 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.
38. 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
39. 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.
40. 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-….
41. 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.
42. Realizar un algoritmo que imprima todos los múltiplos de un número M comprendidos entre
otros dos números A y B. (A<B). Los tres vales (M, A y B) se ingresan por teclado
43. Realizar un algoritmo que imprima los números primos entre N y M. (N<M).
44. En una empresa trabajan N empleados cuyos sueldos oscilan entre $10000 y $25000,
realizar un algoritmo que lea el número de legajo de cada empleado y el sueldo que cobra, e
informe cuantos empleados cobran entre $10000 y $20000 y cuantos cobran más de
$20000 y sus números de legajo. Además el algoritmo deberá informar el importe que gasta
la empresa en sueldos al personal.
45. Una empresa de construcciones necesita calcular para cada uno de sus empleados el total
de horas trabajadas en el día, para ello se cuenta con la hora de entrada (hora y minutos) y
la hora de salida (hora y minutos) de cada uno de ellos. Realizar un algoritmo que informe
para cada empleado el total de horas trabajadas en el día y además, informar el total de
horas que trabajó el empleado que más trabajó y el total de horas trabajadas por todos los
empleados.

Página 5 de 16
ALGORITMOS Y ESTRUCTURAS DE DATOS
Guía de Trabajos Prácticos
46. 500 personas completan un cuestionario sobre lectura de los diarios ‘A’, ‘B’ y ‘C’. Efectuar
un algoritmo que informe:
a) Cuántos leen el diario ‘A’ solamente.
b) Cuántos leen los tres diarios.
c) Cuántos no leen ningún diario.
d) Cuántos no leen el diario ‘A’, pero si alguno de los otros dos.
e) Cuántos leen el diario ‘A’ y otro más.
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.

Página 6 de 16
ALGORITMOS Y ESTRUCTURAS DE DATOS
Guía de Trabajos Prácticos

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 porcentaje 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

Página 7 de 16
ALGORITMOS Y ESTRUCTURAS DE DATOS
Guía de Trabajos Prácticos
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. 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).

Página 8 de 16
ALGORITMOS Y ESTRUCTURAS DE DATOS
Guía de Trabajos Prácticos

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 0 (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 tercera 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)

Página 9 de 16
ALGORITMOS Y ESTRUCTURAS DE DATOS
Guía de Trabajos Prácticos
b. Calcular salario promedio informando número de legajo de aquellos cuyo salario supere
el promedio.
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.

Página 10 de 16
ALGORITMOS Y ESTRUCTURAS DE DATOS
Guía de Trabajos Prácticos

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.

Página 11 de 16
ALGORITMOS Y ESTRUCTURAS DE DATOS
Guía de Trabajos Prácticos
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
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.
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 especiales.
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.
16. 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.

Página 12 de 16
ALGORITMOS Y ESTRUCTURAS DE DATOS
Guía de Trabajos Prácticos
17. 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]


18. 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].

19. 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
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).
20. 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.
21. 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.
22. 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.

Página 13 de 16
ALGORITMOS Y ESTRUCTURAS DE DATOS
Guía de Trabajos Prácticos
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.

Página 14 de 16
ALGORITMOS Y ESTRUCTURAS DE DATOS
Guía de Trabajos Prácticos
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
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.

Página 15 de 16

También podría gustarte