Vectores y matrices en VBA

Embed Size (px)

Citation preview

  • 7/26/2019 Vectores y matrices en VBA

    1/32

    Algoritmos (INVectores y Matr

    Prof. Bethy De la Cer

    Copyright 2016

  • 7/26/2019 Vectores y matrices en VBA

    2/32

    Frases del da

    Controlar la complejidad es la esencia

    de la programacin (Brian Kernigan) La funcin de un buen software es

    hacer que lo complejo aparente sersimple (Grady Booch)

    Un gran operario de tornos vale varias

    veces ms que un operario medio, peroun gran escritor de cdigo vale 10.000veces el precio de un desarrolladormedio (Bill Gates)

    15/05/2016 Algoritmos Vectores y Matrices

    Bill Gates - Empresay filntropo estadou

    cofundador de Micro

  • 7/26/2019 Vectores y matrices en VBA

    3/32

    Agenda

    Introduccin

    Estructuras unidimensionales - Vectores

    Estructuras bidimensionales - Matrices

    Ejemplos y aplicaciones

    Ejercicios

    15/05/2016 Algoritmos Vectores y Matrices

  • 7/26/2019 Vectores y matrices en VBA

    4/32

    Introduccin: Arreglos

    En informtica resulta conveniente

    agrupar datos del mismo tipo bajo unsolo nombre de variable

    Estas estructuras de datos sedenominan arreglos (arrays)

    Los arreglos pueden tener muchasdimensiones, los ms comunes son de

    una dimensin (vectores) y de dosdimensiones (matrices)

    Cada elemento es identificado por laposicin (ndices) que ocupa dentrodel arreglo

    15/05/2016 Algoritmos Vectores y Matrices

  • 7/26/2019 Vectores y matrices en VBA

    5/32

    V(0) V(N-1)V(2)

    V(1) V(3)15/05/2016

    Declare el vector de la siguiente manera:

    Dim V ( N ) As TipoDonde:

    V, es el nombre del vectorN, es un valor que indica la cantidad mxima de elemenEl ndice empieza en cero por defecto (N+1 elementos)

    ndice

    Dato0 Dato1 Dato2 Dato3 Dato4 DatoN-1

    Algoritmos Vectores y Matrices

    Declaracin de un Vector

  • 7/26/2019 Vectores y matrices en VBA

    6/32

    Ejemplos de declaracin de vectores

    Dim V(20) As Integer

    Dim X(-3 to 7) As String

    Dim Nota(1 To 30) As Single

    Dim Celular(1 to 100) As String*9

    15/05/2016 Algoritmos Vectores y Matrices

  • 7/26/2019 Vectores y matrices en VBA

    7/32

    Ejemplo: Si desea ingresar el nombre de 7 personas

    Dim A ( 7 ) As String

    Donde:A, es el nombre del vector7, es el valor que indica el ndice mximo del vectoEl ndice cero se incluye por defecto, aunque ste n

    sea utilizado.

    A(1) A(2) A(3)

    Juan Carla Elsa AnaLuis

    A(6) A(7)A(0) A(4) A(5)

    Ejemplos de declaracin de un vector

    15/05/2016 Algoritmos Vectores y Matrices

  • 7/26/2019 Vectores y matrices en VBA

    8/32

    Declare el matriz de la siguiente manera:

    Dim M ( F, C ) As Tipo

    Donde:M, es el nombre de la matrizF, es un valor que indica la cantidad mxima

    de filas de la matriz (empieza en la fila 0)C, es un valor que indica la cantidad mxima de columnade la matriz (empieza en la columna 0)

    Ejemplos:Dim Tabla(10, 20) As IntegerDim Matriz(1 To 5, 1 to 30) As Single

    Declaracin de una Matriz

    15/05/2016 Algoritmos Vectores y Matrices

  • 7/26/2019 Vectores y matrices en VBA

    9/32

    Ejemplo: Declaracin de una ma

    Declare una matriz que permita almacenar las venta

    efectuadas en cada una de las T tiendas de un superpara cada una de las L lneas de productos que come

    Dim Ventas (1 to 30, 1 to 20) as Single

    Nota: Se debe asumir una cantidad mxima de tiendas,as como de las lneas de producto que se comercializa.En el ejemplo 30 y 20.

    Algoritmos Vectores y Matrices

  • 7/26/2019 Vectores y matrices en VBA

    10/32

    Ejemplo: Ordenamiento de datos en u

    Pasos a tomar en cuenta:

    Los datos a ordenar deben seralmacenados en un Vector

    Aplicar el algoritmo deordenamiento (por ejemplo:bubble sorto burbuja)

    Mostrar los datos ordenados

    Algoritmos Vectores y Matrices

  • 7/26/2019 Vectores y matrices en VBA

    11/32

    Algoritmo de la burbuja (Bubble Sort)

    Ordenamiento ascendente de los elementos del vector V ( )

    For i = 1 to N

    1For j = i + 1 to N

    If V ( i ) > V (j ) then

    Temp = V ( i )V ( i ) = V (j )V (j ) = Temp

    End If

    Next j

    Next i

    Intercambio de

    datos

    15/05/2016 Algoritmos Vectores y Matrices

  • 7/26/2019 Vectores y matrices en VBA

    12/32

    Ejemplo 1: Evaluacin de edades

    Ingrese el nombre y la edad de N personas.

    Muestre los datos ingresados en celdas Excel.

    Finalizado el ingreso de datos muestre:

    o El promedio de edades

    o % de personas con edades superiores al promedio

    o El nombre de las personas con edades superiores al promedio

    o Nombre de las personas que tienen la edad mxima

    15/05/2016 Algoritmos Vectores y Matrices

  • 7/26/2019 Vectores y matrices en VBA

    13/32

    Solucin

    Ingresar N

    S 0

    Para C = 1 a N

    Repetir

    Ingresar Nombre(C)

    Hasta Nombre(C)

    Repetir

    Ingresar Edad(C)

    Hasta Edad(C) > 0 y Edad(C) < 120

    Mostrar Nombre(C), Edad(C)

    S S + Edad(C)

    Siguiente C

    Prom S/N

    Mostrar Prom

    Algoritmos Vectores y Matrices

    1

    2

    3

    4

    5

    6

    J

    A

    L

    R

    E

    An

    Nom

    Nombre(3)

    Edad(3)

    Posicin del elemento

  • 7/26/2019 Vectores y matrices en VBA

    14/32

    Ejemplo 2: Operaciones con vectores

    Elabore una aplicacin que permita ingresar los elem

    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 e

    15/05/2016 Algoritmos Vectores y Matrices

  • 7/26/2019 Vectores y matrices en VBA

    15/32

    Ejemplo 3: Frecuencia de notas

    Elabore un proyecto que permita ingresar N notas, las notas

    ser: 0, 1, 2, 3, .99, 100.

    Finalizado el ingreso de datos muestre lo siguiente

    o Frecuencia de notas, es decir cuntas notas 0, 1, 2, 100 se registr

    o La nota ms frecuente (es decir la moda)

    o La nota promedioo Listado y % de alumnos aprobados

    Nota: Se aprueba con 60

    15/05/2016 Algoritmos Vectores y Matrices

  • 7/26/2019 Vectores y matrices en VBA

    16/32

    Ejemplo 4: Produccin

    Se desea saber cul es la produccin total (acumulada) de cada umquinas de una empresa industrial.

    Las 100 mquinas estn identificadas como: 100, 101, 102, 19

    Cada vez que una mquina produce se ingresa al programa el CMquina y la Cantidad de Unidades producidas por ella. Una mpuede ser considerada muchas veces.

    El ingreso de datos finaliza cuando el usuario del sistema contest

    afirmativamente a la respuesta: Desea terminar? Finalizado el ingreso de datos muestre lo siguiente:

    o Cantidad producida por cada una de las mquinas

    o Mquina de menor produccin

    o Promedio de unidades producida por mquina

    15/05/2016 Algoritmos Vectores y Matrices

  • 7/26/2019 Vectores y matrices en VBA

    17/32

    15/05/2016 Algoritmos Vectores y Matrices

    Ejercicios

  • 7/26/2019 Vectores y matrices en VBA

    18/32

    Ejercicio 1: Clientes

    Se registran los nombres y los montos adeudados

    por los clientes de la empresa XYZ S.A.No se sabe exactamente cuntos clientes son

    Muestre un listado de los clientes junto con elmonto adeudado

    Ordene los clientes de acuerdo al monto adeudado

    en orden descendente

    15/05/2016 Algoritmos Vectores y Matrices

  • 7/26/2019 Vectores y matrices en VBA

    19/32

    Ejercicio 2: Estadsticas

    Ingrese las edades de un grupo de personas

    y determine lo siguiente:o Promedio

    o Varianza

    o Desviacin Estndar

    No se sabe exactamente cuntos datos seingresarn

    15/05/2016 Algoritmos Vectores y Matrices

  • 7/26/2019 Vectores y matrices en VBA

    20/32

    Ejercicio 3: Serie de Fibonacci

    Elabore un proyecto que genere los N

    primeros trminos de la serie deFibonacci:

    o 1, 1, 2, 3, 5, 8, 13, 21, 34

    N, es un nmero entero ingresado comodato

    Debe almacenar en un vector lostrminos pares y en otro los trminosimpares.

    15/05/2016 Algoritmos Vectores y Matrices

    216

    135

    54

    33

    12

    11

    Elementos

    Impares

    216

    135

    54

    33

    12

    11

  • 7/26/2019 Vectores y matrices en VBA

    21/32

    Ejercicio 4: Depuracin

    Desarrolle una aplicacin 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

    15/05/2016 Algoritmos Vectores y Matrices

  • 7/26/2019 Vectores y matrices en VBA

    22/32

    Ejercicio 5: Seleccin de personal

    Se ingresa el nombre, la talla y peso de los participantes paracubrir 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

  • 7/26/2019 Vectores y matrices en VBA

    23/32

    Ejercicio 6a: Pedidos

    Se ingresan en dos vectores: Nombre del

    cliente y Cantidad de productos solicitados Tome en consideracin lo siguiente:

    o Solo se cuenta con un stock de Q unidades

    o Un cliente puede hacer varios pedidos

    o No se sabe exactamente cuntos pedidos seatendern, por lo que los datos se ingresan hasta

    que el usuario conteste: No, a la pregunta, Hayms pedidos por atender? o se haya agotado elstock de Q unidades.

    15/05/2016 Algoritmos Vectores y Matrices

  • 7/26/2019 Vectores y matrices en VBA

    24/32

    Ejercicio 6b: Pedidos

    TOTAL PEDIDOS DE UN CLIENTE

    o

    Solicite el nombre de un cliente, si ste existe,indique cuntos pedidos hizo y cul es el total deunidades solicitados por l.

    ELIMINAR PEDIDOS DE UN CLIENTE

    o Pida el nombre de un cliente, si ste existe, eliminede ambos vectores el nombre del cliente y las

    unidades solicitadas por l.

    Nota: Debe eliminar tambin los espacios en blanco quequeden en los dos vectores correspondientes a los datoseliminados.

    15/05/2016 Algoritmos Vectores y Matrices

  • 7/26/2019 Vectores y matrices en VBA

    25/32

    Ejercicio 7: Reclamos

    Elabore una aplicacin que registre en un vector elnmero de reclamos que efectuaron durante un meslos clientes de una empresa.

    Realice lo siguiente:

    o Solicite el nmero de reclamos de cada cliente y almacnelosen el vector RECLAMO ( ). El ingreso termina cuando secontesta No a la pregunta Hay ms reclamos?

    o Finalizado el ingreso de datos y empleando el vectorRECLAMO ( ) debe calcular y mostrar:

    o Pase al vector URGENTE ( ), todos aquellos reclamos quesean mayores a 3. Cuntos clientes tienen ms de 3reclamos.

    o Cul es el promedio de los reclamos urgentes?

    15/05/2016 Algoritmos Vectores y Matrices

    l

  • 7/26/2019 Vectores y matrices en VBA

    26/32

    Ejercicio 8a: Analizar programa

    Dado el siguiente vector V( ) de 6 elementos:

    Indique cul es el valor mostrado para P, luego de ejecutarse el ssegmento de programa:

    R = 0 : X = 0

    For C = 2 to 6 Step 2If V ( C ) < > 0 then R = R + V( C ) \ 2

    X = X + 1

    Next C

    Valor de R : ______ Valor de X: ______

    15/05/2016

    2 3 0 5 8 1

    Algoritmos Vectores y Matrices

    Ej i i 8b A li

  • 7/26/2019 Vectores y matrices en VBA

    27/32

    Dado el vector V( ) de 6 elementos:

    Indique cul es el valor mostrado para S, luego de ejecutarse el ssegmento de programa:

    X = 3 : C= 0

    DoC = C + 2

    S = S + V ( C )

    Loop Until S > X

    Valor de S : ______

    Ejercicio 8b: Analizar programa

    2 3 0 5 8 1

    15/05/2016 Algoritmos Vectores y Matrices

    Ej i i 9 O d i i

  • 7/26/2019 Vectores y matrices en VBA

    28/32

    Ejercicio 9: Ordenar instrucciones

    Instruccin Nmero

    Max =0

    Label3 = El mximo valor del vector es: & Max

    V( C ) = Val (InputBox (Ingrese el elemento : & C))

    N = Val (Text1)

    Dim N As Integer, V(1 to 6) As Integer, Max As Integer, C As Integer

    C = C + 1

    Loop Until C = N

    C = 0

    If V( C ) > Max then Max = V ( C )

    Do

    15/05/2016 Algoritmos Vectores y Matrices

  • 7/26/2019 Vectores y matrices en VBA

    29/32

    Ej i i 11 T t

  • 7/26/2019 Vectores y matrices en VBA

    30/32

    Ejercicio 11: Teatro

    Elabore una aplicacin que permita venderlas entradas a un teatro de F filas y A asientospor fila.

    La venta termina cuando no hay ms clientespor attender o se agotaron todas lasentradas.

    Finalizada las ventas indique qu % del totalde entradas se vendieron

    Cul es la fila ms vendida?

    15/05/2016 Algoritmos Vectores y Matrices

    Ejercicio 12 Ventas al crdito

  • 7/26/2019 Vectores y matrices en VBA

    31/32

    Ejercicio 12: Ventas al crdito

    Elabore una macro que permita ingresar el nombre de un cliente, si esexiste lo ingresa al final de la lista. A continuacin solicite el ingreso de

    letra: C o P para indicar si se trata de una venta al crdito o el pago de

    Realizada la transaccin, actualice el valor de la celda correspondiente

    Calcule y muestre el monto anual adeudado por cada uno de los clien

    15/05/2016 Algoritmos Vectores y Matrices

    Ejercicio 13: Operaciones con matrices

  • 7/26/2019 Vectores y matrices en VBA

    32/32

    Ejercicio 13: Operaciones con matrices

    Ingrese 2 matrices y realice las

    siguientes operaciones:o Suma de matrices

    o Diferencia de matrices

    o Producto de matrices

    15/05/2016 Algoritmos Vectores y Matrices