Você está na página 1de 15

Facultad de Ingeniería Industrial

IN220 Algoritmos
Guía de ejercicios
Unidad 3 - Vectores y Matrices

Ejercicios para practicar


1. 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.

2. 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.

3. 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.

4. Elabore un diagrama NS 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.

5. 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.
Números Fibonacci:
1, 1, 2, 3, 5, 8, 13, 21, 34 …

6. Cree un programa en VBA que permita ingresar n números entre 1 y 50, y luego, los muestre en orden
ascendente. Utilice la siguiente interfaz gráfica:
Algoritmos – Guía de ejercicios Unidad 3 Página 2

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

8. 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 programa en VBA que permita escalonar
la matriz ampliada de un sistema de ecuaciones. Por ejemplo:

9. 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 algoritmos mostrará el vector C, el promedio de los valores almacenados en C y
los elementos de C que son mayores que el promedio.

10. 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:

UPC - Facultad de Ingeniería Industrial


Algoritmos – Guía de ejercicios Unidad 3 Página 3

Tipo de Jugo Zumo Concentrado (% en volumen)


1 15%
2 25%
3 35%

Desarrolle un programa en VBA que solicite un entero N (un número de días, 0<N<=30). Luego, el programa
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.
 Asigne un botón para la lectura y un botón para cada uno de los datos solicitados

11. 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 C = 2 hasta 6 Paso 2
Si V(C) <> 0 Entonces R = R + V(C) \ 2
X=X+1
Siguiente C
Fin

Valor de R __________
Valor de X __________

Ahora, implemente el algoritmo en VBA.

UPC - Facultad de Ingeniería Industrial


Algoritmos – Guía de ejercicios Unidad 3 Página 4

Solución
1. 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
Datos: 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

UPC - Facultad de Ingeniería Industrial


Algoritmos – Guía de ejercicios Unidad 3 Página 5

2. 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.

INICIO

n
“Ingrese n nuevamente
como positivo”

No
n>0

Mayor =0

Para i = 1 hasta n

Para i = 1 hasta n
Nombre(i),
Sueldo (i)

Sueldo(i) =Mayor
No
No Sueldo(i)
Sí >Mayor

Nombre(i), Sí
Sueldo(i)

Mayor = Sueldo(i)

Siguiente i

Siguiente i

FIN

3. 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 seudocódigo.

Solución
Datos: 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.

UPC - Facultad de Ingeniería Industrial


Algoritmos – Guía de ejercicios Unidad 3 Página 6

Inicio Mayor= 0
Entero Dado(6), Moda(6), P(6) Para i = 1 hasta 6
Repetir Si moda(i) > mayor entonces
Leer nl Mayor = moda(i)
Si nl < 10 entonces Posicion = i
Mostrar “ El # de lanzamientos debe ser mayor a 10” Fin -si
Fin-si Siguiente i
Hasta nl > 10 Mostrar “La moda es el lado “ & posicion & “con un
Para i = 1 hasta nl valor de “ & mayor
Repetir Para i= 1 hasta 6
Leer Dado(i) Mostrar Moda(i)
Si Dado(i) < 1 O Dado(i) > 6 entonces Mostrar “La proporción del lado “ & Moda(i) & “
Mostrar “Vuelva a ingresar el valor del dado” del total de “ & nl & “lanzamientos es = “ & P(i)
Fin-si Siguiente i
Hasta Dado(i) >= 1 Y Dado(i) <=6 Fin
Seleccionar Caso Dado(i)
Caso 1
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

4. Elabore un diagrama NS 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

UPC - Facultad de Ingeniería Industrial


Algoritmos – Guía de ejercicios Unidad 3 Página 7

5. 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.
Números Fibonacci:
1, 1, 2, 3, 5, 8, 13, 21, 34 …
Solución Lista de variables:
Inicio 1. N, cantidad de términos de la serie de
Entero I(200), P(200) Fibonacci
Repetir 2. I( ), vector de impares
Leer: N 3. P( ), vector de pares
Hasta N >= 3 4. ci, contador de términos impares del
A = 1: B = 1: S = 2: cp = 0: ci = 2 vector
I(1) = 1 5. cp, contador de términos pares del
I(2) = 1 vector
Mostrar I(1) & ", " & I(2) 6. Variables para generar los términos de
Para x = 3 hasta N la serie: A, B, C
C=A+B 7. x, Contador general
Si C mod 2 = 0 entonces
cp = cp + 1
P(cp) = C
Sino
ci = ci + 1
I(ci) = C
Fin-Si
A = B: B = C
Siguiente x
Para x = 1 hasta cp
Mostrar P(x)
Siguiente x
Para x = 1 hasta ci
Mostrar I(x)
Siguiente x

6. Cree un programa en VBA que permita ingresar n números entre 1 y 50, y luego, los muestre en orden
ascendente. Utilice la siguiente interfaz gráfica:

UPC - Facultad de Ingeniería Industrial


Algoritmos – Guía de ejercicios Unidad 3 Página 8

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

8. 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 programa en VBA que permita escalonar
la matriz ampliada de un sistema de ecuaciones. Por ejemplo:

Solución

UPC - Facultad de Ingeniería Industrial


Algoritmos – Guía de ejercicios Unidad 3 Página 9

Private Sub EscalonarMatriz_click()


Dim M(1 To 20, 1 To 21) As Single, factor As Single, valor As Single
Dim nf As Integer, nc As Integer, i As Integer, j As Integer, k As Integer
'Ingreso de los elementos de la matriz
Do
nf = Val(InputBox("Ingrese el número de filas de la matriz"))
Loop Until nf > 0 And nf <= 20
Do
nc = Val(InputBox("Ingrese el número de columnas de la matriz"))
Loop Until nf > 0 And nf <= 21
For i = 1 To nf
For j = 1 To nc
M(i, j) = Val(InputBox("fila " & i & ", columna " & j))
Cells(i, j) = M(i, j)
Next j
Next i
'Proceso de escalonamiento de la matriz
For i = 1 To nf - 1
For j = i + 1 To nf
factor = -M(j, i) / M(i, i)
For k = 1 To nc
M(j, k) = factor * M(i, k) + M(j, k)
Next k
Next j
Next i
'Mostrar la matriz escalonada
For i = 1 To nf
For j = 1 To nc
Cells(nf + 5 + i, j) = M(i, j)
Next j
Next i
End Sub

9. 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 algoritmos mostrará el vector C, el promedio de los valores almacenados en C y
los elementos de C que son mayores que el promedio.
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

UPC - Facultad de Ingeniería Industrial


Algoritmos – Guía de ejercicios Unidad 3 Página 10

10. 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 Jugo Zumo Concentrado (% en volumen)


1 15%
2 25%
3 35%

Desarrolle un programa en VBA que solicite un entero N (un número de días, 0<N<=30). Luego, el programa
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.
 Asigne un botón para la lectura y un botón para cada uno de los datos solicitados

Solución
Private Sub Cmd_Jugos_Click()
Dim Produccion(3, 7) As Single
Dim i As Integer, j As Integer, dias As Integer
Dim suma1 As Single, suma2 As Single, suma3 As Single
For i = 1 To 3
For j = 1 To 7
Produccion(i, j) = 0
Next j
Next i
Do
dias = Val(InputBox("cuantos días va a ingresar"))
If dias < 0 Or dias > 7 Then
MsgBox "Sólo puede ingresar valores entre 0 y 7"
End If
Loop Until dias > 0 And dias <= 7
' Ingreso de datos fila por fila
For i = 1 To 3
For j = 1 To dias
Do
Produccion(i, j) = Val(InputBox("Ingresa la producción de jugo " & i & " para el dia " & j))
Loop Until Produccion(i, j) >= 0
Next j
Next i
'Encabezado de días
For i = 1 To dias
Select Case i
Case 1
dia = "Lunes"
Cells(1, 1 + i) = dia
Case 2
dia = "Martes"
Cells(1, 1 + i) = dia
Case 3
dia = "Miércoles"
Cells(1, 1 + i) = dia
Case 4
dia = "Jueves"

UPC - Facultad de Ingeniería Industrial


Algoritmos – Guía de ejercicios Unidad 3 Página 11

Cells(1, 1 + i) = dia
Case 5
dia = "Viernes"
Cells(1, 1 + i) = dia
Case 6
dia = "Sábado"
Cells(1, 1 + i) = dia
Case 7
dia = "Domingo"
Cells(1, 1 + i) = dia
End Select
Next i
'Encabezado de tipos de jugo
For i = 1 To 3
Cells(i + 1, 1) = "Tipo " & i
Next i
'Impresión de la matriz
For i = 1 To 3
For j = 1 To dias
Cells(i + 1, j + 1) = Produccion(i, j)
Next j, i
Next i
'Suma de cada una de la filas
For i = 1 To dias
suma1 = suma1 + Produccion(1, i)
suma2 = suma2 + Produccion(2, i)
suma3 = suma3 + Produccion(3, i)
Next i
Cells(6, 1) = "El porcentaje del tipo 1 es " & Format(Round(suma1 * 100 / (suma1 + suma2 + suma3), 2), "##.00") & " %"
Cells(7, 1) = "El porcentaje del tipo 2 es " & Format(Round(suma2 * 100 / (suma1 + suma2 + suma3), 2), "##.00") & " %"
Cells(8, 1) = "El porcentaje del tipo 3 es " & Format(Round(suma3 * 100 / (suma1 + suma2 + suma3), 2), "##.00") & " %"
'Cantidad de zumo
Cells(9, 1) = "La cantidad de zumo para el jugo tipo 1 es " & 0.15 * suma1 & " litros"
Cells(10, 1) = "La cantidad de zumo para el jugo tipo 2 es " & 0.25 * suma2 & " litros"
Cells(11, 1) = "La cantidad de zumo para el jugo tipo 3 es " & 0.35 * suma3 & " litros"
'Cantidad en kg de fruta empleados
Cells(12, 1) = "Se necesitan " & Round(0.15 * suma1 * 10 / 7, 2) & " kg de fruta para el jugo tipo 1"
Cells(13, 1) = "Se necesitan " & Round(0.25 * suma2 * 10 / 7, 2) & " kg de fruta para el jugo tipo 2"
Cells(14, 1) = "Se necesitan " & Round(0.35 * suma3 * 10 / 7, 2) & " kg de fruta para el jugo tipo 3"
End Sub

11. 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:
Valor de R __________
Valor de X __________
Ahora, implemente el algoritmo en VBA.
Inicio
Entero V(6)
R=0
X=0
Para C = 2 hasta 6 Paso 2
Si V(C) <> 0 Entonces R = R + V(C) \ 2
X=X+1
Siguiente C
Fin

UPC - Facultad de Ingeniería Industrial


Algoritmos – Guía de ejercicios Unidad 3 Página 12

Ejercicios Propuestos
1. Elabore un programa en VBA 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.

2. 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.

3. 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.

4. 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.

5. En la siguiente relación de Excel, se tienen los nombres de las alumnas que nacieron en cada año desde
1998 hasta el año 2002.

Se pide elaborar un programa en VBA con los listados desde 1998 al 2002; de tal modo que, en cada lista por
año, se muestren los nombres de las alumnas que han nacido hasta el año del listado. Observe el siguiente
resultado del ejemplo anterior.

Importante: Considere que las imágenes anteriores solo son referenciales y usted podría considerar otros
nombres.

6. Elabore 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. Finalmente, cree el programa en VBA.

UPC - Facultad de Ingeniería Industrial


Algoritmos – Guía de ejercicios Unidad 3 Página 13

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

8. Elabore un diagrama de flujo y un diagrama NS 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.

9. Elabore un diagrama de flujo y un programa en VBA 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.

10. 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 programa en VBA que permita:

 Botón1: Ingresar los montos de venta de cada uno de los 3 tipos de combustible, en cada uno de los
7 días de las 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.
 Botón 2: Identificar el monto de venta más alto, indicando a qué tipo de combustible y, a que día de
la semana corresponde.
 Botón 3: Mostrar el listado de las ventas totales por día en orden descendente indicando día de la
semana (1-7) y monto total.

Se deja a su consideración colocar los nombres más adecuados a los 3 botones.

11. Diseñe un diagrama de flujo y el programa en VBA 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.

12. Cree un programa en VBA 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.

13. 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.

14. 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?

UPC - Facultad de Ingeniería Industrial


Algoritmos – Guía de ejercicios Unidad 3 Página 14

Finalizado el ingreso de datos deberá mostrar la siguiente estadística:

 Cantidad producida por cada una de las máquinas


 Máquina de menor producción
 Promedio de unidades producida por máquina.

15. Elabore un programa en VBA 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.

16. Escriba un algoritmo (diagrama NS) 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. Finalmente, proponga el programa en VBA.

17. Elabore un programa en VBA 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.

18. 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. Además, implemente un programa en
VBA que muestre dicho listado en orden descendente.

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

20. Elabore un programa en VBA que permita ingresar las ventas realizadas por una cadena de
supermercados en sus T tiendas para cada una de las L líneas de productos comercializados. Luego,
realice lo siguiente:

 Muestre cuál es el total vendido por tienda


 Muestre cuál es el total vendido por línea de producto
 ¿Cuál fue la tienda y la línea correspondiente a la mayor venta?

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

UPC - Facultad de Ingeniería Industrial


Algoritmos – Guía de ejercicios Unidad 3 Página 15

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


Inicio
Entero V(6)
X=3
C= 0
S=0
Repetir
C=C+2
S = S + V(C)
Hasta S > X
Fin
Valor de C __________
Valor de S __________

Finalmente, convierta el pseudocódigo en diagrama de flujo y también en NS y elabore el programa en


VBA.

22. Para validar el número de una tarjeta de crédito o débito, se utiliza el Algoritmo “Mod 10”. Elabore un
programa en VBA que permita a un usuario validar el número de una tarjeta.

Algoritmo “Mod 10”


Por ejemplo, tome el número siguiente:
4 5 1 6 5 2 9 5 8 1 5 6 0
Para verificar si un número de tarjeta de crédito es falso, se debe realizar los siguientes pasos:

Paso 1
El primer paso es tomar todos los números en posiciones impares y multiplicarlos por 2.
4 5 1 6 5 2 9 5 8 1 5 6 0
8 2 10 18 16 10 0

Paso 2
Los números que se duplicaron que exceden a 9, es decir tienen dos dígitos deben ser reducidos a un dígito
sumando ambos, por ejemplo, si el resultado es 10, se debe sumar 1 + 0, si el resultado es 18 debe sumarse
1 + 8 y colocarse el resultado en la casilla de la siguiente manera:
4 5 1 6 5 2 9 5 8 1 5 6 0
8 2 1 9 7 1 0

Paso 3
Ahora, se regresa a los números que no se duplicaron a las casillas originales mezclándolos con los que sí se
duplicaron de la siguiente forma:
4 1 5 9 8 5 0
8 5 2 6 1 2 9 5 7 1 1 6 0

Paso 4
El paso 3 nos da un nuevo número del cual se deben sumar todos los dígitos:
8 + 5 + 2 + 6 + 1 + 2 + 9 + 5 + 7 + 1 + 1 + 6 + 0 = 52

Paso 5
Si el resultado de la sumatoria es divisible por 10, la tarjeta es válida.

UPC - Facultad de Ingeniería Industrial

Você também pode gostar