Está en la página 1de 12

FACULTAD DE INGENIERÍA INDUSTRIAL

ALGORITMOS
SEPARATA COMÚN DE EJERCICIOS - 3

SECCIONES: Todas

Elaborado: Editado y Aprobado: 15 de setiembre de 2019 - Profesores de Curso - Coordinación de Curso (Ing. Marcela Escobar)
Última actualización 25 de julio 2022
Tabla de contenido

UNIDAD 3: ARREGLOS DE DATOS VECTORES Y MATRICES ________________________________ 3


3.1 CONCEPTOS BÁSICOS __________________________________________________________ 3
3.2 EJERCICIOS CON VECTORES Y MATRICES ___________________________________________ 4
3.3 EJERCICIOS PROPUESTOS _______________________________________________________ 9

-2-
UNIDAD 3: ARREGLOS DE DATOS VECTORES Y MATRICES
3.1 CONCEPTOS BÁSICOS
1. Declare en el pseudocódigo los siguiente:
i. Un vector llamado V1 con capacidad de almacenamiento de 20 números enteros
______________________

ii. Una matriz llamada TELEFONO para almacenar el teléfono (cadena de caracteres) de 8 clientes
______________________

2. Escriba si es falso o verdadero:


Entero Parcial (23) es un vector que puede almacenar hasta 23 datos. ( )

Texto Meta (83 hasta 93) es un vector que puede almacenar hasta 11 elementos ( )

Real CASH (2, 4) es un vector que puede almacenar hasta 8 datos ( )

Real Prueba (23, 14) es una matriz con capacidad de almacenar de 24 x 15 datos ( )

Texto Entero Data(1 hasta 3, 1 hasta 8) es una matriz que podrá almacenar 3 x 8 elementos ( )

3. Relacione la columna A con la columna B, trace una línea desde la columna A hacia el concepto correcto
en la columna B:

COLUMNA A COLUMNA B
0, Cero Dato  V (1,1)
Asigna el valor de la matriz al dato indicado Nota  M (4)
Es el índice para el primer elemento de
Índice un arreglo de una dimensión que se
establece por defecto.
Identifica la posición dentro del
Asigna el valor del vector al dato Nota
arreglo.

-3-
3.2 EJERCICIOS CON VECTORES Y MATRICES
ENUNCIADOS - EJERCICIOS RESUELTOS

4. Cree un algoritmo (pseudocódigo) que permita ingresar valores a dos vectores. Considere que cada vector
tiene 15 datos y que cada dato está en el rango de 0 a 20. Además, muestre los datos de cada vector.
Luego, en un tercer vector, guarde la suma de los cuadrados de los elementos de los dos vectores
anteriores. Finalmente, muestre un listado con los resultados del tercer vector y la suma de sus elementos.
Solución
A Vector de 15 elementos con números de 0 a 20
B Vector de 15 elementos con números de 0 a 20
V Vector de 15 elementos con la suma de los cuadrados del vector A y B
i es la posición que se utiliza en los vectores
Sumatoria Suma de los 15 elementos del vector V

Inicio
Entero A(500), B(500), V(500)
Repetir
Ingresar n
Si n<= 0 Entonces Mostrar “Ingrese cantidad de elementos nuevamente, es positivo”
Hasta n>0
Para i=1 hasta n
Repetir
Ingresar A(i)
Si A(i)< 0 Entonces Mostrar “Ingrese número de 0 a 20 para el vector A”
Hasta A(i)>=0 y A(i)<=20
Mostrar A(i)
Siguiente i
Para i=1 hasta n
Repetir
Ingresar B(i)
Si B(i)< 0 Entonces Mostrar “Ingrese número de 0 a 20 para el vector B”
Hasta B(i)>=0 y B(i)<=20
Mostrar B(i)
Siguiente i
Para i=1 hasta n
V(i) = A(i) ^ 2 + B(i) ^ 2
Sumatoria = Sumatoria + V(i) Mostrar V(i)
Siguiente i
Mostrar Sumatoria
Fin

5. Cree un diagrama de flujo que permita ingresar los nombres y los sueldos de n alumnos. Muestre los
nombres y el sueldo que tienen el mayor sueldo. Considere que el sueldo es mayor a 1200.

Solución:

-4-
Inicio
Entero nombre(1000), Real sueldo(1000)
Mayor = 0
Repetir
Ingresar n
Si n<= 0 Entonces Mostrar “Ingrese la cantidad de empleados”
Hasta n>0
Para i=1 hasta n
Repetir
Ingresar nombre(i)
Si nombre (i) = “” Entonces Mostrar “Debe ingresar un nombre”
Hasta nombre (i)<>””
Repetir
Ingresar sueldo(i)
Si sueldo(i)<= 1200 Entonces Mostrar “Ingrese sueldo superior a 1200”
Hasta sueldo(i)>1200
Si sueldo(i)>Mayor Entonces Mayor = sueldo(i)
Siguiente i
Para i=1 hasta n
Si sueldo(i)= Mayor Entonces Mostrar sueldo(i)
Siguiente i
Fin

6. Diseñe un algoritmo que simule varios lanzamientos (más de 10) de un dado y muestre la frecuencia de
cada una de las caras, así como la proporción del número de veces que haya salido cada cara con respecto
al total. Represéntelo mediante un pseudocódigo.
Solución:
nl: representa el número de lanzamientos
I: representa la posición del lanzamiento
Dado Vector de 6 elementos del 1 al 6
Moda: Vector de 6 elementos que guarda las repeticiones de cada dado
P: Vector de 6 elementos que guarda los resultados de las proporciones o porcentajes c1, c2, c3, c4, c5 y
c6 número de veces que salió ese número de dado
Posición: es la posición de la mayor cantidad del vector Moda.
Inicio
Entero Dado(6), Moda(6), P(6)
Repetir
Ingresar nl
Si nl < 10 entonces
Mostrar “ El # de lanzamientos debe ser mayor a 10”
Fin-si
Hasta nl>10
Para i=1 hasta nl
Repetir
Ingresar Dado(i)
Si Dado(i) < 1 O Dado(i) > 6 entonces
Mostrar “Vuelva a ingresar el valor del dado”
Fin-si
Hasta Dado(i)>=1 Y Dado(i)<=6
Seleccionar Caso Dado(i)
Caso 1

-5-
c1 = c1+1
Moda(1) = c1 P(1) = c1 / nl
Caso 2
c2 = c2+1
Moda(2) = c2 P(2) = c2 / nl
Caso 3
c3 = c3+1
Moda(3) = c3 P(3) = c3 / nl
Caso 4
c4 = c4+1
Moda(4) = c4 P(4) = c4 / nl
Caso 5
c5 = c5+1
Moda(5) = c5 P(5)= c5 / nl
Caso 6
c6=c6+1
Moda(6) = c6 P(6)= c6 / nl
Fin – Seleccionar
Siguiente i
Mayor = 0
Para i = 1 hasta 6
Si moda(i)>mayor entonces
Mayor = moda(i)
Posición =i
Fin -si
Siguiente i
Mostrar “La moda es el lado “ & Posición & “con un valor de “ & mayor
Para i= 1 hasta 6
Mostrar Moda(i)
Mostrar “La proporción del lado “ & Moda(i) & “ del total de “ & nl & “lanzamientos es = “ & P(i)
Siguiente i
Fin

7. Elabore un diagrama de flujo que permita leer los 50 de números del vector A y B para realizar la suma y
diferencia de los vectores y el producto escalar.
Solución:
Inicio
Real A(1 hasta 50), B(1 hasta 50), Suma(1 hasta 50), Diferencia(1 hasta 50),
i=0
Para i= 1 hasta 50
Leer A(i), B(i)
Suma(i) = A(i) + B(i)
Mostrar Suma (i)
Diferencia(i) = A(i) + B(i)
Mostrar Diferencia(i)
P = P + A(i) * B(i)
Siguiente i
Mostrar P
Fin

-6-
8. Elabore un pseudocódigo que genere los N primeros
términos de la serie Fibonacci. Considere que N es un
número entero ingresado como dado. Además, debe
almacenar en un vector los términos pares y en otro los
términos impares., tal como se muestra a continuación.
Números Fibonacci: 1, 1, 2, 3, 5, 8, 13, 21, 34 …

Lista de datos:
n cantidad de términos de la serie de Fibonacci
Impar( ), vector de impares
Par( ), vector de pares
ci contador de términos impares del vector
cp contador de términos pares del vector
Variables para generar los términos de la serie: tA, tB, tC

Solución:

Inicio
Entero Impar(200), Par(200)
Repetir
Ingresar n
Hasta n >= 3
tA = 1
tB = 1
S=2
cp = 0
ci = 2
Impar(1) = 1
Impar(2) = 1
Mostrar Impar(1), Impar(2)
Para i = 3 hasta n
tC = tA + tB
Si tc mod 2 = 0 entonces
cp = cp + 1
Par(cp) = C
Sino
vci = ci + 1 I(ci) = C
Fin-Si
tA = tB
tB = tC
Siguiente i
Para i = 1 hasta cp
Mostrar Par(i)
Siguiente x
Para i = 1 hasta ci
Mostrar Impar(i)
Siguiente i
Fin

9. Elabore un pseudocódigo para ingresar los elementos de una matriz y determine si se trata de una matriz
identidad.

-7-
Solución:

10. Si se tiene un vector A con 5 elementos cuyos valores almacenados en él son iguales a los cuadrados de
cada posición. Además, el vector B tiene 5 posiciones y los valores almacenados en él tienen la siguiente
regla de formación: 3 * i + 2, donde i es la posición. Se solicita elaborar un pseudocódigo que permita
calcular el vector, C = 2*A +3B. Tome en cuenta que el algoritmo mostrará el vector C, el promedio de los
valores almacenados en C y los elementos de C que son mayores que el promedio.
Solución:
Inicio
Entero A(5), B(5), C(5)
Suma = 0
Para i = 1 hasta 5
A(i) = i ^ 2
Mostrar A(i)
Siguiente i
Para i = 1 hasta 5
B(i) = 3 * i + 2
Mostrar B(i)
Siguiente i
Para i = 1 hasta 5
C(i) = 2 * A(i) + 3 * B(i)
Mostrar C(i)
Siguiente i
Para i = 1 hasta 5
Suma = Suma + C(i)
Siguiente i
Prom = Suma / 5
Mostrar Prom
Para i = 1 hasta 5
Si C(i) > Prom entonces Mostrar C(i)
Siguiente i
Fin

-8-
3.3 EJERCICIOS PROPUESTOS
11. Elabore un pseudocódigo que permita mostrar las cifras de un número que está en el rango de 1 a 2500.
Luego, muestre la suma de sus cifras y la cifra mayor y menor. Utilice vectores para su resolución.

12. Elabore un pseudocódigo que muestre un listado con todos los números Fibonacci comprendidos entre 1
y n, tomando en cuenta que n es un dato que se ingresa. Muestre, además, el promedio de los números y
el mayor de los Fibonacci par e impar.

13. Elabore un diagrama de flujo y un programa en VBA que muestre el máximo común divisor de 3 números
dados. Además, muestre a los divisores utilizados para tal cálculo.

14. Cree un diagrama de flujo y un pseudocódigo que permita determinar si una matriz 3 x 3 es una matriz
diagonal (todos sus elementos son nulos excepto los de la diagonal principal). Deberá considerar que los
datos ya existen, por lo que no deberá ingresarlos, pero sí leerlos. Finalmente, muestre el promedio de los
elementos de la diagonal principal.

15. Elabore un diagrama de flujo y un pseudocódigo que ingrese las ventas de 20 productos en sus 2 tiendas
(Miraflores y Surco). Considere que la venta ingresada debe estar en el rango de 1000 a 15000. Tome en
cuenta que deberá mostrar el total de ventas de cada tienda.

16. Diseñe un algoritmo diagrama de flujo que permita realizar la reserva de un hotel con P pisos y Nh número
de habitaciones por piso hasta que se indique que no se van a realizar más reservas o se agote la
disponibilidad de habitaciones. Al finalizar, indique cuál es el piso más reservado, cuál es el porcentaje de
ocupación para cada piso y el porcentaje de ocupación total del hotel.

17. Elabore un diagrama de flujo y un pseudocódigo que ingrese números a una matriz, solo se aceptan valores
enteros mayores que cero y menores que 8. A continuación, guarde en un vector el factorial de todos los
números que sean primos almacenados en la matriz.

18. Elabore un diagrama de flujo que ingrese dos vectores (llamados A y B) de 6 elementos cada uno, luego
deberá calcular el vector Z como 3A + 3B y mostrar sus datos. Además, deberá sumar los elementos de Z
que sean pares y luego mostrará dicho resultado.

19. En una estación de gasolina, se venden 3 tipos de combustible: Gasolina de 97 octanos (código 1), Gasolina
de 95 octanos (código 2) y Gasolina de 90 octanos (código 3).
Los días de la semana de lunes a domingo se identifican con códigos del 1 al 7 respectivamente. Elabore
un pseudocódigo que permita:
• Ingresar los montos de venta de cada uno de los 3 tipos de combustible, en cada uno de los 7 días de
la semana (montos de venta de la gasolina tipo 1 en cada uno de los 7 días, montos de venta de la
gasolina tipo 2 en cada uno de los 7 días, etc.). Además, muestre los datos ingresados.
• Identificar el monto de venta más alto, indicando a qué tipo de combustible y, a que día de la semana
corresponde.
• Mostrar el listado de las ventas totales por día en orden descendente indicando día de la semana (1-
7) y monto total.

-9-
20. Diseñe un diagrama de flujo y el pseudocódigo que permita calcular el promedio de sueldos de la empresa
VIOS Perú. Tome en cuenta que deberá ingresar el código del empleado y el sueldo. Además, el código del
empleado solo es un valor numérico de 100 a 200 y el sueldo está en el rango de 850 a 7500. Los ingresos
se realizarán hasta que se responda afirmativamente a la pregunta ¿Desea terminar? Luego, deberá
mostrar el promedio de sueldos y el listado correspondiente de los empleados que ganen más de dicho
promedio.

21. Cree un pseudocódigo que permita obtener la matriz traspuesta. Considere que la matriz es de 3 x 3 y que
los datos ya existen y están en la hoja de cálculo. Finalmente, muestre la suma de los elementos de la
diagonal principal.

22. Elabore un algoritmo diagrama de flujo que permita calcular la suma y diferencia de dos matrices. Tome
en consideración que los datos se deberán ingresar a las matrices deben estar en el rango de 0 a 100.
Muestre el promedio de los números ingresados en las dos matrices.

23. Elabore un diagrama de flujo y un pseudocódigo para resolver el siguiente caso: Se desea saber cuál es la
producción total (acumulada) de cada una de las máquinas de una empresa industrial. Las 100 máquinas
están identificadas como 100, 101, 102… 199. Cada vez que una máquina produce una cantidad de
unidades, se ingresa al programa el código de la máquina y dicha cantidad. Además, una máquina puede
ser ingresada varias veces.
• El ingreso de datos finaliza cuando el usuario del sistema contesta afirmativamente a la respuesta
“¿Desea terminar?
• Finalizado el ingreso de datos deberá mostrar la siguiente estadística:
o Cantidad producida por cada una de las máquinas
o Máquina de menor producción
o Promedio de unidades producida por máquina.

24. Elabore un pseudocódigo que permita ingresar el nombre de un alumno y las 5 notas del curso de
algoritmos. No se sabe cuántos alumnos se ingresarán, pero el procedimiento continuará hasta que el
usuario responda “No” a la pregunta “¿Desea continuar?”. Finalmente, deberá mostrar el promedio de
notas por cada tipo de evaluación, el promedio final del alumno y el porcentaje de alumnos aprobados de
la sección.

25. Escriba un algoritmo (diagrama de Flujo) que lea dos arreglos de números enteros ORDENADOS
ascendentemente y luego produzca la lista ordenada de la mezcla de los dos. Por ejemplo, si los dos
arreglos tienen los números 1 3 6 9 17 y 2 4 10 17, respectivamente, la lista de números en la pantalla debe
ser 1 2 3 4 6 9 10 17 17.

26. Elabore un pseudocódigo que permita vender las entradas a un teatro de F filas y A asientos por fila. La
venta termina cuando no hay clientes por atender o cuando se agotaron todas las entradas. Finalizada la
venta indique cuál es el porcentaje del total de entradas que se vendieron. Y cuál es la fila o filas en la que
se vendieron más entradas.

27. Elabore pseudocódigo que permita la cantidad de divisores y a todos los divisores de un número tomando
en cuenta que el número está en el rango de 0 a 100.

- 10 -
28. Elabore un diagrama de flujo que permita generar un vector con todos los números primos comprendidos
entre 1 y N.

29. Dado el siguiente vector V( ) de 6 elementos:

Indique ¿Cuál es el valor mostrado para R y X, luego de ejecutarse el siguiente algoritmo?

Inicio
Entero V(6)
R=0
X=0
Para i = 2 hasta 6 Paso 2
Si V(i)<>0 Entonces
R=R+V(i)\2
X=X+1
Fin-si
Siguiente i
Mostrar R, X
Fin

30. Se solicita diseñar un algoritmo en pseudocódigo que permita recibir la información de n alumnos , utilice
un vector para almacenar el nombre y una matriz que almacene los 5 tipos de notas de estos. Se pide
generar un reporte que muestre:
• La desviación de notas finales del grupo de alumnos (tenga en cuenta que el peso ponderado de todas
las notas es el mismo)
• El promedio de notas del grupo de estudiantes que supera la nota promedio , para la nota 3
• Cuál es el top 5 de los alumnos con mejor nota final
• Porcentaje de alumnos cuya nota 1 supera el promedio de la nota final del curso • Cual es la nota
más frecuenta en la nota 4

31. Una forma de resolver un sistema de ecuaciones lineales es con la ayuda de matrices. Se construye la
matriz ampliada y luego, se procede a escalonarla. Elabore un pseudocódigo que permita escalonar la
matriz ampliada de un sistema de ecuaciones.
Por ejemplo:

- 11 -
32. Jugos del Perú S.A. produce y comercializa 3 tipos de jugos de frutas a partir de zumo concentrado de fruta.
Los jugos están identificados con los códigos 1, 2 y 3. Cada tipo de jugo tiene un porcentaje (volumen) de
zumo concentrado como se indica a continuación:

Tipo de Zumo Concentrado (% en


Jugo volumen)

1 15%
2 25%

3 35%

Desarrolle un pseudocódigo que solicite un número entero N (un número de días, 0<N<=30). Luego, debe
solicitar la producción (en litros) para cada tipo de jugo en cada uno de los N días (del día 1, del día 2, del
día 3, etc.). La producción de un día no debe exceder los 1000 litros y todos los datos deben ser
almacenados en una matriz. Finalizado el ingreso de datos el programa debe mostrar lo siguiente:
• El porcentaje de cada tipo de jugo (referido a la producción total de jugos).
• La cantidad total (en litros) de zumo concentrado consumido en cada uno de los tipos de jugo.
• La cantidad total (en kg) de fruta empleada en el proceso, sabiendo que cada 10 Kg de fruta se obtienen
7 litros de zumo concentrado.

- 12 -

También podría gustarte