Algoritmos y Programacin Clase 8 - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

Algoritmos y Programacin Clase 8

Description:

La representaci n de algoritmos usando estructuras b sicas: secuencia, selecci n ... instrucci n Erase, se debe volver a declarar las dimensiones del arreglo con la ... – PowerPoint PPT presentation

Number of Views:126
Avg rating:3.0/5.0
Slides: 30
Provided by: peterulric
Category:

less

Transcript and Presenter's Notes

Title: Algoritmos y Programacin Clase 8


1
Algoritmos y ProgramaciónClase 8
  • Variables tipo arreglo (Arrays)
  • Vectores
  • Matrices

2
Repaso
  • En la primera parte del curso se estudió
  • La representación de algoritmos usando
    estructuras básicas secuencia, selección lógica,
    iteración.
  • Los tipos de datos
  • El concepto de variable ? Almacenan un solo
    valor numérico, cadena de caracteres, lógico,
    etc.

3
Arreglos
  • Un arreglo (o array) es un conjunto de elementos
    que tienen el mismo tipo de dato y se identifican
    con un único nombre de variable.
  • Para referirse a un determinado elemento del
    arreglo se utiliza un índice, que especifica su
    posición relativa en el arreglo.
  • Los arreglos pueden ser de cualquier tipo de
    dato numérico, alfanuméricos, lógicos, etc.
  • A

4
Clasificación de los arreglos
  • Los arreglos se clasifican de acuerdo al número
    de dimensiones que tienen
  • Unidimensionales (Vectores)
  • Bidimensionales (Matrices o Tablas)
  • Multidimensionales (tres o más dimensiones)

5
Dimensiones y Subíndices
  • El número de dimensiones especifican el tipo de
    arreglo (vector, matriz, etc.).
  • Cada dimensión tiene un tamaño y se utiliza un
    subíndice para hacer referencia a una posición en
    esa dimensión.
  • Los vectores utilizan un solo subíndice que
    especifica la posición del elemento en la
    dimensión
  • A(i)

6
Dimensiones y Subíndices
  • Las matrices tienen dos dimensiones a la primera
    dimensión se le llama Fila, a la segunda
    dimensión se le llama Columna
  • Las matrices utilizan dos subíndices uno para
    las filas y otro para las columnas.
  • A(i, j)

Subíndice para filas (primera dimensión)
Subíndice para columnas (segunda dimensión)
7
Declaración de arreglos
  • Un arreglo se declara con la instrucción Dim
  • Dim nombreArreglo(dimensiones) As tipoDato
  • nombreArreglo es el nombre de una variable
  • tipoDato Opcional. Es el tipo de dato del
    arreglo (Integer, Long, Double, Boolean, String,
    etc.).
  • dimensiones Opcional. Es una lista (separada por
    coma) de las dimensiones del arreglo. VB acepta
    hasta 60 dimensiones. Cada dimensión es de la
    forma
  • límiteInferior To límiteSuperior

8
Declaración de arreglos
  • límiteInferior To límiteSuperior
  • límiteInferior Opcional. Es un entero (positivo
    o negativo) correspondiente al límite inferior
    del arreglo en esa dimensión. Si se omite,
    también se debe omitir la palabra clave To y su
    valor se asume cero.
  • límiteSuperior Requerido. Es un entero (positivo
    o negativo) correspondiente al límite superior
    del arreglo en esa dimensión. límiteSuperior debe
    ser mayor o igual que límiteInferior.

9
Declaración de arreglos
  • Ejemplos
  • Dim X(1 To 10) As Single, B() As Long
  • Dim Y(20) As Integer, W(10, 20) As Double
  • Dim Z(-30 To 50) As String
  • Dim A(5, -4 To 10) As Boolean
  • Dim C(5, 5, 5, 4) As Long
  • Observaciones
  • Los paréntesis (después del nombre de la
    variable) indican que la variable es un arreglo
  • Cuántos elementos tiene X? y B? y A? y C?

10
Tamaño de un arreglo
  • El tamaño de un arreglo se define como la
    multiplicación de cada uno de los tamaños de las
    dimensiones del arreglo.
  • El tamaño de una dimensión se calcula por la
    siguiente fórmula
  • Tamaño límiteSuperior límiteInferior 1
  • Por ejemplo, en la declaración
  • Dim Z(-30 To 50) As String
  • El tamaño del vector Z es 50 (30) 1 81
    elementos

11
Arreglos Estáticos
  • Un arreglo estático es aquel que, en su
    declaración, se define el número de dimensiones y
    el tamaño de cada dimensión. Es decir, tiene un
    número constante de elementos.
  • Ejemplo
  • Dim B(9) As Integer, A(7, 19) As Single
  • El vector B tendrá 10 elementos de tipo entero.
  • La matriz A tendrá 8 filas y 20 columnas, es
    decir, 160 elementos de tipo real simple.

12
Arreglos Dinámicos
  • Un arreglo dinámico es aquel cuyo tamaño y número
    de dimensiones pueden cambiar. En la declaración
    se colocan los paréntesis vacíos.
  • Ejemplo
  • Dim X() As Long, B() As String
  • Para poder hacer referencia a un elemento del
    arreglo dinámico, primero de debe redimensionar
    la variable utilizando la instrucción ReDim,
    especificando el número de dimensiones y el
    tamaño de cada dimensión.

13
Arreglos Dinámicos
  • Sintaxis de la instrucción ReDim
  • ReDim nombreArreglo(dimensiones)
  • nombreArreglo es el nombre de la variable a
    redimensionar.
  • dimensiones Requerido. Es una lista (separada
    por coma) de las dimensiones del arreglo. Cada
    dimensión es de la forma
  • límiteInferior To límiteSuperior
  • límiteInferior es opcional. Si se omite se asume
    0. límiteSuperior es requerido.

14
Arreglos Dinámicos
  • Ejemplo
  • Dim F() As Single
  • ...
  • ReDim F(50)
  • ...
  • F(2) 10.52
  • ...
  • ReDim F(1 To 5, 5)
  • ...
  • F(3, 0) 4F(1, 1) 2.3

ReDim permite cambiar el número de elementos ó el
número de dimensiones del arreglo pero NO su
tipo de datos.
15
Arreglos Dinámicos
  • ReDim inicializa cada elemento del arreglo a su
    valor por defecto (los numéricos a 0 String a
    Boolean a False etc.).
  • ReDim Preserve permite conservar los datos del
    arreglo.
  • Si utiliza la palabra clave Preserve sólo puede
    cambiar el tamaño de la última dimensión del
    arreglo y no es posible cambiar el número de
    dimensiones. En este caso, los elementos del
    arreglo no se inicializan a su valor por defecto.

16
Arreglos Dinámicos
  • Ejemplo
  • Dim A() As Integer
  • ReDim A(4)
  • A(2) 5
  • ReDim A(3)
  • A(1) -2
  • A(3) 8
  • K 6
  • ReDim Preserve A(K)
  • A(K) -1

A
A0
0
A1
0
0
-2
A2
0
5
0
A3
0
8
A4
0
A5
0
A6
0
-1
Memoria RAM
17
Ejemplo 1
  • Para un vector x de n elementos reales, hallar la
    suma, el promedio (?) y la desviación estándar
    (?).

18
Ejemplo 1 Definición de variables
  • Datos de entrada
  • N ? Tamaño del vector X
  • Xi ? Elemento i-ésimo del vector X
  • Datos de salida
  • Suma ? Suma de los elementos del vector X
  • Prom ? Promedio de los elementos del vector
  • Desv ? Desviación Estándar de los elementos del
    vector.

19
Ejemplo 1 Código fuente
  • 'Declaración de variables
  • Dim N As Integer, X() As Single, I As Integer
  • Dim Suma As Single, Prom As Single, Desv As
    Single
  • Dim Sum As Single
  • 'Lectura de datos
  • N Val(InputBox("Ingrese el valor de N"))
  • ReDim X(1 To N)
  • For I 1 To N
  • X(I) Val(InputBox("X(" I ") "))
  • Next I

20
Ejemplo 1 Código fuente
  • 'Cálculo de la Suma y Promedio
  • Suma 0
  • For I 1 To N
  • Suma Suma X(I)
  • Next I
  • If N gt 0 Then Prom Suma / N
  • 'Cálculo de la Desviación Estándar
  • Sum 0
  • For I 1 To N
  • Sum Sum (X(I) Prom) 2
  • Next I
  • If N gt 1 Then Desv Sqr(Sum / (N 1))

21
Ejemplo 1 Código fuente
  • 'Mostrar resultados
  • Text1.Text "Vector Leído" vbCrLf
  • For I 1 To N
  • Text1.Text Text1.Text "X(" I ") " _
  • X(I) vbCrLf
  • Next I
  • Text1.Text Text1.Text "Suma " Suma
    vbCrLf
  • Text1.Text Text1.Text "Prom " Prom
    vbCrLf
  • Text1.Text Text1.Text "Desv " Desv
    vbCrLf

22
Ejemplo 2
  • Realizar un algoritmo que permita sumar dos
    matrices de orden nxm.

23
Ejemplo 2 Definición de variables
  • Datos de entrada
  • N ? Número de filas
  • M ? Número de columnas
  • Ai,j ? Elementos de la matriz A
  • Bi,j ? Elementos de la matriz B
  • Datos de salida
  • Ci,j ? Elementos de la matriz C

24
Ejemplo 2 Algoritmo
Inicio
Leer N, M
I 1, N, 1
J 1, M, 1
Leer Ai,j, Bi,j
I 1, N, 1
J 1, M, 1
Ci,j Ai,jBi,j
Mostrar C
Terminar
25
Función LBound
  • Devuelve un tipo Long que contiene el subíndice
    más pequeño disponible para la dimensión indicada
    de un arreglo.
  • Sintaxis
  • LBound(nombreArreglo, dimension)
  • nombreArreglo Requerido. Nombre del arreglo.
  • dimensión Opcional. Número entero que indica a
    qué dimensión corresponde el límite inferior
    devuelto. Use 1 para la primera dimensión, 2 para
    la segunda y así sucesivamente. Si dimensión se
    omite, se supone que es 1.

26
Función UBound
  • Devuelve un tipo Long que contiene el mayor
    subíndice disponible para la dimensión indicada
    de un arreglo.
  • Sintaxis
  • UBound(nombreArreglo, dimension)
  • nombreArreglo Requerido. Nombre del arreglo.
  • dimensión Opcional. Número entero que indica la
    dimensión cuyo límite superior se devolverá. Use
    1 para la primera dimensión, 2 para la segunda y
    así sucesivamente. Si dimensión se omite, se
    supone que es 1.

27
Ejemplos Función LBound y UBound
  • Dim A(1 To 100, 3, -3 To 4) As Integer
  • Instrucción Valor devuelto
  • LBound(A)
  • LBound(A, 1)
  • LBound(A, 2)
  • LBound(A, 3)
  • UBound(A)
  • UBound(A, 1)
  • UBound(A, 2)
  • UBound(A, 3)
  • UBound(A, 4)

1 1 0 -3 100 100 3 4 Error
28
Instrucción Erase
  • La instrucción Erase vuelve a inicializar (a su
    valor por defecto) los elementos de los arreglos
    estáticos y elimina los arreglos dinámicos.
  • Sintaxis
  • Erase nombreArreglo
  • nombreArreglo Requerido. Nombre del arreglo.
  • Antes de volver a utilizar un arreglo dinámico
    eliminado con la instrucción Erase, se debe
    volver a declarar las dimensiones del arreglo con
    la instrucción ReDim.

29
Tareas
  • Realizar un algoritmo para obtener el mayor y el
    menor valor de un vector A de n elementos
    enteros.
  • Realizar un algoritmo para obtener el número de
    valores positivos, negativos y ceros de un vector
    W de m elementos enteros.
  • Realizar un algoritmo que permita multiplicar dos
    matrices.
Write a Comment
User Comments (0)
About PowerShow.com