Académique Documents
Professionnel Documents
Culture Documents
Repaso
Hasta ahora en el curso se estudi:
La representacin de algoritmos usando estructuras bsicas: secuencia, seleccin lgica, iteracin. Los tipos de datos El concepto de variable Almacenan un solo valor: numrico, cadena de caracteres, lgico, etc.
2
Clase 6
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 posicin relativa en el arreglo. Los arreglos pueden ser de cualquier tipo de dato: numrico, alfanumricos, lgicos, etc. A =
A0 A1 A2 A3
Clase 6
Ai
An-1 An
3
Dimensiones y Subndices
El nmero de dimensiones especifican el tipo de arreglo (vector, matriz, etc.). Cada dimensin tiene un tamao y se utiliza un subndice para hacer referencia a una posicin en esa dimensin. Los vectores utilizan un solo subndice que especifica la posicin del elemento en la dimensin: A(i)
5
Clase 6
Dimensiones y Subndices
Las matrices tienen dos dimensiones: a la primera dimensin se le llama Fila, a la segunda Fila dimensin se le llama Columna Las matrices utilizan dos subndices: uno para las filas y otro para las columnas. A(i, j)
Subndice para columnas (segunda dimensin)
6
Clase 6
Declaracin de arreglos
Un arreglo se declara con la instruccin Dim: 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 dimensin es de la forma: 7 lmiteInferior To lmiteSuperior Clase 6
Declaracin de arreglos
lmiteInferior To lmiteSuperior lmiteInferior: Opcional. Es un entero (positivo o negativo) correspondiente al lmite inferior del arreglo en esa dimensin. Si se omite, tambin se debe omitir la palabra clave To y su valor se asume cero. lmiteSuperior: Requerido. Es un entero (positivo o negativo) correspondiente al lmite superior del arreglo en esa dimensin. lmiteSuperior debe ser mayor o igual que lmiteInferior. 8
Clase 6
Declaracin de arreglos
Ejemplos:
Dim Dim Dim Dim Dim X(1 To 10) As Single, B() As Long Y(20) As Integer, W(10, 20) As Double Z(-30 To 50) As String A(5, -4 To 10) As Boolean C(5, 5, 5, 4) As Long
Observaciones:
Los parntesis (despus del nombre de la variable) indican que la variable es un arreglo Cuntos elementos tiene X? y B? y A? y C?
Clase 6
Tamao de un arreglo
El tamao de un arreglo se define como la multiplicacin de cada uno de los tamaos de las dimensiones del arreglo. El tamao de una dimensin se calcula por la siguiente frmula: Tamao = lmiteSuperior lmiteInferior + 1 Por ejemplo, en la declaracin:
Dim Z(-30 To 50) As String El tamao del vector Z es 50 (30) + 1 = 81 elementos
10
Clase 6
Arreglos Estticos
Un arreglo esttico es aquel que, en su declaracin, se define el nmero de dimensiones y el tamao de cada dimensin. Es decir, tiene un nmero 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.
11
Clase 6
Arreglos Dinmicos
Un arreglo dinmico es aquel cuyo tamao y nmero de dimensiones pueden cambiar. En la declaracin se colocan los parntesis vacos. Ejemplo:
Dim X() As Long, B() As String
Para poder hacer referencia a un elemento del arreglo dinmico, primero de debe redimensionar la variable utilizando la instruccin ReDim, especificando el nmero de dimensiones y el tamao de cada dimensin. 12
Clase 6
Arreglos Dinmicos
Sintaxis de la instruccin ReDim: 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 dimensin es de la forma: lmiteInferior To lmiteSuperior lmiteInferior es opcional. Si se omite se asume 0. 13 lmiteSuperior es requerido. Clase 6
Arreglos Dinmicos
Ejemplo:
ReDim permite cambiar Dim F() As Single el nmero de elementos ... el nmero de dimensiones del arreglo ReDim F(50) pero NO su tipo de ... datos. F(2) = 10.52 ... ReDim F(1 To 5, 5) ... F(3, 0) = 4*F(1, 1) 2.3 Clase 6
14
Arreglos Dinmicos
ReDim inicializa cada elemento del arreglo a su
valor por defecto (los numricos a 0; String a ; Boolean a False; etc.). ReDim Preserve permite conservar los datos del arreglo. Si utiliza la palabra clave Preserve slo puede cambiar el tamao de la ltima dimensin del arreglo y no es posible cambiar el nmero de dimensiones. En este caso, los elementos del arreglo no se inicializan a su valor por defecto. 15
Clase 6
Arreglos Dinmicos
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) Memoria A(K) = -1
Clase 6
RAM
0 A0 -2 A1 0 5 0 A2 8 0 A3 0 A4 0 A5 -1 A6 0
16
Ejemplo 1
Para un vector x de n elementos reales, hallar la suma, el promedio () y la desviacin estndar ().
(x
i =1
n 1
17
Clase 6
Definicin de variables
Datos de entrada:
N Xi Tamao del vector X Elemento i-simo del vector X
Ejemplo 1:
Datos de salida:
Suma Suma de los elementos del vector X Prom Promedio de los elementos del vector Desv Desviacin Estndar de los elementos del vector.
18
Clase 6
19
Clase 6
Clase 6
21
Clase 6
Ejemplo 2
Realizar un algoritmo que permita sumar dos matrices de orden nxm.
a1,1 a 2,1 a3,1 ... a n,1 a1, 2 a 2, 2 a 3, 2 ... an, 2 ... ... ... ... ... a1,m b1,1 a 2,m b2,1 a3,m + b3,1 ... ... a n,m bn,1 b1, 2 b2, 2 b3, 2 ... bn, 2 ... ... ... ... ... b1,m c1,1 b2,m c2,1 b3,m = c3,1 ... ... bn,m cn,1 c1, 2 c2, 2 c 3, 2 ... cn, 2 ... ... ... ... ... c1,m c2,m c 3, m ... cn,m
22
Clase 6
Definicin de variables
Datos de entrada:
N M Ai,j Bi,j Ci,j Nmero de filas Nmero de columnas Elementos de la matriz A Elementos de la matriz B Elementos de la matriz C
23
Ejemplo 2:
Datos de salida:
Clase 6
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,j+Bi,j Mostrar C Terminar
24
Clase 6
Funcin LBound
Devuelve un tipo Long que contiene el subndice ms pequeo disponible para la dimensin indicada de un arreglo. Sintaxis:
LBound(nombreArreglo, dimension)
Requerido. Nombre del arreglo. dimensin: Opcional. Nmero entero que indica a qu dimensin corresponde el lmite inferior devuelto. Use 1 para la primera dimensin, 2 para la segunda y as sucesivamente. Si dimensin se omite, se supone que es 1.
25
nombreArreglo:
Clase 6
Funcin UBound
Devuelve un tipo Long que contiene el mayor subndice disponible para la dimensin indicada de un arreglo. Sintaxis:
UBound(nombreArreglo, dimension)
Requerido. Nombre del arreglo. dimensin: Opcional. Nmero entero que indica la dimensin cuyo lmite superior se devolver. Use 1 para la primera dimensin, 2 para la segunda y as sucesivamente. Si dimensin se omite, se supone que es 1.
26
nombreArreglo:
Clase 6
Ejemplos:
Clase 6
Instruccin Erase
La instruccin Erase vuelve a inicializar (a su valor por defecto) los elementos de los arreglos estticos y elimina los arreglos dinmicos. Sintaxis: Erase nombreArreglo nombreArreglo: Requerido. Nombre del arreglo. nombreArreglo Antes de volver a utilizar un arreglo dinmico eliminado con la instruccin Erase, se debe volver a declarar las dimensiones del arreglo con la instruccin ReDim.
28
Clase 6
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 nmero de valores positivos, negativos y ceros de un vector W de m elementos enteros. Realizar un algoritmo que permita multiplicar dos matrices.
29
Clase 6
Visualizacin de grficos
VB permite visualizar grficos mediante:
El Formulario (Form) El control PictureBox La Impresora (Printer)
Tambin se puede utilizar controles especializados como Hojas de Excel, Microsoft Chart, etc.
31
Clase 6
Visualizacin de grficos
Ejemplo:
32
Clase 6
33
Clase 6
Clase 6
35
Clase 6
37
Clase 6
38
Clase 6
Tareas
Graficar para una funcin f(x), los rectngulos resultantes al aplicarle el mtodo de integracin rectangular. Graficar la trayectoria (tiro parablico) de un proyectil que es disparado con una velocidad inicial V0=20 m/s y un ngulo =45. Considere, adems, la resistencia del aire.
V0
39
Clase 6
Clase 6 Anexo
Graficacin en Visual Basic:
Dibujar Puntos Dibujar Lneas Dibujar Circunferencias Dibujar Elipses Dibujar Texto
40
Clase 6
Sistema de Coordenadas
El sistema de coordenadas es una cuadrcula bidimensional que define ubicaciones en la pantalla, en un formulario o en otro control. Las ubicaciones de esta cuadrcula se definen mediante las coordenadas del objeto: (X, Y)
42
Clase 6
Sistema de Coordenadas
El valor de X es la ubicacin del punto sobre el eje x, con la ubicacin predeterminada 0 en el extremo izquierdo y creciendo de izquierda a derecha. El valor de Y es la ubicacin del punto sobre el eje y, con la ubicacin predeterminada 0 en el extremo superior y creciendo de arriba hacia abajo.
43
Clase 6
Sistema de Coordenadas
(0, 0)
Propiedad Height
E j e Y
Objeto
+
Eje X Clase 6 Propiedad Width
(Width, Height) +
44
Sistema de Coordenadas
La propiedad ScaleMode permite definir la unidad de medida de las coordenadas de un objeto. La unidad de medida por defecto es twip. Un twip es 1/20 twip de punto de impresora (1.440 twips = 1 pulgada y 567 twips = 1 centmetro). Otras unidades de medida: Punto, Pxel, Centmetros, Milmetros, Pulgadas, etc. Estas medidas definen el tamao de un objeto cuando se imprime. Las distancias fsicas reales dentro de la pantalla varan de acuerdo con el tamao de la pantalla.
45
Clase 6
Mtodo Scale
objeto.Scale (x1,y1)-(x2,y2)
(x1, y1)
Objeto
(x2, y2)
Clase 6
47
Picture1
(0, 0)
(100, -100)
Clase 6
48
Mtodos Grficos
VB proporciona varios mtodos para la creacin de grficos: Cls: Borra todos los grficos y texto Cls Print: Presenta texto Print PSet: Establece el color de un pxel individual PSet Point: Devuelve el color de un punto especfico Point Line: Dibuja una lnea, un rectngulo o un cuadro relleno Line Circle: Dibuja un crculo, una elipse o un arco Circle PaintPicture: Dibuja grficos en ubicaciones arbitrarias PaintPicture
49
Clase 6
Propiedades Grficas
Las propiedades grficas son algunas propiedades que de una forma u otra actan en conjunto con los mtodos grficos: CurrentX: (Single) Devuelve o establece la coordenada CurrentX horizontal para el siguiente mtodo grfico o de impresin. No disponible en tiempo de diseo. CurrentY: (Single) Devuelve o establece la coordenada CurrentY vertical para el siguiente mtodo grfico o de impresin. No disponible en tiempo de diseo. AutoRedraw: (Boolean) Devuelve o establece el resultado AutoRedraw de un mtodo grfico como grfico persistente. Un grfico persistente es un grfico que no se borra cuando se 50 cubre con otra ventana.
Clase 6
Propiedades Grficas
DrawWidth: (1 a 32767) Devuelve o establece el ancho de DrawWidth lnea para el resultado de los mtodos grficos. El valor predeterminado es 1, es decir, un pxel de ancho. DrawStyle: (0 a 6) Devuelve o establece un valor que DrawStyle determina el estilo de lnea del resultado de mtodos grficos. Slo tiene efecto si DrawWidth = 1. Estilos:
Slido (vbSolid o 0): Raya (vbDash o 1): Punto (vbDot o 2): Raya-Punto (vbDashDot o 3): Raya-Punto-Punto (vbDashDotDot o 4): Transparente (vbInvisible o 5) y Interior Slido (vbInsideSolid o 6) 51 Clase 6
Propiedades Grficas
ForeColor: (Long) Devuelve o establece el color de ForeColor primer plano utilizado para mostrar texto y grficos en un objeto. FillColor: (Long) Devuelve o establece el color usado FillColor para llenar crculos y cuadros creados con los mtodos grficos Circle y Line. FillStyle: (0 a 7) Devuelve o establece el patrn usado FillStyle para llenar los crculos y los cuadros creados con los mtodos grficos Circle y Line.
52
Clase 6
Propiedades Grficas
Patrones propiedad FillStyle:
Slido (vbFSSolid o 0): Transparente (vbFSTransparent o 1): Lnea horizontal (vbHorizontalLine o 2): Lnea vertical (vbVerticalLine o 3): Diagonal hacia arriba (vbUpwardDiagonal o 4): Diagonal hacia abajo (vbDownwardDiagonal o 5): Cruz (vbCross o 6): Cruz diagonal (vbDiagonalCross o 7):
Clase 6
Mtodo Cls
Borra los grficos y el texto generados en tiempo de ejecucin de los controles Form o PictureBox. Sintaxis:
objeto.Cls objeto
Cls no borra los grficos y texto colocados mientras la propiedad AutoRedraw es True si AutoRedraw se establece a False antes de llamar a Cls. Para borrar todo Cls asigne Nothing a la propiedad Picture: Picture Set objeto.Picture = Nothing objeto Despus de llamar a Cls, las propiedades CurrentX y Cls 54 CurrentY del objeto se restablecen a 0.
Clase 6
Mtodo PSet
Establece un punto de un objeto Form, PictureBox o Printer a un color especificado. Sintaxis:
55
Picture1
(100, -100)
Clase 6
56
Mtodo Point
Devuelve, como un valor de tipo Long, el color rojo-verdeazul (RGB) del punto especificado de un objeto Form o un control PictureBox. Sintaxis:
Clase 6
Mtodo Line
Permite dibujar lneas y rectngulos. Sintaxis:
Clase 6
Mtodo Line
B: Opcional. Si se incluye, hace que se dibuje un cuadro usando las coordenadas para especificar las esquinas opuestas del cuadro. F: Opcional. La opcin F especifica que el cuadro se llena con el mismo color utilizado para dibujar el cuadro. No puede usar F sin B. Si se utiliza B sin F, el cuadro se llena con los valores actuales de FillColor y FillStyle. FillStyle Cuando se ejecuta Line, las propiedades CurrentX y Line CurrentY se establecen al punto final especificado por los argumentos (X2, Y2).
59
Clase 6
Clase 6
Mtodo Circle
Dibuja un crculo, una elipse o un arco en un objeto. Sintaxis:
Mtodo Circle
fin: Opcional. Cuando se dibuja un arco o un crculo o una fin elipse parcial, fin especifica (en radianes) la posicin de fin del arco. El intervalo es de -2 radianes a 2 radianes. El valor predeterminado para fin es 2 radianes. asp: Opcional. Indica la relacin entre el dimetro vertical y asp el dimetro horizontal. El valor predeterminado para asp es 1, lo que produce un crculo perfecto (no elptico). El mtodo Circle siempre dibuja en direccin contraria a las agujas del reloj (positiva).
62
Clase 6
Mtodo Circle
Cuando dibuja un crculo o una elipse parcial, si inic es negativo, Circle dibujar un radio hasta inic y tratar el ngulo como positivo; si fin es negativo, Circle dibujar un radio hasta fin y tratar el ngulo como positivo. Cuando se ejecuta Circle, las propiedades CurrentX y Circle CurrentY se establecen al punto central especificado por los argumentos (X, Y).
63
Clase 6
Clase 6
Mtodo Print
Dibuja texto en un objeto Form, PictureBox o Printer. Sintaxis:
Clase 6
Mtodo Print
El mtodo Print comienza a imprimir a partir del valor de las propiedades CurrentX y CurrentY. CurrentY De forma predeterminada, el mtodo Print imprime el texto y pasa a la lnea siguiente. Si no hay texto, Print simplemente salta una lnea. Despus de ejecutar el mtodo Print, las propiedades Print CurrentX y CurrentY cambian a la siguiente posicin de impresin (La siguiente posicin de impresin depende del tipo, tamao y estilo de la fuente utilizada en el objeto).
66
Clase 6
Clase 6
Mtodo TextHeight
Devuelve el alto de una cadena de texto tal y como se imprimira con la fuente actual de un objeto Form, PictureBox o Printer. Sintaxis:
objeto.TextHeight(texto) objeto
texto: Requerido. Una cadena para la que se quiere texto determinar el alto del texto. Debe ir entre parntesis. Si el texto contiene retornos de carro, TextHeight devuelve el alto de las lneas acumuladas, incluyendo el espacio que hay por encima y por debajo de cada lnea. TextHeight retorna un valor negativo si el eje Y aumenta de 68 abajo hacia arriba, de lo contrario, retorna un valor positivo. Clase 6
Mtodo TextWidth
Devuelve el ancho de una cadena de texto tal y como se imprimira con la fuente actual de un objeto Form, PictureBox o Printer. Sintaxis:
objeto.TextWidth(texto) objeto
texto: Requerido. Una cadena para la que se quiere texto determinar el ancho del texto. Debe ir entre parntesis. Si el texto contiene retornos de carro, TextWidth devuelve el ancho de la lnea ms larga. TextWidth retorna un valor negativo si el eje X aumenta de derecha a izquierda, de lo contrario, retorna un valor positivo. 69
Clase 6
ABCDEFG ABCDEFG
Clase 6
Mtodo PaintPicture
Dibuja el contenido de un archivo grfico (.bmp, .wmf, .emf, .cur, .ico o .dib) en un objeto Form, PictureBox o Printer. Sintaxis:
Clase 6
Instruccin SavePicture
Guarda una imagen grfico en un archivo. Sintaxis:
Clase 6
Clase 6
Funcin RGB
Devuelve un nmero entero tipo Long que representa un valor de color RGB. Sintaxis:
Clase 6
Funcin QBColor
Devuelve un tipo Long que representa el cdigo de color RGB correspondiente al nmero de color especificado. Sintaxis: QBColor(num) num: Requerido. Un nmero en el intervalo [0,15] que representa un num
color segn la siguiente tabla: 0: Negro 6: Amarillo 1: Azul 7: Blanco 2: Verde 8: Gris 3: Aguamarina 9: Azul claro 4: Rojo 10: Verde claro 5: Fucsia 11: Aguamarina claro 12: Rojo claro 13: Fucsia claro 14: Amarillo claro 15: Blanco brillante
75
Clase 6
Constantes de Colores
VB define las siguientes constantes de colores: Constante Valor Color
vbBlack vbRed vbGreen vbYellow vbBlue vbMagenta vbCyan vbWhite 0 255 (&HFF) 65280 (&HFF00) 65535 (&HFFFF) 16711680 (&HFF0000) 16711935 (&HFF00FF) 16776960 (&HFFFF00) 16777215 (&HFFFFFF)
76
Clase 6