Вы находитесь на странице: 1из 82

Algoritmos (IN220)

Unidad 3: Estructura de datos


(Vectores y Matrices)
Prof. Bethy De la Cerna G.
Copyright © 2019
Frase del día

“Tanto si crees que puedes hacerlo, como


si no, en los dos casos tienes razón”

Henry Ford (1863-1947), - estadounidense,


(1896)Primer vehículo, cuadriciclo ideado por Henry Ford. fundador de Ford Motor Company, padre de
las cadenas de producción (producción en
masa).

Copyright © 2019 - BDC 2


Agenda

 Introducción
 Estructuras unidimensionales - Vectores
 Estructuras bidimensionales - Matrices
 Ejemplos y aplicaciones
 Ejercicios

Copyright © 2019 - BDC 3


Introducción: Arreglos o Estructuras de datos

 Para manejar conjuntos de datos, es


necesario agrupar datos del mismo tipo bajo
un solo nombre de variable.
 Estas estructuras de datos se denominan
arreglos (arrays).
 Los arreglos pueden tener muchas Arreglo unidimensional Arreglo bidimensional
dimensiones, los más comunes son de una
dimensión (vectores) y de dos dimensiones
(matrices).
 Cada elemento es identificado por la
posición (índice) que ocupa dentro del
arreglo.
Arreglo multidimensional
Copyright © 2019 - BDC 4
Arreglo unidimensional - Vector
Un vector es un arreglo que agrupa un conjunto de elementos del mismo tipo
bajo un mismo nombre. Cada elemento es identificado por su ubicación dentro
del arreglo.
Ejemplo: Dim V(N) As Tipo_dato
Donde:
V, es el nombre del vector
N, es un número entero que indica la cantidad máxima de elementos del vector
El índice empieza en cero por defecto (N+1 elementos)
Dato0 Dato1 Dato2 Dato3 Dato4 DatoN-1 DatoN

Índice
V(0) V(2) V(N-1)
V(1) V(3) Copyright © 2019 - BDC
V(N) 5
Declaración de un vector
Si desea ingresar el nombre de hasta 7 personas
Dim A( 7 ) As String
Donde:
A, es el nombre del vector
7, es el valor que indica la cantidad máxima de elementos del
vector, en este caso 8 ya que incluye la posición cero.

String, (cadena) el tipo de dato de los elementos del vector.

Juan Carla Elsa Luis Ana

A(0) A(1) A(2) A(3) A(4) A(5) A(6) A(7)


6
Copyright © 2019 - BDC
Ejemplo 1: Notas

Ingrese el nombre y las notas de 5 Listado de alumnos


alumnos en 2 vectores y realice lo # Nombre Nota
siguiente:
1 Luis 15
• Calcule el promedio de notas.
• Indique cuántos aprobaron. 2 Ana 18
3 Carlos 7
4 Roberto 18
5 Eva 16

Copyright © 2019 - BDC 7


Declaración de variables

ALUMNOS Luis Ana Carlos Roberto Eva

Dim Alumno(1 to 5) as String

1 2 3 4 5

NOTAS 15 18 7 18 16

Dim Nota(1 to 5) as Integer

1 2 3 4 5
Copyright © 2019 - BDC 8
¿Cómo acceder a los elementos de un vector?

• Ingresar el nombre del alumno 1:


Alumno(1) = Inputbox(“Nombre: “)

• Mostrar el nombre del alumno 4:


MsgBox “Nombre: “ & Alumno(4)

• Ingresar la nota del alumno 1:


Nota(1) = Val(InputBox(“Nota: “))
• Mostrar la nota del alumno 4:
MsgBox Nota(4)

• Evalúe si el alumno 5 aprobó:


If Nota(5) >=13 Then MsgBox “Aprobó”

• Calcule el promedio de notas:


Copyright © 2019 - BDC P = ((Nota(1)+Nota(2)+Nota(3)+Nota(4)+Nota(5))/5
9
Solución

Tabla de variables
Variable Descripción Tipo de dato Uso Validación
Alumno(1 a 5) Nombres Texto Entrada <>””
Nota(1 a 5) Notas Entero Entrada [0, 20]
c Contador Entero Intermedia
S Suma de notas Entero Intermedia
Ap Cant. aprobados Entero Salida
Prom Real Salida

Copyright © 2019 - BDC 10


Solución Diagrama NS
Inicio
Pseudocódigo Texto: Alumno(1 a 5)
Entero: Nota(1 a 5) , c, S, Ap
S = 0: Ap = 0 Real: Prom
Para c = 1 hasta 5 S = 0 : Ap = 0
Repetir Para c = 1 hasta 5
Ingresar Alumno(c) Repetir
Hasta Alumno(c) <> “” Leer Alumno(c )
Repetir Hasta Alumno(c ) < > “”
Ingresar Nota(c) Repetir
Leer Nota(c )
Hasta Nota(c) >= 0 y Nota(c ) <=20
Hasta Nota(c) >= 0 y Nota(c) <=20
S = S + Nota(c)
S = S + Nota( c)
Si Nota(c) >=13 Entonces Ap = Ap + 1 Nota(c) >=13
Si
Siguiente c Ap = Ap + 1 No
Prom = S/5 : Mostrar Prom Siguiente c
Mostrar “Aprobados: “ & Ap Prom = S / 5 : Mostrar Prom, Ap
Fin algoritmo 11
Copyright © 2019 - BDC
Solución
Inicio

S = 0 : Ap = 0
1

Para C = 1 hasta 5 Prom = S / N


S = S + Nota(c)
2
Alumno(c) Prom,
Si
Ap Nota( c) >=13 Ap = Ap + 1
No Alumno(c ) No
< > “” Fin
Si 2 Siguiente C
Nota(c)

No Si
Nota(c ) >= 0 Y
1
Nota(c)<=20 Copyright © 2018 - BDC 12

Copyright © 2019 - BDC


Solución
Macro VBA

Copyright © 2019 - BDC 13


Ejemplo 2: Evaluación de edades
 Ingrese el nombre y la edad de N personas. Nombre ( ) Edad ( )

 Muestre los datos ingresados en celdas Excel.


 Finalizado el ingreso de datos muestre el Elementos de posición #3
1 Juan 34

promedio de edades.
Nombre(3) 2 Ana 8
Tarea: Incorpore las instrucciones necesarias para
que también realice lo siguiente: 3 Luís 17
o Calcule qué % de personas tienen una edad superior
4
al promedio. Rosa 12
o El nombre de las personas con edades superiores al
Edad(3) 5 Eva 71
promedio
o Nombre de las personas que tienen la edad máxima
6 Andrés 15

Algoritmos
Copyright
– Vectores
© 2019 y- Matrices
BDC 14
Solución

Tabla de variables
Variable Descripción Tipo de dato Uso Validación
Alumno(1 a 50) Nombres Texto Entrada <>””
Edad(1 a 50) Edades Entero Entrada >0
N Cant. de alumnos Entero Intermedia
c Contador de alumnos Entero Intermedia
S Suma de edades Entero Intermedia
Promedio Real Salida

Copyright © 2019 - BDC 15


Solución 1

Inicio c = 1, N

N Nombre(c) Promedio = S/N

No No Nombre(c) Prom
N>0
<>””
Si Si
S=0 Fin
Edad(c)

1 No
Edad(c)> 0

Si
S = S + Edad(c)

Copyright © 2019 - BDC


Solución Diagrama N-S Inicio
Texto: Nombre(1 a 50)
Entero: Edad(1 a 50) , N, c, S
Pseudocódigo Real: Promedio
Repetir
Repetir
Ingresar N
Leer N
Hasta N > 0
S=0 Hasta N > 0
Para c = 1 hasta N S=0
Repetir Para c = 1 hasta N
Ingresar Nombre(c) Repetir
Hasta Nombre(c) <> “” Leer Nombre(c )
Repetir Hasta Nombre(c ) < > “”
Ingresar Edad(c) Repetir
Hasta Edad(c) > 0 Leer Edad(c )
S = S + Edad(c)
Hasta Edad(c) > 0
Siguiente c
S = S + Edad( c)
Promedio = S/N
Mostrar “Promedio: “ & Prom Promedio = S/N
Mostrar “Promedio: “ & Promedio
Copyright © 2019 - BDC
17 Fin algoritmo
Solución
Macro VBA

Copyright © 2019 - BDC 18


Ejemplo 3: Operaciones con vectores

 Elabore un algoritmo que permita ingresar los elementos de


2 vectores y realice las siguientes operaciones:
o Suma de los vectores
o Diferencia de los vectores
o Producto escalar

Nota: Debe verificar que ambos vectores tengan la misma cantidad de elementos

Algoritmos
Copyright
– Vectores
© 2019 y- Matrices
BDC 19
Solución

Tabla de variables
Variable Descripción Tipo de dato Uso Validación
NA Nº Elementos del Entero Entrada > 0 , = NB
vector A
NB Nº Elementos del Entero Entrada > 0, = NA
vector B
A(1 a 50) Vector A Real Entrada
B(1 a 50) Vector B Real Entrada
c Contador de Entero Intermedia
elementos
P Producto escalar Real Salida

Copyright © 2019 - BDC 20


Solución
1
Inicio

Para c = 1 hasta NA P
NA, NB

A(c)
No
NA = NB Y Fin
NA > 0 B(c)
Si
P=0 A(c) + B(c)
A(c) - B(c)
1

P = P + A(c) * B( c )

Siguiente c
Copyright © 2019 - BDC 21
Solución Diagrama NS
Inicio
Pseudocódigo Entero: NA, NB, c
Repetir Real: A(1 a 50), B(1 a 50) , P
Ingresar NA, NB Repetir
Ingresar: NA, NB
Hasta NA = NB y NA > 0 Hasta NA=NB y NA > 0
P =0 P=0
Para c = 1 a NA Para c = 1 hasta NA
Ingresar A(c) Leer A( c )
Ingresar B(c) Leer B( c )
Mostrar A( c ) + B( c )
Mostrar A(c) + B(c)
Mostrar A( c ) - B( c )
Mostrar A(c) - B(c) P = P + A( c ) * B( c )
P = P + A(c) * B(c) Siguiente c
Siguiente c
Mostrar “Producto escalar = “ & P
Mostrar P
Fin algoritmo
22
Copyright © 2018©- 2019
Copyright BDC - BDC
Solución
Macro VBA

33

Copyright © 2019 - BDC 23


Ejemplo 4: Vectores Par - Impar

 Elabore un algoritmo que permita ingresar los elementos de


un vector de N elementos enteros.
 A continuación realice lo siguiente:
 Guarde en el vector PAR( ) todos los elementos pares y en el
vector IMPAR() todos los impares
 Indique cuántos elementos pares y cuántos elementos impares
tienen los vectores

Algoritmos
Copyright
– Vectores
© 2019 y- Matrices
BDC 24
Diagrama NS
Solución Inicio
Repetir Entero: NE, V(20), PAR(20), IMPAR(20), c, I, P
Ingresar NE
Pseudocódigo Repetir
Hasta NE > 0 Ingresar: NE
Para c = 1 hasta NE Hasta NE > 0 y NE <=20
Ingresar V(c) Para c = 1 hasta NE
Siguiente c Leer V( c )
Siguiente c
P=0 : I=0 P=0: I=0
Para c = 1 hasta NE Para c = 1 hasta NE
Si V(c) Resto 2 = 0 Entonces V( c ) Resto 2 = 0
Si No
P = P + 1 : PAR(P) = V( c)
Sino P =P+1 I=I+1
I = I + 1: IMPAR( I ) = V( c) PAR(P) =V(c) IMPAR( I ) = V(c)
Fin Si Siguiente c
Siguiente c Para c = 1 hasta P
Mostrar PAR( c )
Para c = 1 hasta I
Siguiente c
Mostrar IMPAR(c)
Mostrar “PAR( ) “& “ tiene “ & P &“ elementos”
Siguiente c
Para c = 1 hasta I
Mostrar ”El vector IMPAR tiene “ & I & “ elementos” Mostrar IMPAR( c )
Para c = 1 hasta P Siguiente c
Mostrar PAR(c)
Mostrar “IMPAR( )“& “tiene “ & I & “ elementos”
Siguiente c
Copyright ©Copyright
Mostrar ”El vector PAR tiene “ & P & “ elementos”
© 2018 - BDC
2019 - BDC Fin algoritmo 25
Solución
Macro VBA

Copyright © 2019 - BDC 26


Solución Macro VBA

Copyright © 2019 - BDC 27


Ejemplo 5: Frecuencia de notas

 Elabore un algoritmo que permita ingresar N notas, las notas pueden


ser: 0, 1, 2, 3, ….99, 100.
 Finalizado el ingreso de datos muestre lo siguiente
o Frecuencia de notas, es decir cuántas notas 0, 1, 2, …100 se registraron
o La nota promedio
o La nota más frecuente (es decir la moda)
o % de alumnos aprobados

Nota: Se aprueba con 60

Algoritmos
Copyright
– Vectores
© 2019 y- Matrices
BDC 28
Solución
Macro VBA

Copyright © 2019 - BDC 29


Solución Macro VBA

Copyright © 2019 - BDC 30


Ordenamiento de datos en un vector

Pasos a seguir:
• Los datos a ordenar deben ser
almacenados en un Vector
• Aplicar el algoritmo de
ordenamiento (por ejemplo:
bubble sort o burbuja)
• Mostrar los datos ordenados

Algoritmos – Vectores
Copyright
y Matrices
© 2019 - BDC 31
Algoritmo de la burbuja (Bubble Sort)

Ordenamiento ascendente de los elementos del vector V ( ) de N


elementos.
Para x = 1 hasta N – 1
Para y = x + 1 hasta N
Si V ( x ) > V ( y ) Entonces
Temp = V ( x ) Intercambio de
V ( x ) = V ( y ) valores
V ( y ) = Temp
Fin Si
Siguiente y
Siguiente x
Algoritmos
Copyright
– Vectores
© 2019 y- Matrices
BDC 32 32
Ejemplo 6: Ordenamiento
Ingrese las edades de N personas y ordénelas en orden descendente.
Solución:

Pasos 1 2 3
Aplique el método de
Ingrese las edades en un vector ordenamiento de la burbuja Muestre el vector ordenado

Para x = 1 hasta N - 1 Para x = 1 hasta N


Repetir Mostrar Edad(x)
Ingresar N Para y = x+1 hasta N
Si Edad(x) < Edad(y) Entonces Siguiente x
Hasta N > 0
Para x = 1 hasta N Temp = Edad(x)
Repetir Edad(x) = Edad(y)
Ingresar Edad(x) Edad(y) = Temp
Hasta Edad(x) > 0 y Edad(x) < =120 Fin Si
Siguiente x Siguiente y
Siguiente x
Copyright © 2019 - BDC 33
Solución Macro VBA

Copyright © 2019 - BDC 34


Arreglo bidimensional - Matriz
Una matriz es un arreglo de dos dimensiones que agrupa
un conjunto de elementos del mismo tipo bajo un mismo
nombre. Cada elemento es identificado por su ubicación
1 2 3 4
en el arreglo.
Ejemplo: 1

Dim M ( F, C ) As Tipo_dato 2
Donde:
3
M, es el nombre de la matriz
F, es un número entero que indica la cantidad
máxima de filas de la matriz (empieza en la fila 0)
C, es un número entero que indica la cantidad máxima de columnas
de la matriz (empieza en la columna 0)
Copyright © 2019 - BDC 35
Declaración de una matriz

Declare una matriz que permita almacenar las ventas efectuadas en


cada una de las T tiendas de un supermercado, para cada una de las L
líneas de productos que comercializa.
T

Dim Ventas (1 To 30, 1 To 20) As Single

Nota: Se debe asumir una cantidad máxima de tiendas,


así como de las líneas de producto que se comercializa.
En el ejemplo 30 (tiendas) y 20 (líneas de producto).

L
Copyright © 2019 - BDC 36
Ejemplo 7: Suma de elementos de una matriz
Repetir
Pseudocódigo
Ingresar NF, NC
Hasta NF > 0 y NC > 0
Ingrese los elementos de una
Para F = 1 hasta NF
matriz y determine cuánto
Para C = 1 hasta NC
suman sus elementos.
Ingresar M(F,C)
Siguiente C
Mostrar F
S=0
Para F = 1 hasta NF
Para C = 1 hasta NC
S = S +M(F,C)
Siguiente C
Siguiente F
Copyright © 2019 - BDC 37
Mostrar S
Solución

Tabla de variables
Variable Descripción Tipo de dato Uso Validación
NF Nº de filas de la matriz Real Entrada [1, 10]
NC Nº de columnas de la Real Entrada [1, 10]
matriz
M(10,10) Matriz M Real Entrada
S Suma de elementos de la Real Salida
matriz
F Contador de filas Entero Intermedia
C Contador de columnas Real Intermedia

Copyright © 2019 - BDC 38


Solución
Diagrama N-S
Inicio 1
Entero: NF, NC, F, C, S=0
Real: M(10,10), S
Para F = 1 hasta NF
Repetir
Ingresar: NF, NC Para C = 1 hasta NC
Hasta NF > 0 y NC > 0
Para F = 1 hasta NF S = S + M( F,C )
Para C = 1 hasta NC
Siguiente C
Leer M(F,C )
Siguiente F
Siguiente C
Mostrar S
Siguiente F
1 Fin algoritmo
39

Copyright © 2019 - BDC


Solución
1
Inicio

S=0
NF, NC

Para F = 1 hasta NF S
No
NF > 0 Y NC > 0
Para C = 1 hasta NC
Si
1 Fin
Para F = 1 hasta NF

S = S + M ( F, C )
Para C = 1 hasta NC

M(F,C) Siguiente C

Siguiente C Siguiente F

Siguiente F Copyright © 2019 - BDC


Solución
Macro VBA

NC

Copyright © 2019 - BDC 41


Ejemplo 8: Matriz identidad

 Ingrese los elementos de una matriz y determine si se trata o no de


una matriz identidad.

Copyright © 2019 - BDC 42


Solución
Repetir
Ingresar NF, NC
Pseudocódigo
Hasta NF = NC y NF > 0
Para F = 1 hasta NF
Para C = 1 hasta NC
Ingresar M(F,C)
Siguiente C
Mostrar F
Identidad = Verdad
Para F = 1 hasta NF
Para C = 1 hasta NF
Si (F = C y M(F,C) < > 1) o (F <> C y M(F,C) <> 0) Entonces Identidad = Falso
Siguiente C
Siguiente F
Si Identidad = Verdad Entonces Mostrar “Es identidad” Sino Mostrar “No es identidad”
Copyright © 2019 - BDC 43
Solución 1 Diagrama de flujo
Inicio

Identidad = Verdad
NF, NC

Para F = 1 hasta NF Identidad = Verdad


No No
NF = NC Y NF > 0
Si
Para C = 1 hasta NF
Si
“Es “No es
Para F = 1 hasta NF 1 identidad” identidad”
(F = C Y M(F,C) < > 1) O
Para C = 1 hasta NC (F <> C Y M(F,C) <> 0)
No
Si
M(F,C) Fin
Identidad = Falso

Siguiente C
Siguiente C

Siguiente F
Siguiente F 44
Copyright © 2019 - BDC
Solución
Diagrama N-S 1
Identidad = Verdad
Inicio Para F = 1 hasta NF
Entero: NF, NC, F, C, M(10,10) Para C = 1 hasta NF
Lógico: Identidad (F = C y M(F,C) < > 1) o
Repetir (F <> C y M(F,C) <> 0)
Ingresar: NF, NC Si No
Hasta NF=NC y NF > 0
Identidad = Falso
Para F = 1 hasta NF
Para C = 1 hasta NF Siguiente C
Siguiente F
Leer M(F,C )
Identidad = Verdad
Siguiente C Si No
Mostrar “Es Mostrar “No es
Siguiente F
identidad” identidad”
1 Fin algoritmo
45
Copyright © 2019 - BDC
Solución
Macro VBA

Copyright © 2019 - BDC 46


Ejemplo 9: Matriz – Reemplazo valores
Elabore un algoritmo que ingrese los elementos de una matriz y la
muestre.
A continuación reemplace todos los elementos impares de las
columnas pares por ceros.

Copyright © 2019 - BDC 47


Solución Pseudocódigo
Repetir
Ingresar NF, NC
Para F = 1 hasta NF
Hasta NF > 0 y NC > 0
Para C = 1 hasta NC
Para F = 1 hasta NF
Mostrar M(F,C)
Para C = 1 hasta NC
Siguiente C
Leer M(F,C)
Siguiente F
Siguiente C
Siguiente
Para F = 1 hasta NF
Para C = 2 hasta NC paso 2
Si M(F,C) Resto 2 <> 0 Entonces
M(F,C) = 0
Fin Si
Siguiente C
48
Siguiente F Copyright © 2019 - BDC
Ejemplo 10: Teatro

 Elabore un algoritmo que permita vender las


entradas a un teatro de F filas y A asientos
por fila.
 La venta termina cuando no hay más clientes
por atender o se agotaron todas las entradas.
 Finalizada las ventas indique qué % del total
de entradas se vendieron
 ¿Cuál es la fila más vendida?

Copyright © 2019 - BDC 49


Solución Pseudocódigo

Repetir Repetir Porc = NE/(NF*NA) * 100


Ingresar NF, NA Leer Asiento Mostrar “% entradas vendidas: “ & Porc
Hasta NF > 0 y NA > 0 Hasta Asiento >=1 y Asiento <=NA Max = 0
Para F = 1 hasta NF Si M(F,A) = 0 Entonces Para F = 1 hasta NF
Para A = 1 hasta NA M(F,A) = 1) : NE = NE +1 S=0
M(F,A) = 0 Sino Para A = 1 hasta NA
Siguiente A Mostrar “Asiento ocupado, elija otro” S = S + M(F,A)
Siguiente F Fin Si Siguiente A
NE = 0 Mostrar “¿Hay más clientes?” Si S > Max Entonces
Repetir Hacer Max = S : FilaMas = F
Repetir Leer Rpta Fin Si
Leer Fila Hasta Rpta = “Si” o Rpta = “No” Siguiente F
Hasta (Fila>=1 y Fila <=NF) Hasta NE = NF * NA o Rpta = “No” Mostrar FilaMas

Copyright © 2019 - BDC 50


2018-2 Práctica Calificada Nº2

Ingrese el nombre de los clientes de un gimnasio en


un vector.
No se sabe exactamente cuántos clientes son, por lo
que el ingreso finaliza al contestar No a la pregunta
¿Hay más clientes?
Finalizado el ingreso de los nombres al vector,
solicite para cada uno de los clientes, su peso (en
kilos) y su talla (en metros), y almacene en un
vector el IMC[1] correspondiente.

[1] IMC, índice de masa corporal, se calcula así: IMC= Peso/Talla 2


Copyright © 2019 - BDC 51
Solución
Pseudocódigo
N=0 Para X = 1 hasta N
Repetir Repetir
N=N+1 Leer Peso
Repetir Hasta Peso >0
Leer Cli(N) Repetir
Hasta Cli(N) <> “” Leer Talla
Mostrar “¿Hay más datos?” Hasta Talla > 0
Repetir Peso(X) = Peso / Talla ^2
Leer Rpta Siguiente
Hasta Rpta=”Si” o Rpta=”No” Para X = 1 hasta N
Hasta Rpta =”No” Mostrar IMC(X)
Siguiente X

Copyright © 2019 - BDC 52


2018-2 Práctica Calificada Nº2

El dueño de un hotel de P pisos y C cuartos en cada uno de los pisos,


requiere llevar un mejor control mensual del número de noches que se
asignó cada uno de los cuartos.

Se sabe que se registrarán N clientes. Para cada uno de ellos se ingresan:


Número de piso, Número de cuarto de dicho piso y el Número de noches
que se quedará el cliente.
El número de noches debe irse acumulando.

Finalizado el ingreso de datos se requiere saber lo siguiente:


• Cuál es el monto total recaudado en cada uno de los pisos, almacénelo
en un vector.
• Ingrese un Piso, e indique qué cuarto fue el que tuvo la mayor cantidad
de noches de alquiler.

Ejemplo: Si el piso fuera el 3, la respuesta sería 19


Elabore el pseudocódigo que resuelva el problema planteado.
Copyright © 2019 - BDC 53
Solución 'Suma por piso
Para y = 1 To P
Pseudocódigo V(y) = 0
Para x = 1 To C
Hacer
V(y) = V(y) + Hotel(x, y)
Leer: N, P, C
Siguiente x
Hasta N > 0 y P >0 Y P<=10 y C >0 Y C<=10
Mostrar V(y)
Para x=1 hasta N
Siguiente y
Hacer
‘Máximo
Leer Piso, Cuarto, Noches
Hacer
Hasta Piso>=1 y Piso <=P Y Cuarto>=1 Y Cuarto <=C Y Noches >0
Leer Piso
Hotel(Cuarto, Piso) = Hotel(Cuarto, Piso) + Noches
hasta Piso > 0 Y Piso <= P
Siguiente x
Max = 0
Para y = 1 hasta C
Si Hotel(y, Piso) >= Max Entonces Max = Hotel(y, Piso): Mayor = y
Siguiente y
Mostrar "Cuarto con más noches del piso: " & Piso & " con " & Mayor

Copyright © 2019 - BDC 54


2018-2 Práctica Calificada Nº2

Elabore un algoritmo que determine si un número entero positivo es o no capicúa, para lo


que debe hacer lo siguiente:
 Descomponga el número en sus dígitos, los que almacenará en un vector.
 A continuación, empleando los dígitos registrados en el vector, determine si el número es
o no capicúa
Ejemplos:

Si se ingresa: 35253

3 5 2 5 3 La respuesta es: El número es capicúa

Si se ingresa: 8428

8 2 4 8 La respuesta es: El número no es capicúa


55
Copyright © 2019 - BDC
Solución Repetir
Leer: N
Si N < = 0 Entonces Mostrar “Error”
Hasta N > 0
X=0
Repetir
X=X+1
V(X) = N Residuo 10
N = N Cociente 10
Pseudocódigo Hasta N = 0
Y=X
Capicua = Verdadero
Para C = 1 Hasta X Cociente 2
Si V(C) < > V(Y) Entonces Capicua = Falso
Y=Y-1
Siguiente C
Si Capicua Entonces Mostrar “Si es capicúa”Sino Mostrar “No es capicúa”
Copyright © 2019 - BDC 56
Examen Final 2016-2
Dado el siguiente
algoritmo, muestre los
valores de las variables
R, I, J y K de la tabla.

Solución:

Copyright © 2019 - BDC 57


2018-2 Examen Final
Elabore el programa VBA que permita gestionar las compras de una empresa, como por
ejemplo la empresa Lácteos del Perú, que desea adquirir algunos equipos para su planta
industrial.
Debe realizar lo siguiente:
 Ingrese en un vector el nombre del equipo a adquirir,
y en una matriz los precios ofertados por 5
proveedores, tal como se muestra en el ejemplo
gráfico mostrado.
El ingreso de datos finaliza cuando se responde No a
la pregunta ¿Hay más equipos?
• A continuación almacene en otro vector el menor
precio ofrecido por los proveedores de cada uno de
los equipos a adquirir.
• Muestre la información ingresada y calculada en las
celdas de la Hoja Excel, de acuerdo al diseño
proporcionado. Copyright © 2019 - BDC 58
Solución
Pseudocódigo
Private Sub CommandButton1_Click()
Dim Equipo(1 To 50) As String, Prov(1 To 50, 1 To 5) As Single
Dim N As Integer, x As Single, y As Single, Rpta As String, Min(1 To 50) As Single 'Determinar el menor precio por equipo
'Ingresar datos For x = 1 To N
N=0 Min(x) = Prov(x,1)
Do For y = 2 To 5
N = N + 1: Cells(3 + N, 1) = N If Prov(x, y) <= Min(x) Then Min(x) = Prov(x, y)
Do Next y
Equipo(N) = InputBox("Nombre de equipo: " & N) Next x
Loop Until Equipo(N) <> "" 'Mostrar vector del menor precio por equipo
Cells(3 + N, 2) = Equipo(N) For x = 1 To N
For y = 1 To 5 Cells(x + 3, "H") = Min(x)
Do Next x
Prov(N, y) = Val(InputBox("Precio equipo: " & Equipo(N) & " Proved: " & y)) End Sub
Loop Until Prov(N, y) > 0
Cells(3 + N, 2 + y) = Prov(N, y)
Next y
Rpta = MsgBox("¿Hay más equipos?", vbYesNo + vbQuestion)
Loop Until Rpta = vbNo

Copyright © 2019 - BDC 59


Ejercicios

Algoritmos – Vectores y Matrices


Tarea 1: Analizar algoritmo

 Dado el siguiente vector V( ) de 6 elementos de tipo Entero:

2 3 0 5 8 1
 Indique cuál es el valor mostrado para P, luego de ejecutarse el siguiente
segmento de programa:
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
 Valor de R : ______ Valor de X: ______
Copyright © 2019 - BDC 61
Tarea 2: Analizar algoritmo

 Dado el vector V( ) de 6 elementos de tipo Entero:

2 3 0 5 8 1
 Indique cuál es el valor mostrado para S, luego de ejecutarse el siguiente
segmento de programa:
X = 3:C=0:S=0
Repetir
C=C+2
S= S+V(C)
Hasta S > X
 Valor de S : ______

Copyright © 2019 - BDC 62


Tarea 3: Estadísticas

 Ingrese las edades de un grupo de personas y determine


lo siguiente:
o Promedio
𝑛
𝑖=1 𝑥𝑖
𝑥=
𝑛
o Varianza
𝑛 2
𝑖=1 𝑥𝑖 − 𝑥
𝜎2 =
𝑛

o Desviación Estándar
𝑛 2
𝑖=1 𝑥𝑖 − 𝑥
𝜎=
𝑛

 No se sabe exactamente cuántos datos se ingresarán


 Mostrar los datos ordenados de mayor a menor edad
(muestre también los nombres)
Copyright © 2019 - BDC 63
Tarea 4: Serie de Fibonacci
Elementos Elementos
 Elabore un algoritmo que genere los N Impares Pares
primeros términos de la serie de
Fibonacci: 1 1 1 2
o 1, 1, 2, 3, 5, 8, 13, 21, 34 …
2 1 2 8
 N, es un número entero ingresado como
dato 3 3 3 34
 Debe almacenar en un vector los
términos pares y en otro los términos 4 5
impares.
5 13

6 21
Copyright © 2019 - BDC 64
Tarea 5: Vector de Primos

 Elabore un algoritmo que permita generar un vector con todos los


números primos comprendidos entre 1 y N.
 Por ejemplo si el N ingresado es 20, el vector será:

Primo( )
1 2
2 3
3 5
4 7
5 11
6 13
7 17
Copyright © 2019 - BDC 65
Tarea 6: Depuración

 Desarrolle un algoritmo que le permita


depurar los elementos de un vector.
Ejemplo:
o Datos del Vector: 8, 5, 12, 8, 12, 5, 7
o Vector depurado: 8, 5, 12, 7

Copyright © 2019 - BDC 66


Tarea 7: Clientes

 Se registran los nombres y los montos adeudados


por los clientes de la empresa XYZ S.A.
 No se sabe exactamente cuántos clientes son
 Muestre un listado de los clientes junto con el
monto adeudado
 Ordene los clientes de acuerdo al monto adeudado
en orden descendente

Copyright © 2019 - BDC 67


Tarea 8: Producción

 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 se ingresa al programa el Código de la
Máquina y la Cantidad de Unidades producidas por ella. Una máquina
puede ser considerada muchas veces.
 El ingreso de datos finaliza cuando el usuario contesta afirmativamente a la
pregunta: “¿Desea terminar? “
 Finalizado el ingreso de datos muestre lo siguiente:
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

Copyright © 2019 - BDC 68


Tarea 9: Selección de personal

 Se ingresa el nombre, la talla y peso de los participantes para


cubrir un puesto en la empresa.
 Las condiciones que debe cumplir el postulante son:
o No se aceptan participantes con talla < 1.58 m.
o No se aceptan pesos <= 48 kg ni mayores a 75 kg
o Cuando se rechace un(a) postulante debe mostrar el mensaje indicando
porqué no es aceptado(a)
 Finalizado el proceso muestre los siguientes resultados:
o Los nombres de las personas aceptadas.
o ¿Cuál es el peso promedio de todos los postulantes?
o ¿Cuántos fueron rechazados por exceso de peso?
o ¿Cuál es el promedio de talla de los aceptados?
o Listado ascendente por pesos de todas las personas aceptadas

Copyright © 2019 - BDC 69


Tarea 10-a: Pedidos

 Se ingresan en dos vectores: Nombre del


cliente y Cantidad de productos solicitados
 Tome en consideración lo siguiente:
o Solo se cuenta con un stock de Q unidades
o Un cliente puede hacer varios pedidos
o No se sabe exactamente cuántos pedidos se
atenderán, por lo que los datos se ingresan hasta
que el usuario conteste: No, a la pregunta, “¿Hay
más pedidos por atender?” o se haya agotado el
stock de Q unidades.

Copyright © 2019 - BDC 70


Tarea 10-b: Pedidos

 TOTAL PEDIDOS DE UN CLIENTE


o Solicite el nombre de un cliente, si éste existe,
indique cuántos pedidos hizo y cuál es el total de
unidades solicitados por él.
 ELIMINAR PEDIDOS DE UN CLIENTE
o Pida el nombre de un cliente, si éste existe, elimine
de ambos vectores el nombre del cliente y las
unidades solicitadas por él.

Nota: Debe eliminar también los espacios en blanco que


queden en los dos vectores correspondientes a los
datos eliminados.
Copyright © 2019 - BDC 71
Tarea 11: Reclamos

 Elabore un algoritmo que registre en un vector el número de


reclamos que efectuaron durante un mes los clientes de una
empresa.
 Realice lo siguiente:
o Solicite el número de reclamos de cada cliente y almacénelos en el
vector RECLAMO ( ). El ingreso termina cuando se contesta “No” a la
pregunta “¿Hay más reclamos?”
o Finalizado el ingreso de datos y empleando el vector RECLAMO ( )
debe calcular y mostrar:
• Pase al vector URGENTE ( ), todos aquellos reclamos que sean mayores
a 3 e indique cuántos clientes tienen más de 3 reclamos.
• ¿Cuál es el promedio de los reclamos urgentes?

Copyright © 2019 - BDC 72


Tarea 12: Matrices

Ingrese una matriz y realice lo siguiente:


Identifique si es matriz nula
Si es triangular superior

Copyright © 2019 - BDC 73


Tarea 13: Operaciones con matrices

 Ingrese 2 matrices y realice las


siguientes operaciones:
o Suma de matrices
o Diferencia de matrices
o Producto de matrices

Copyright © 2019 - BDC 74


Tarea 14: Matriz - Vector

 Ingrese los elementos de 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
primos almacenados en la matriz.

Copyright © 2019 - BDC 75


Tarea 15: Ventas

 Ingrese las ventas realizadas por una cadena de supermercados en sus T tiendas,
para cada una de las L líneas de productos comercializados.
 Muestre cuál es el total vendido por tienda
 Muestre cúal es el total vendido por línea
 ¿Cuál fue la tienda y la línea correspondiente a la mayor venta?

76
Copyright © 2019 - BDC
Tarea 16: Ventas al crédito

 Elabore un algoritmos que permita ingresar el nombre de un cliente, si este aún


no existe lo ingresa al final de la lista. A continuación solicite el ingreso del mes y
la letra: C o P para indicar si se trata de una venta al crédito o el pago de la deuda.
 Realizada la transacción, actualice el valor de la celda correspondiente.
 Calcule y muestre el monto anual adeudado por cada uno de los clientes.

Algoritmos
Copyright
– Vectores
© 2019 y- Matrices
BDC 77
Tarea 17: Gestión de proyectos

 Ingrese en un vector el nombre de un


grupo de analistas de proyectos. No se
sabe exactamente cuántos son, por lo
que se finaliza cuando se contesta
“No” a la pregunta ¿Hay más
analistas?
 A continuación registre para cada una
de ellos el tiempo (minutos) trabajado
en cada uno de los P proyectos
asignados, acumulándolos.

Copyright © 2019 - BDC 78


Tarea 17: Gestión de proyectos

Calcule y muestre lo siguiente:


 ¿Cuál es el tiempo total registrado para todos los proyectos?
 Ingrese un analista e indique cuál es el total de minutos trabajados en
todos sus proyectos.
 ¿Cuál es el proyecto con más tiempo?
 ¿Cuál es el tiempo promedio dedicado por cada analista a sus
proyectos asignados?

Copyright © 2019 - BDC 79


Tarea 18:
Compañía deTaxis

Algoritmos
Copyright
– Vectores
© 2019 y- Matrices
BDC 80
Tarea 19:

Dado el siguiente Diagrama de flujo, elabore


el diagrama N-S y el pseudocódigo que lo
representen exactamente.

Algoritmos
Copyright
– Vectores
© 2019 y- Matrices
BDC 81
Tarea 20: Trabajadores

Ingrese el nombre de los trabajadores de una empresa en un vector.


No se sabe exactamente cuántos trabajadores son, por lo que el ingreso finaliza al contestar No a la
pregunta ¿Hay más trabajadores?

Finalizado el ingreso de los nombres al vector, solicite para cada uno de ellos, la cantidad de horas
semanales trabajadas y el pago por hora, a continuación calcule el pago semanal y almacénelo en un
vector, considerando que por cada hora adicional a 40, se le paga el doble.

Ordenar los sueldos pagados ascendentemente y muestre los datos ordenados de los 2 vectores (nombre y
pago)

Elabore el pseudocódigo que realice lo solicitado.

82