Arreglos c#

76
1 Algoritmos y Programación Algoritmos y Programación Clase 6 Clase 6 - - primera parte primera parte Variables tipo arreglo (Arrays): Vectores Matrices

Transcript of Arreglos c#

Page 1: Arreglos c#

1

Algoritmos y ProgramaciónAlgoritmos y ProgramaciónClase 6 Clase 6 -- primera parteprimera parte

Variables tipo arreglo (Arrays):VectoresMatrices

Page 2: Arreglos c#

Clase 62

Hasta ahora en el curso se estudió:La representación de algoritmos usando estructuras básicas: secuencia, selección lógica, iteración.Los tipos de datosEl concepto de variable Almacenan un solo valor: numérico, cadena de caracteres, lógico, etc.

RepasoRepaso

Page 3: Arreglos c#

Clase 63

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 =A =

ArreglosArreglos

AA11 AAii …… AAnn--11 AAnnAA22 AA33 ……AA00

Page 4: Arreglos c#

Clase 64

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)

Clasificación de los arreglosClasificación de los arreglos

AA11

AAnn

AA22

……

AA00

AA1,01,0

AAmm,0,0

AA2,02,0

……

AA0,00,0

AA1,11,1

AAmm,1,1

AA2,12,1

……

AA0,10,1

……

……

……

……

……

AA1,n1,n

AAm,nm,n

AA2,n2,n

……

AA0,n0,n

Page 5: Arreglos c#

Clase 65

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(iA(i))

Dimensiones y SubíndicesDimensiones y Subíndices

Page 6: Arreglos c#

Clase 66

Las matrices tienen dos dimensiones: a la primera dimensión se le llama FilaFila, a la segunda dimensión se le llama ColumnaColumnaLas matrices utilizan dos subíndices: uno para las filas y otro para las columnas.

A(iA(i, j), j)

Dimensiones y SubíndicesDimensiones y Subíndices

Subíndice para filas Subíndice para filas (primera dimensión)(primera dimensión)

Subíndice para Subíndice para columnas (segunda columnas (segunda

dimensión)dimensión)

Page 7: Arreglos c#

Clase 67

Un arreglo se declara con la instrucción DimDim:DimDim nombreArreglo(dimensiones) AsAs tipoDato

nombreArreglo: es el nombre de una variabletipoDato: 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 ToTo límiteSuperior

Declaración de arreglosDeclaración de arreglos

Page 8: Arreglos c#

Clase 68

límiteInferior ToTo límiteSuperiorlí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 ToTo 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.

Declaración de arreglosDeclaración de arreglos

Page 9: Arreglos c#

Clase 69

Ejemplos:Dim X(1 To 10) As Single, B() As LongDim Y(20) As Integer, W(10, 20) As DoubleDim Z(-30 To 50) As StringDim A(5, -4 To 10) As BooleanDim C(5, 5, 5, 4) As Long

Observaciones:Los paréntesis (después del nombre de la variable) indican que la variable es un arregloCuántos elementos tiene X? y B? y A? y C?

Declaración de arreglosDeclaración de arreglos

Page 10: Arreglos c#

Clase 610

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 + 1Por ejemplo, en la declaración:

Dim Z(-30 To 50) As String

El tamaño del vector Z es 50 – (–30) + 1 = 81 elementos

Tamaño de un arregloTamaño de un arreglo

Page 11: Arreglos c#

Clase 611

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.

Arreglos EstáticosArreglos Estáticos

Page 12: Arreglos c#

Clase 612

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.

Arreglos DinámicosArreglos Dinámicos

Page 13: Arreglos c#

Clase 613

Sintaxis de la instrucción ReDimReDim:ReDimReDim 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 ToTo límiteSuperiorlímiteInferior es opcional. Si se omite se asume 0. límiteSuperior es requerido.

Arreglos DinámicosArreglos Dinámicos

Page 14: Arreglos c#

Clase 614

Ejemplo:DimDim F()F() As SingleAs Single

......ReDimReDim F(50)F(50)......F(2) = 10.52F(2) = 10.52......ReDimReDim F(1 F(1 ToTo 5, 5)5, 5)......

F(3, 0) = 4*F(1, 1) F(3, 0) = 4*F(1, 1) –– 2.32.3

Arreglos DinámicosArreglos Dinámicos

ReDimReDim permite cambiar el número de elementos

ó el número de dimensiones del arreglo

pero NONO su tipo de datos.

Page 15: Arreglos c#

Clase 615

ReDimReDim inicializa cada elemento del arreglo a su valor por defecto (los numéricos a 0; String a “”; Boolean a False; etc.).ReReDimDim PreservePreserve permite conservar los datos del arreglo.Si utiliza la palabra clave PreservePreserve 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.

Arreglos DinámicosArreglos Dinámicos

Page 16: Arreglos c#

Clase 616

Ejemplo:DimDim A()A() As As IntegerIntegerReDimReDim A(4)A(4)A(2) = 5A(2) = 5ReDimReDim A(3)A(3)A(1) = A(1) = --22A(3) = 8A(3) = 8K = 6K = 6ReDimReDim PreservePreserve A(KA(K))A(KA(K) = ) = --11

Arreglos DinámicosArreglos Dinámicos

AA11

AA44

AA22

AA33

AA

AA55AA66

00

00

00

00

00

00

AA00

Memoria Memoria RAMRAM

55

88

00

--11

00

00

--22

Page 17: Arreglos c#

Clase 617

Ejemplo 1Ejemplo 1Para un vector x de n elementos reales, hallar la suma, el promedio (μ) y la desviación estándar (σ).

( )

11

2

−=∑=

n

xn

ii μ

σ

Page 18: Arreglos c#

Clase 618

Ejemplo 1: Ejemplo 1: Definición de variablesDefinición de variables

Datos de entrada:N Tamaño del vector XXi Elemento i-ésimo del vector X

Datos de salida:Suma Suma de los elementos del vector XProm Promedio de los elementos del vectorDesv Desviación Estándar de los elementos del vector.

Page 19: Arreglos c#

Clase 619

'Declaración de variablesDim N As Integer, X() As Single, I As IntegerDim Suma As Single, Prom As Single, Desv As SingleDim Sum As Single'Lectura de datosN = 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

Ejemplo 1:Ejemplo 1: Código fuenteCódigo fuente

Page 20: Arreglos c#

Clase 620

'Cálculo de la Suma y PromedioSuma = 0For I = 1 To N

Suma = Suma + X(I)Next IIf N > 0 Then Prom = Suma / N'Cálculo de la Desviación EstándarSum = 0For I = 1 To N

Sum = Sum + (X(I) – Prom) ^ 2Next IIf N > 1 Then Desv = Sqr(Sum / (N – 1))

Ejemplo 1:Ejemplo 1: Código fuenteCódigo fuente

Page 21: Arreglos c#

Clase 621

'Mostrar resultadosText1.Text = "Vector Leído:" & vbCrLfFor I = 1 To N

Text1.Text = Text1.Text & "X(" & I & ")= " & _X(I) & vbCrLf

Next IText1.Text = Text1.Text & "Suma = " & Suma & vbCrLfText1.Text = Text1.Text & "Prom = " & Prom & vbCrLfText1.Text = Text1.Text & "Desv = " & Desv & vbCrLf

Ejemplo 1:Ejemplo 1: Código fuenteCódigo fuente

Page 22: Arreglos c#

Clase 622

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

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

=

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

+

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

mnnn

m

m

m

mnnn

m

m

m

mnnn

m

m

m

ccc

ccccccccc

bbb

bbbbbbbbb

aaa

aaaaaaaaa

,2,1,

,32,31,3

,22,21,2

,12,11,1

,2,1,

,32,31,3

,22,21,2

,12,11,1

,2,1,

,32,31,3

,22,21,2

,12,11,1

...............

...

...

...

...............

...

...

...

...............

...

...

...

Page 23: Arreglos c#

Clase 623

Ejemplo 2: Ejemplo 2: Definición de variablesDefinición de variables

Datos de entrada:N Número de filasM Número de columnasAi,j Elementos de la matriz A Bi,j Elementos de la matriz B

Datos de salida:Ci,j Elementos de la matriz C

Page 24: Arreglos c#

Clase 624

Ejemplo 2:Ejemplo 2: AlgoritmoAlgoritmo

Inicio

Terminar

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,jMostrar C

Page 25: Arreglos c#

Clase 625

Devuelve un tipo Long que contiene el subíndice más pequeño disponible para la dimensión indicada de un arreglo.Sintaxis:

LBoundLBound((nombreArreglonombreArreglo, , dimensiondimension))

nombreArreglonombreArreglo: Requerido. Nombre del arreglo.dimensióndimensió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.

Función Función LBoundLBound

Page 26: Arreglos c#

Clase 626

Devuelve un tipo Long que contiene el mayor subíndice disponible para la dimensión indicada de un arreglo.Sintaxis:

UBoundUBound((nombreArreglonombreArreglo, , dimensiondimension))

nombreArreglonombreArreglo: Requerido. Nombre del arreglo.dimensióndimensió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.

Función Función UBoundUBound

Page 27: Arreglos c#

Clase 627

Dim A(1 To 100, 3, -3 To 4) As Integer

InstrucciónInstrucción Valor devueltoValor devueltoLBound(A) LBound(A, 1)LBound(A, 2)LBound(A, 3)UBound(A)UBound(A, 1)UBound(A, 2)UBound(A, 3)UBound(A, 4)

Ejemplos: Ejemplos: Función Función LBoundLBound y y UBoundUBound

110-310010034Error

Page 28: Arreglos c#

Clase 628

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:

EraseErase nombreArreglonombreArreglo

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

Instrucción Instrucción EraseErase

Page 29: Arreglos c#

Clase 629

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

Page 30: Arreglos c#

30

Algoritmos y ProgramaciónAlgoritmos y ProgramaciónClase 6 Clase 6 –– segunda partesegunda parte

Graficación en Visual Basic:Dibujar PuntosDibujar LíneasDibujar CircunferenciasDibujar ElipsesDibujar Texto

Page 31: Arreglos c#

Clase 631

VB permite visualizar gráficos mediante:El Formulario (Form)El control PictureBoxLa Impresora (Printer)

También se puede utilizar controles especializados como Hojas de Excel, Microsoft Chart, etc.

Visualización de gráficosVisualización de gráficos

Page 32: Arreglos c#

Clase 632

Ejemplo:

Visualización de gráficosVisualización de gráficos

Page 33: Arreglos c#

Clase 633

Caso de estudio:Caso de estudio:Cómo graficar una función? Cómo graficar una función?

Escribir un algoritmo que permita graficar la siguiente función f(xf(x)) con x∈[-1,2]:

604.0)9.0(

101.0)3.0(

1)( 22 −+−

++−

=xx

xf

Page 34: Arreglos c#

Clase 634

Graficar una función: Graficar una función: Procedimiento a seguir Procedimiento a seguir Para graficar f(xf(x)) se define la función a través

de un subprograma.

Escalar el PictureBox entre el mínimo y el máximo valor de la función en dicho intervalo.

Dibujar, con una estructura repetitiva, pequeños

trozos de línea para simular la forma suave de

la función, con x ∈[-1,2] en pasos de 0.01

Page 35: Arreglos c#

Clase 635

Graficar una función: Definir Graficar una función: Definir la función la función f(xf(x) )

En el objeto general del Formulario, definir la función de la siguiente forma:

Public Function f(x As Single) As Singlef = 1 / ((x - 0.3) ^ 2 + 0.01) + _

1 / ((x - 0.9) ^ 2 + 0.04) - 6End Function

Page 36: Arreglos c#

Clase 636

Graficar una función: El Graficar una función: El programa para dibujar programa para dibujar

Dim X As Single'Escalar el PictureBoxPicture1.Scale (-1, 100)-(2, -10)'Dibujar los ejes X y YPicture1.DrawWidth = 4Picture1.Line (-1, 0)-(2, 0) 'Eje XPicture1.Line (0, 100)-(0, -10) 'Eje Y'Dibujo de las líneasPicture1.DrawWidth = 1For X = -1 To 2 Step 0.01

Picture1.Line (X, f(X))-(X + 0.01, f(X + 0.01)), _vbBlue

Next X'Dibujar la ecuación de la función f(x)Picture1.PaintPicture Picture2.Picture, 0.5, 95

Page 37: Arreglos c#

Clase 637

Graficar una función: La Graficar una función: La Interfaz Interfaz

Page 38: Arreglos c#

Clase 638

Graficar una función: La Graficar una función: La Interfaz con escala Interfaz con escala

Page 39: Arreglos c#

Clase 639

TareasTareasGraficar para una función f(x), los rectángulos resultantes al aplicarle el método de integración rectangular.Graficar la trayectoria (tiro parabólico) de un proyectil que es disparado con una velocidad inicial V0=20 m/s y un ángulo θ=45º. Considere, además, la resistencia del aire.

V0

θ

Page 40: Arreglos c#

40

Clase 6Clase 6AnexoAnexo

Graficación en Visual Basic:Dibujar PuntosDibujar LíneasDibujar CircunferenciasDibujar ElipsesDibujar Texto

Page 41: Arreglos c#

Clase 641

Graficar una función: Graficar una función: Dibujar la escala Dibujar la escala

Es muy conveniente dibujar las escalas de los ejes en la graficación de una función f(xf(x)).

Picture1.Font.Name = "Courier New"Picture1.Font.Size = 10Picture1.Font.Bold = TrueFor X = -1 To 2 Step 0.5

Picture1.Line (X, 0.75)-(X, -0.75), vbBlackPicture1.CurrentY = -0.75Picture1.CurrentX = X - Picture1.TextWidth( _

Format(X, "0.0")) / 2Picture1.Print Format(X, "0.0")

Next X

Page 42: Arreglos c#

Clase 642

El sistema de coordenadas es una cuadrícula bidimensional que define ubicaciones en la pantalla, en un formulario o en otro control.Las ubicaciones de esta cuadrícula se definen mediante las coordenadas del objeto: (X, Y)(X, Y)

Sistema de CoordenadasSistema de Coordenadas

Page 43: Arreglos c#

Clase 643

El valor de XX es la ubicación del punto sobre el eje x, con la ubicación predeterminada 0 en el extremo izquierdo y creciendo de izquierda a derecha. El valor de YY es la ubicación del punto sobre el eje y, con la ubicación predeterminada 0 en el extremo superior y creciendo de arriba hacia abajo.

Sistema de CoordenadasSistema de Coordenadas

Page 44: Arreglos c#

Clase 644

Sistema de CoordenadasSistema de Coordenadas

Objeto

(0, 0)(0, 0)

++Eje XEje X

++

EEjjee

YY

Propiedad Width

Propiedad Height

((WidthWidth, , HeightHeight))

Page 45: Arreglos c#

Clase 645

La propiedad ScaleModeScaleMode permite definir la unidad de medida de las coordenadas de un objeto.

La unidad de medida por defecto es twiptwip. Un twip es 1/20 de punto de impresora (1.440 twips = 1 pulgada y 567 twips = 1 centímetro).

Otras unidades de medida: Punto, Píxel, Centímetros, Milímetros, Pulgadas, etc.

Estas medidas definen el tamaño de un objeto cuando se imprime. Las distancias físicas reales dentro de la pantalla varían de acuerdo con el tamaño de la pantalla.

Sistema de CoordenadasSistema de Coordenadas

Page 46: Arreglos c#

Clase 646

Modificar el Sistema de Modificar el Sistema de Coordenadas: Método Coordenadas: Método ScaleScaleEl método ScaleScale permite definir un sistema de coordenadas personalizado.La sintaxis es:

objetoobjeto.Scale.Scale ((x1x1,,y1y1))--((x2x2,,y2y2))

objeto Un objeto Form, PictureBox o Printer.x1, y1 Valores Single que indican las coordenadas

horizontal (eje x) y vertical (eje y) que definen la esquina superior izquierda del objeto.

x2, y2 Valores Single que indican las coordenadas horizontal (eje x) y vertical (eje y) que definen la esquina inferior derecha del objeto.

Page 47: Arreglos c#

Clase 647

Método Método ScaleScaleobjetoobjeto.Scale.Scale ((x1x1,,y1y1))--((x2x2,,y2y2))

Objeto

(x1, y1)(x1, y1)

(x2, y2)(x2, y2)

Page 48: Arreglos c#

Clase 648

Método Método ScaleScale: Ejemplo: EjemploPicture1Picture1..ScaleScale ((--100100,,100100))--((100100,,--100100))

((--100, 100)100, 100)

(100, (100, --100)100)

Picture1Picture1 (0, 0)(0, 0)

Centro Centro relativo de relativo de coordenadascoordenadas

Page 49: Arreglos c#

Clase 649

Métodos GráficosMétodos GráficosVB proporciona varios métodos para la creación de gráficos:

ClsCls: Borra todos los gráficos y textoPrintPrint: Presenta textoPSetPSet: Establece el color de un píxel individualPointPoint: Devuelve el color de un punto específicoLineLine: Dibuja una línea, un rectángulo o un cuadro rellenoCircleCircle: Dibuja un círculo, una elipse o un arcoPaintPicturePaintPicture: Dibuja gráficos en ubicaciones arbitrarias

Page 50: Arreglos c#

Clase 650

Propiedades GráficasPropiedades GráficasLas propiedades gráficas son algunas propiedades que de una forma u otra actúan en conjunto con los métodos gráficos:

CurrentXCurrentX: (Single) Devuelve o establece la coordenada horizontal para el siguiente método gráfico o de impresión. No disponible en tiempo de diseño.CurrentYCurrentY: (Single) Devuelve o establece la coordenada vertical para el siguiente método gráfico o de impresión. No disponible en tiempo de diseño.AutoRedrawAutoRedraw: (Boolean) Devuelve o establece el resultado de un método gráfico como gráfico persistente. Un gráfico persistente es un gráfico que no se “borra” cuando se cubre con otra ventana.

Page 51: Arreglos c#

Clase 651

Propiedades GráficasPropiedades GráficasDrawWidthDrawWidth: (1 a 32767) Devuelve o establece el ancho de línea para el resultado de los métodos gráficos. El valor predeterminado es 1, es decir, un píxel de ancho.DrawStyleDrawStyle: (0 a 6) Devuelve o establece un valor que determina el estilo de línea del resultado de métodos gráficos. Sólo tiene efecto si DrawWidth = 1. Estilos:

Sólido (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 Sólido (vbInsideSolid o 6)

Page 52: Arreglos c#

Clase 652

Propiedades GráficasPropiedades GráficasForeColorForeColor: (Long) Devuelve o establece el color de primer plano utilizado para mostrar texto y gráficos en un objeto.FillColorFillColor: (Long) Devuelve o establece el color usado para llenar círculos y cuadros creados con los métodos gráficos Circle y Line.FillStyleFillStyle: (0 a 7) Devuelve o establece el patrón usado para llenar los círculos y los cuadros creados con los métodos gráficos Circle y Line.

Page 53: Arreglos c#

Clase 653

Propiedades GráficasPropiedades GráficasPatrones propiedad FillStyle:

Sólido (vbFSSolid o 0):Transparente (vbFSTransparent o 1):Línea horizontal (vbHorizontalLine o 2):Línea 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):

BackColorBackColor: (Long) Devuelve o establece el color de fondo de un objeto.

Page 54: Arreglos c#

Clase 654

Método Método ClsClsBorra los gráficos y el texto generados en tiempo de ejecución de los controles Form o PictureBox.Sintaxis:

objetoobjeto.ClsClsClsCls no borra los gráficos y texto colocados mientras la propiedad AutoRedrawAutoRedraw es TrueTrue si AutoRedrawAutoRedraw se establece a FalseFalse antes de llamar a ClsCls. Para borrar todo asigne NothingNothing a la propiedad PicturePicture:

SetSet objetoobjeto.PicturePicture = NothingNothingDespués de llamar a ClsCls, las propiedades CurrentXCurrentX y CurrentYCurrentY del objeto se restablecen a 0.

Page 55: Arreglos c#

Clase 655

Método Método PSetPSetEstablece un punto de un objeto Form, PictureBox o Printer a un color especificado.Sintaxis:

objetoobjeto.PsetPset ((X,YX,Y), color), color((X,YX,Y)): Requerido. Valores de tipo Single que indican las coordenadas del punto que se va a dibujar. ColorColor: Opcional. Valor entero de tipo Long que indica el color especificado para el punto.

Cuando se ejecuta PSetPSet, las propiedades CurrentXCurrentX y CurrentYCurrentY se establecen al punto especificado por los argumentos (X, Y).

Page 56: Arreglos c#

Clase 656

Método Método PSetPSet: Ejemplo: EjemploPicture1Picture1..PSetPSet ((5050,,5050), ), vbRedvbRed

((--100, 100)100, 100)

(100, (100, --100)100)

Picture1Picture1

Page 57: Arreglos c#

Clase 657

Método Método PointPointDevuelve, como un valor de tipo Long, el color rojo-verde-azul (RGB) del punto especificado de un objeto Form o un control PictureBox. Sintaxis:

objetoobjeto.PointPoint ((X,YX,Y))((X,YX,Y)): Requerido. Valores de tipo Single que indican las coordenadas del punto.

Si el punto definido por las coordenadas XX e YY está fuera del objeto, el método PointPoint devuelve -1.

Page 58: Arreglos c#

Clase 658

Método Método LineLinePermite dibujar líneas y rectángulos. Sintaxis:objetoobjeto.LineLine (X1,Y1)(X1,Y1)--(X2,Y2),(X2,Y2),color,BFcolor,BF(X1,Y1)(X1,Y1): Opcional. Coordenada del punto inicial para la línea. Si se omite, la línea empieza en la posición indicada por CurrentXCurrentX y CurrentYCurrentY.

(X2,Y2)(X2,Y2): Requerido. Coordenada del punto final para la línea.colorcolor: Opcional. Color de la línea. Si se omite, se usará el valor de la propiedad ForeColorForeColor.

Page 59: Arreglos c#

Clase 659

Método Método LineLineBB: Opcional. Si se incluye, hace que se dibuje un cuadro usando las coordenadas para especificar las esquinas opuestas del cuadro.FF: Opcional. La opción FF especifica que el cuadro se llena con el mismo color utilizado para dibujar el cuadro. No puede usar FF sin BB. Si se utiliza BB sin FF, el cuadro se llena con los valores actuales de FillColorFillColor y FillStyleFillStyle.

Cuando se ejecuta LineLine, las propiedades CurrentXCurrentX y CurrentYCurrentY se establecen al punto final especificado por los argumentos (X2, Y2).

Page 60: Arreglos c#

Clase 660

Método Método LineLine: Ejemplo: EjemploForm1Form1..LineLine (0,0)(0,0)--(100,100),(100,100),vbRedvbRed

Form1Form1..PSetPSet ((--100,0),100,0),vbBluevbBlue

Form1Form1..LineLine --(0,0),(0,0),vbGreenvbGreen

Form1Form1..LineLine --(50,(50,--50),50),vbBlack,BvbBlack,B

Form1Form1..LineLine --(25,100),(25,100),vbRed,BFvbRed,BF

Form1Form1..FillStyleFillStyle = = vbFSSolidvbFSSolid

Form1Form1..LineLine ((--10,10)10,10)--((--50,50), _50,50), _

vbBlack,BvbBlack,B

((--100, 100)100, 100)

(100, (100, --100)100)

Page 61: Arreglos c#

Clase 661

Método Método CircleCircleDibuja un círculo, una elipse o un arco en un objeto. Sintaxis:

objetoobjeto.CircleCircle ((X,YX,Y),),r,color,inic,fin,aspr,color,inic,fin,asp((X,YX,Y)): Requerido. Coordenada del punto central para el círculo, elipse o arco. rr: Requerido. Radio del círculo, elipse o arco.colorcolor: Opcional. Color del contorno del círculo. Si se omite, se usará el valor de la propiedad ForeColorForeColor.inicinic: Opcional. Cuando se dibuja un arco o un círculo o una elipse parcial, inicinic especifica (en radianes) la posición de inicio del arco. El intervalo es de -2π radianes a 2π radianes. El valor predeterminado para inicinic es 0 radianes.

Page 62: Arreglos c#

Clase 662

Método Método CircleCirclefinfin: Opcional. Cuando se dibuja un arco o un círculo o una elipse parcial, finfin especifica (en radianes) la posición de fin del arco. El intervalo es de -2π radianes a 2π radianes. El valor predeterminado para finfin es 2π radianes.

aspasp: Opcional. Indica la relación entre el diámetro vertical y el diámetro horizontal. El valor predeterminado para aspasp es 1, lo que produce un círculo perfecto (no elíptico).

El método CircleCircle siempre dibuja en dirección contraria a las agujas del reloj (positiva).

Page 63: Arreglos c#

Clase 663

Método Método CircleCircleCuando dibuja un círculo o una elipse parcial, si inicinic es negativo, CircleCircle dibujará un radio hasta inicinic y tratará el ángulo como positivo; si finfin es negativo, CircleCircle dibujará un radio hasta finfin y tratará el ángulo como positivo.

Cuando se ejecuta CircleCircle, las propiedades CurrentXCurrentX y CurrentYCurrentY se establecen al punto central especificado por los argumentos (X, Y).

Page 64: Arreglos c#

Clase 664

Método Método CircleCircle: Ejemplo: EjemploForm1Form1..CircleCircle (0,0),50,(0,0),50,vbRedvbRedForm1Form1..CircleCircle (0,0),50,(0,0),50,vbBluevbBlue,,,0.5,,,0.5Form1Form1..ClsClsForm1Form1..CircleCircle (0,0),50,(0,0),50,vbRedvbRed, _, _

0, 3.14160, 3.1416Form1Form1..FillColorFillColor = = vbYellowvbYellowForm1Form1..FillStyleFillStyle = = vbFSSolidvbFSSolidForm1Form1..CircleCircle (0,0),25,(0,0),25,vbRedvbRed, _, _

--0.000001, _0.000001, _--1.57081.5708

((--100, 100)100, 100)

(100, (100, --100)100)

Page 65: Arreglos c#

Clase 665

Método Método PrintPrintDibuja texto en un objeto Form, PictureBox o Printer. Sintaxis:

objetoobjeto.PrintPrint texto texto poscarposcartextotexto: Opcional. Texto que se desea imprimir. poscarposcar: Opcional. Especifica el punto de inserción del carácter siguiente. Utilice un punto y coma (;) para situar el punto de inserción inmediatamente a continuación del último carácter mostrado. Utilice una coma (,) para situar el punto de inserción al principio de la siguiente zona de impresión (cada 14 columnas). Si se omite poscarposcar, el carácter siguiente se imprimirá en la línea siguiente. En cada siguiente línea se restablece la propiedad CurrentXCurrentX a 0.

Page 66: Arreglos c#

Clase 666

Método Método PrintPrintEl método PrintPrint comienza a imprimir a partir del valor de las propiedades CurrentXCurrentX y CurrentYCurrentY.

De forma predeterminada, el método PrintPrint imprime el texto y pasa a la línea siguiente. Si no hay texto, PrintPrintsimplemente salta una línea.

Después de ejecutar el método PrintPrint, las propiedades CurrentXCurrentX y CurrentYCurrentY cambian a la siguiente posición de impresión (La siguiente posición de impresión depende del tipo, tamaño y estilo de la fuente utilizada en el objeto).

Page 67: Arreglos c#

Clase 667

Método Método PrintPrint: Ejemplo: EjemploForm1.Form1.ScaleScale((--100,100)100,100)--(100,(100,--100)100)Form1Form1..PrintPrint "Visual Basic""Visual Basic"Form1Form1..PrintPrintForm1Form1..PrintPrint ""PiPi = ";= ";Form1Form1..PrintPrint 4*4*AtnAtn(1)(1)Form1Form1..ForeColorForeColor = = vbMagentavbMagentaForm1Form1..CurrentXCurrentX = = --100100Form1Form1..CurrentYCurrentY = 100= 100Form1Form1..PrintPrint vbCrLfvbCrLf & "e=", _& "e=", _

2.71828182845905 2.71828182845905 Form1Form1..ClsClsForm1Form1..PrintPrint "Hola""Hola"

((--100, 100)100, 100)

(100, (100, --100)100)

Visual Basic

Pi = 3.14159265358

e= 2.718281828

Hola

Page 68: Arreglos c#

Clase 668

Método Método TextHeightTextHeightDevuelve el alto de una cadena de texto tal y como se imprimiría con la fuente actual de un objeto Form, PictureBoxo Printer. Sintaxis:

objetoobjeto.TextHeight(TextHeight(textotexto))textotexto: Requerido. Una cadena para la que se quiere determinar el alto del texto. Debe ir entre paréntesis. Si el texto contiene retornos de carro, TextHeightTextHeight devuelve el alto de las líneas acumuladas, incluyendo el espacio que hay por encima y por debajo de cada línea.TextHeightTextHeight retorna un valor negativo si el eje YY aumenta de abajo hacia arriba, de lo contrario, retorna un valor positivo.

Page 69: Arreglos c#

Clase 669

Método Método TextWidthTextWidthDevuelve el ancho de una cadena de texto tal y como se imprimiría con la fuente actual de un objeto Form, PictureBoxo Printer. Sintaxis:

objetoobjeto.TextWidth(TextWidth(textotexto))textotexto: Requerido. Una cadena para la que se quiere determinar el ancho del texto. Debe ir entre paréntesis. Si el texto contiene retornos de carro, TextWidthTextWidth devuelve el ancho de la línea más larga. TextWidthTextWidth retorna un valor negativo si el eje XX aumenta de derecha a izquierda, de lo contrario, retorna un valor positivo.

Page 70: Arreglos c#

Clase 670

Método Método PrintPrint: Ejemplo 2: Ejemplo 2Form1.Form1.ScaleScale((--100,100)100,100)--(100,(100,--100)100)Form1.Form1.Font.NameFont.Name = = ""CourierCourier NewNew""Form1.Form1.Font.SizeFont.Size = = 2020Form1.Form1.Font.BoldFont.Bold = = TrueTrueMsgMsg = "ABCDEFG"= "ABCDEFG"Form1Form1..PrintPrint MsgMsgForm1Form1..ClsClsX = X = --Form1.Form1.TextWidth(MsgTextWidth(Msg)/2)/2Y = Y = --Form1.Form1.TextHeight(MsgTextHeight(Msg)/2)/2Form1.Form1.CurrentXCurrentX = X= XForm1.Form1.CurrentYCurrentY = Y= YForm1Form1..PrintPrint MsgMsg

((--100, 100)100, 100)

(100, (100, --100)100)

ABCDEFGABCDEFG

Page 71: Arreglos c#

Clase 671

Método Método PaintPicturePaintPictureDibuja el contenido de un archivo gráfico (.bmp, .wmf, .emf, .cur, .ico o .dib) en un objeto Form, PictureBox o Printer. Sintaxis:

objetoobjeto.PaintPicturePaintPicture imagen, x1, y1imagen, x1, y1

imagenimagen: Requerido. El origen del gráfico que se va a presentar en el objeto. Debe ser la propiedad PicturePicture de un objeto FormForm o control PictureBoxPictureBox. x1, y1x1, y1: Requerido. Coordenada de destino del objeto.

Page 72: Arreglos c#

Clase 672

Instrucción Instrucción SavePictureSavePictureGuarda una imagen ó gráfico en un archivo.Sintaxis:

SavePictureSavePicture imagen,imagen, archivoarchivoimagenimagen: Requerido. La imagen que se desea guardar. Debe ser la propiedad PicturePicture ó ImageImage de un objeto FormForm o control PictureBoxPictureBox. Para guardar el gráfico producido por los métodos gráficos se utiliza la propiedad ImageImage del objetoarchivoarchivo: Requerido. El nombre del archivo gráfico. Puede incluir la ruta. El gráfico se guarda en formato BMP (Mapa de Bits).

Page 73: Arreglos c#

Clase 673

Trabajar con ColoresTrabajar con ColoresUn color se representa mediante un entero de tipo Long y este valor tiene el mismo significado en todos los contextos en los que se especifica un color.

Hay cuatro maneras de especificar un valor de color en tiempo de ejecución:

Usar la función RGBUsar la función QBColorUsar una de las constantes intrínsecas de VBEscribir un valor de color directamente (un número entre 0 y 16777215 (&HFFFFFF))

Page 74: Arreglos c#

Clase 674

Función RGBFunción RGBDevuelve un número entero tipo Long que representa un valor de color RGB.Sintaxis:

RGB(RGB(redred, , greengreen, , blueblue))redred: Requerido. Un número en el intervalo [0,255] que representa el componente rojo del color. greengreen: Requerido. Un número en el intervalo [0,255] que representa el componente verde del color.blueblue: Requerido. Un número en el intervalo [0,255] que representa el componente azul del color.

Page 75: Arreglos c#

Clase 675

Función Función QBColorQBColorDevuelve un tipo Long que representa el código de color RGB correspondiente al número de color especificado.Sintaxis:

QBColor(QBColor(numnum))numnum: Requerido. Un número en el intervalo [0,15] que representa un color según la siguiente tabla:

0: Negro 6: Amarillo 12: Rojo claro1: Azul 7: Blanco 13: Fucsia claro2: Verde 8: Gris 14: Amarillo claro3: Aguamarina 9: Azul claro 15: Blanco brillante4: Rojo 10: Verde claro5: Fucsia 11: Aguamarina claro

Page 76: Arreglos c#

Clase 676

Constantes de ColoresConstantes de ColoresVB define las siguientes constantes de colores:

ConstanteConstante ValorValor ColorColorvbBlack 0vbRed 255 (&HFF)vbGreen 65280 (&HFF00)vbYellow 65535 (&HFFFF) vbBlue 16711680 (&HFF0000)vbMagenta 16711935 (&HFF00FF)vbCyan 16776960 (&HFFFF00)vbWhite 16777215 (&HFFFFFF)