Você está na página 1de 22

Matrices en Visual Basic 2010

Aqu te presentamos el cdigo fuente de un programa para sumar, restar, mostrar diagonal principal, diagonal secundaria, rengln, de una matriz, esperamos que te sirva. Abajo del cdigo hemos colocado la imagen del resultado. Public Class Matrices im M!", "# As $nteger im M%!", "# As $nteger im M&!", "# As $nteger im M"!", "# As $nteger im r As $nteger im c As $nteger Private 'ub (utton)*Clic+!(,-al sender As ',stem..bject, (,-al e As ',stem./ventArgs# 0andles crear.Clic+ im num As 1e2 3andom 4or r 5 6 7o " 4or c 5 6 7o " M!r, c# 5 num.1e8t!)6# M%!r, c# 5 num.1e8t!)6# 1e8t 1e8t /nd 'ub Private 'ub (utton%*Clic+!(,-al sender As ',stem..bject, (,-al e As ',stem./ventArgs# 0andles mostrar.Clic+ matriz).7e8t 5 99 4or c 5 6 7o " 4or r 5 6 7o " matriz).7e8t :5 M!r, c# : vb7ab matriz%.7e8t :5 M%!r, c# : vb7ab 1e8t matriz).7e8t :5 vbCr;f matriz%.7e8t :5 vbCr;f 1e8t /nd 'ub Private 'ub (utton&*Clic+!(,-al sender As ',stem..bject, (,-al e As ',stem./ventArgs# 0andles sumar.Clic+ te8tsuma.7e8t 5 99 im M&!", "# As $nteger im sum As $nteger

4or c 5 6 7o " 4or r 5 6 7o " sum 5 M!r, c# < M%!r, c# M&!r, c# 5 sum 1e8t 1e8t 4or c 5 6 7o " 4or r 5 6 7o " te8tsuma.7e8t :5 M&!r, c# : vb7ab 1e8t te8tsuma.7e8t :5 vbCr;f 1e8t /nd 'ub Private 'ub (utton"*Clic+!(,-al sender As ',stem..bject, (,-al e As ',stem./ventArgs# 0andles restar.Clic+ te8tresta.7e8t 5 99 im M"!", "# As $nteger im rest As $nteger 4or c 5 6 7o " 4or r 5 6 7o " rest 5 M!r, c# = M%!r, c# M"!r, c# 5 rest 1e8t 1e8t 4or c 5 6 7o " 4or r 5 6 7o " te8tresta.7e8t :5 M"!r, c# : vb7ab 1e8t te8tresta.7e8t :5 vbCr;f 1e8t /nd 'ub Private 'ub (utton>*Clic+!(,-al sender As ',stem..bject, (,-al e As ',stem./ventArgs# 0andles renglon.Clic+ mostrarrenglon.7e8t 5 99 im renglon As $nteger 5 te8trenglon.7e8t im r As $nteger $f renglon 5 6 .r renglon ? > 7hen Message(o8.'ho2!9/l n@mero estA fuera de la matriz9# /lse 4or r 5 6 7o " mostrarrenglon.7e8t :5 M!r, renglon = )# : 9, 9 1e8t /nd $f /nd 'ub

Private 'ub diagonalprin*Clic+!(,-al sender As ',stem..bject, (,-al e As ',stem./ventArgs# 0andles diagonalprin.Clic+ te8tdiagonalprin.7e8t 5 99 4or r 5 6 7o " 4or c 5 6 7o " $f !r 5 c# 7hen te8tdiagonalprin.7e8t :5 M!r, c# : 9, 9 /nd $f 1e8t 1e8t /nd 'ub Private 'ub Clear*Clic+!(,-al sender As ',stem..bject, (,-al e As ',stem./ventArgs# 0andles Clear.Clic+ matriz).7e8t 5 99 matriz%.7e8t 5 99 te8tsuma.7e8t 5 99 te8tresta.7e8t 5 99 te8trenglon.7e8t 5 99 mostrarrenglon.7e8t 5 99 te8tdiagonalprin.7e8t 5 99 te8tdiagonalsec.7e8t 5 99 /nd 'ub Private 'ub diagonalsec*Clic+!(,-al sender As ',stem..bject, (,-al e As ',stem./ventArgs# 0andles diagonalsec.Clic+ te8tdiagonalsec.7e8t 5 99 4or r 5 6 7o " 4or c 5 6 7o " $f !r < c 5 "# 7hen te8tdiagonalsec.7e8t :5 M!r, c# : 9, 9 /nd $f 1e8t 1e8t /nd 'ub /nd Class 3esultado !la posicin de los botones , cajas de te8to son a criterio personal#B

Arrays(Arreglos) Que es un Array?: En programacin, una matriz o vector (llamados en ingls arrays) es una zona de almacenamiento continuo, que contiene una serie de elementos del mismo tipo, los elementos de la matriz. Desde el punto de vista lgico una matriz se puede ver como un conjunto de elementos ordenados en fila (o filas y columnas si tuviera dos dimensiones). Ejemplo:

Donde el 0 es la primera posicin y el 9 es la ultima del ndice(formando una fila), si ingresamos el numero 10 se almacenar! en la posicin ", si ingresamos # se almacenara en la posicin 1, y asi sucesivamente . Ejemplo $rafico:

%omo se declara un vector en &isual 'asic (." )ormula Dim *om+re Del &ector o ,atriz( rimer !alor "o #ltimo !alor) As "i$o De Dato Ejemplo: Dim )ila(1 "o %) As &nteger Donde: Nombre Del Vector o Matriz: 'ila Primer Valor: 1 Ultimo Valor: % Tipo De Dato: &nteger

Prctica !isual (asic )*0

Ejercicio 1: Escribir un programa en Visual Basic que lea N nmeros, calcule la media aritmtica de los mismos y muestre los nmeros ledos que son mayores que la media calculada. Se debe crear: 1 CommandButton 1 TextBox 5 abel 1 istBox

Te debe quedar asi

!qui esta el codigo "#arle doble clic$ al CommandButton e introducir lo siguiente% Private Sub Command&'Clic$"% ' eclaramos el vector del 1 al 1000 im (umeros"1 !o 1000% "s #nte$er '"tra%amos los numeros en un !e&tBo& ' lue$o lo %asamos a la variable N ( ) *al"Text&% 'Contamos desde el numeros (ue in$resamos en !e&tBo& )or + ) & !o ( (umeros"+% ) ,nputBox"-(umero - . +% Suma ) Suma / (umeros"+% Ne&t 0rom ) Suma 1 ( abel0 ) 0rom )or + ) 1 !o ( #* (umeros"+% 2 0rom !+en 'En es%a,ol es "$re$ar Elementos-"dd#tem. en el evento /ist1 ist&.!dd,tem (umeros"+% End #* Ne&t End Sub

Ejercicio 2
Escribir un programa en Visual Basic que lea &3 nmeros que corresponden a los elementos de un 4ector y determine y muestre el mayor y menor de ellos. Se debe crear:

1 CommandButton 2 TextBox 2 abel Te debe quedar as

!qu esta el c5digo "#arle doble clic$ al CommandButton e introducir lo siguiente% Private Sub Command&'Clic$"% ' eclaramos el vector del 1 al 120 im *ector"1 !o 20% "s #nte$er im 6ayor "s #nte$er im 6enor "s #nte$er )or ,ndice ) 1 !o 10 *ector",ndice% ) ,nputBox"-(umero - . ,ndice% Ne&t '/eemos el %rimer dato in$resado en la %osicion '1' del indice 6ayor ) *ector"1% )or ,ndice ) 1 !o 10 #* *ector",ndice% 2 6ayor !+en 6ayor ) *ector",ndice% End #* Ne&t 6enor ) 6ayor )or ,ndice ) 1 !o 10 #* *ector",ndice% 7 6enor !+en 6enor ) *ector",ndice% End #*

Ne&t Text& ) 6ayor Text8 ) 6enor End Sub

Ejercicio 0
Escribir un programa en Visual Basic que permita cargar 1N1 nmeros en un 4ector 1V1 y luego muestre la cantidad de elementos de 1V1 que son nmeros pares y la cantidad de elementos de 1V1 que son mayores que 100 Se debe crear: 1 CommandButton 1 TextBox 0 abel Te debe quedar as

!qu esta el c5digo "#arle doble clic$ al CommandButton e introducir lo siguiente% Private Sub Command&'Clic$"% im *ector"1 !o 1000% "s #nte$er

im 0ares, 6ayores "s #nte$er ( ) Val"Text&% )or ,ndice ) 1 !o ( *ector",ndice% ) ,nputBox"1 ato 1 2 ,ndice% #* *ector",ndice% Mod 2 ) 0 !+en 0ares ) 0ares / 1 End #* #* *ector",ndice% 2 100 !+en 6ayores ) 6ayores / 1 End #* Ne&t abel8 ) 1Cantidad de %ares 1 . 0ares abel9 ) 1Ma'ores (ue 100 1 . 6ayores End Sub Ejercicio 3 :acer un programa en Visual Basic que lea dos 4ectores de 1N1 elementos cada uno y cree y ordene ascendentemente un tercer 4ector cuyos elementos sean los elementos de los 2 4ectores leidos o que 4a a ;acer dic;o programa es leer el 4ector <!< y <B< *ector ! ' ' ' => =&= ?= *ector B ' ' ' =@ =A =B= lo que ;ace es unirlo el 4ector <!< y <B< ' ' ' '' ' => =& =? =@ =A =B=

uego de ;aberlos unidos los 4extores <!< y <B<, los ordena lo que ;ace es unirlo el 4ector <!< y <B< ' ' ' '' ' => =& =? =@ =A =B= Se debe crear: 1 CommandButton 1 TextBox 2 abel 1 istBox *ectores <!< y <B< ordenados ' ' ' '' ' =& =? =A => =B =@=

Te debe quedar asi

Bien el algoritmo en Visual Basic es el siguiente: Private Sub Command&'Clic$"% im !"1 !o 50% "s #nte$er im B"1 !o 50% "s #nte$er im !B"1 !o 100% "s #nte$er ( ) *al"Text&% ' '4' es el indice (ue cuenta la cantidad de datos in$resados )or + ) 1 !o ( 'Este es el vector '"' '#n$resamos esn '"'5 67 1 ' 3 !"+% ) ,nputBox"-*ector !"- . + . -% ) -% Ne&t )or + ) 1 !o ( 'Este el vector 'B' '#n$resamos esn '"'5 87 9 ' : B"+% ) ,nputBox"-*ector B"- . + . -% ) -% Ne&t ';nimos el vector '"' ' 'B' )or + ) 1 !o ( 'Este el vector 'B'

'Pasamos los n umeros in$resados en el vector '"' en el vector '"B' (ue es la ';nion de los dos vectores "B-4. < "-4. ' 'N' es el numero in$resado en el !e&tBo& %or ejem%lo si %onemos en 'N' un 0 '/a 'N' sera el limite (ue se lle$ara el indice '4' lo cual '4' debe lle$ar al 'numero 0 (ue es 'N'7 en este caso %ara unir 'B' con '"' (ue en el vector '"B' ''a almaceno los numeros del vector '"'7 lo (ue va a +acer '"B-4 = N.' es em%e>ar 'en el indice '4' %or el 1 ' sumar 0 de la variable 'N'7 ' seria5 ' ?Posicion '?4? ?N? ?<? ?4 = N '?1? = ?0? ?<? ?3 '?2? = ?0? ?<? ?5 '?0? = ?0? ?<? ?9 !B"+ / (% ) B"+% Ne&t 'Metodo de la burbuja ' 'M' es la ultima %osicion 6)(/( ' onde 'N' vbale 5 ' al sumarlos dos veces M < N = N <@ M < 5 = 5 <@ M < 10 ' 1 +asta el 10 A 1 )or 0osicion ) 1 !o 6 C 1 Dor + ) 1 !o 6 C 1 #* !B"+% 2 !B"+ / 1% !+en !uxiliar ) !B"+% !B"+% ) !B"+ / 1% !B"+ / 1% ) !uxiliar End #* Ne&t Ne&t ' el 1 +asta el 10 )or + ) 1 !o 6 ist&.!dd,tem !B"+% Ne&t End Sub BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB BBBBBBBBBB En los siguientes eEercicios solo por tu cuenta crearas el Formulario en Visual Basic 9C0

Ejercicio 5 Se dispone de un vector 1!1 de 00 numeros reales distintos de cero. Escribir un programa en Visual Basic para crear un Vector 1D1 en los que todos sus elementos resulten de di4idir los elementos del 4ector 1!1 por el elemento !-E., siendo E un 4alor dado. El Formulario debe quedarte asi

Codigo 'Fec+o B' C'&'mu& Private Sub Command&'Clic$"% 'Vectores im T"& !o &33% "s ouble im G"& !o &33% "s ouble + ) *al"T&% )or ( ) & !o H T"(% ) ,nputBox"-(umero: - . (% 'Si en el vector ! es i$ual a cero #* T"(% ) 3 !+en 6sgBox "-(o puede ser cero-% ' ecrementamos el indice ()(C& End #* Ne&t )or ( ) 1 !o 5 G"(% ) T"(% 1 T"+%

Ne&t )or ( ) 1 !o 5 ist&.!dd,tem T"(% ist8.!dd,tem G"(% Ne&t End Sub Ejercicio 9 Escribir un programa en Visual Basic que cree un 4ector de 20 numeros enteros, los ordene ascendentemente -de menor a ma'or. y decida si un numero 1N1 se encuentra entre la posicion 1i1 y la posicion 1j1 del 4ector ya ordenado. os 4alores de 1N17 1i1 ' 1j1 deben ser leidos por teclado. Te debe quedar asi

Codigo: Private Sub Command&'Clic$"% 'vector im *"& !o 10% "s #nte$er 'Es el numero donde esta en dic+as %osiones ( ) *al"Text&% 'PGsicion 1 i ) *al"Text8% 'Posicion 2 E ) *al"Text9%

)or ,ndice ) 1 !o 10 *",ndice% ) ,nputBox"-(umero: - . ,ndice% Ne&t )or ,ndice!ux ) 1 !o 8 )or ,ndice ) 1 !o 8 #* *",ndice% and *",ndice / 1% !+en !uxiliar ) *",ndice% *",ndice% ) *",ndice / 1% *",ndice / 1% ) !uxiliar End #* Ne&t Ne&t Dor ,ndice ) 1 !o 10 ist&.!dd,tem *",ndice% Ne&t !cceder ) 0 )or ,ndice ) i !o E #* *",ndice% ) ( !+en !cceder ) 1 0osicion ) ,ndice End #* Ne&t #* !cceder ) 1 !+en 6sgBox "-Se encuentra en la posicion: - . 0osicion% Else 6sgBox "-no se encuentra-% End #* End Sub Ejercicio : Escribir un programa en Visual Basic que cree una matriI cuadrada de (x( y 4eriFique si la matriI es o no simtrica. Te debe quedar as

#ale doble clicE al CommandButton y escribe el siguiente c5digo Private Sub Command&'Clic$"% im 6atriI"1 !o 10, 1 !o 10. "s #nte$er o ( ) ,nputBox"1N < 1. /oo% ;ntil ( 2 0 "nd ( 7 11 )or Dila ) 1 !o ( )or Columna ) 1 !o ( 6atriI"Dila, Columna% ) ,nputBox"1 ato 1% Ne&t Ne&t 0aso ) 0 'Es un SHitc+-Es Booleano 0 ' 1.7 su *uncion %rinci%al es (ue si cum%le la condiciIn 'En este caso esta en cero %or(ue no se +a cum%lido una condiciIn )or Dila ) 1 !o ( )or Columna ) 1 !o ( #* 6atriI"Dila, Columna% 72 6atriI"Columna, Dila% !+en 0aso ) & 'Paso se le asi$na 1 %or(ue la condicion es verdadera End #* Ne&t Ne&t #* 0aso ) 1 !+en abel& ) 1No es simJtrica1 Else 'Si Paso es 0 abel& ) 1Si es simJtrica1 End #* End Sub ,ngrese lo siguiente para que te apareIca 1Si es simJtrica1 =3=A=&= @= =A=&=B=3=

=&=B=8=8= =@=3=8=9=

Ejercicio 10
Escribir un programa en Visual Basic que cree una matriI de N&N y calcule y muestre: ". a suma de los elementos que estJn por encima de la diagonal principal. B. a suma de los elementos que estJn por debaEo de la diagonal principal. C. a suma de los elementos que estJn en la diagonal principal y . a suma de los elementos que estJn en la diagonal secundaria. Se debe crear: 1 CommandButton 1 TextBox 5 abel "Con BoderSt'le &C)i&ed Sin$le% Te debe quedar as

#ale doble clicE al CommandButton y escribe el siguiente c5digo Private Sub Command&'Clic$"% im 6atriI"1 !o 100, 1 !o 100% im Suma& "s #nte$er im Suma8 "s #nte$er im Suma9 "s #nte$er

im Suma? "s #nte$er ( ) Val"Text&% )or Dila ) 1 !o ( )or Columna ) 1 !o ( 6atriI"Dila, Columna% ) ,nputBox"1 ato1% #* Dila ) Columna !+en Suma& ) Suma& / 6atriI"Dila, Columna% Else#* Dila 7 Columna !+en Suma8 ) Suma8 / 6atriI"Dila, Columna% Else Suma9 ) Suma9 / 6atriI"Dila, Columna% End #* #* )ila / Columna ) ( / 1 !+en Suma? ) Suma? / 6atriI"Dila, Columna% End #* Ne&t Ne&t 'Kes%uestas abel8 ) 1/a suma de la dia$onal %rinci%al 1 . Suma& abel9 ) 1/a suma (ue est %or encima en la dia$onal %rinci%al 1 . Suma8 abel? ) 1/a suma (ue est %or debajo de la dia$onal %rinci%al 1 . Suma9 abelH ) 1/a suma (ue est en la dia$onal secundaria 1 . Suma? End Sub

Ejercicio 12
Escribir un programa en Visual Basic que permita llenar con 1L1 y 1M1 una matriI 0&0 y luego inspeccione los 4alores de sus elementos y diga 1N"N"KMN /"S 'L'1 si en cualquiera de sus Filas, columnas o diagonales ;ay 0 1L1, o 1N"N"KMN las 'M'1 en caso de que los 4alores sean 1M1, o 1EMP"!E1 sino se cumple ninguna de las condiciones anteriores. Este es el Famoso Euego llamado la V#EO" o como en otros lugares !#C !"C !ME 0ara eso debemos crear una 1Matri> de Controles1, lo que signiFica que debemos crear 8 4eces un !EL!1 Como Creamos un TextBox se muestra grJFicamente.

e damos clic$ derec;o del Mouse y nos saldrJ el siguiente cuadro lo cual sale una opci5n que dice co%iarC

!;ora acercamos el cursor en el espacio del Formulario le damos clic$ derec;o y pegar. K lo mJs FJcil apretamos la tecla Ctrl y la tecla * las dos "teclas a la 4eI%

uego de ;aberle dado pegar te 4a a salir un cuadro que te dice lo siguiente: -La existe un control llamado Text& M#eseas crear una matriI de controlesNes das clic$ en S# o en "ce%tar Creas @ Text& & abels y un CommandButton El Formulario debe quedarte as

#ale doble clic$ al CommandButton y escribe el siguiente codigo Private Sub Command&'Clic$"% im 6"& !o 9, & !o 9% "s Strin$ 6"&, &% ) Text&"3% 6"&, 8% ) Text&"&% 6"&, 9% ) Text&"8% 6"8, &% ) Text&"9% 6"8, 8% ) Text&"?% 6"8, 9% ) Text&"H% 6"9, &% ) Text&"A% 6"9, 8% ) Text&">% 6"9, 9% ) Text&"B% )or F ) & !o 9 #* 6"F, &% ) 6"F, 8% "nd 6"F, 8% ) 6"F, 9% !+en abel& ) -Oanaron las - . 6"F, &% End #* Ne&t )or c ) & !o 9

#* 6"&, c% ) 6"8, c% "nd 6"8, c% ) 6"9, c% !+en abel& ) 1Nanaron las 1 . 6"&, c% End #* Ne&t #* 6"&, &% ) 6"8, 8% "nd 6"8, 8% ) 6"9, 9% !+en abel& ) 1Nanaron las 1 . 6"&, &% End #* #* 6"&, 9% ) 6"8, 8% "nd 6"8, 8% ) 6"9, &% !+en abel& ) 1Nanaron las 1 . 6"&, &% End #* )or F ) & !o 9 )or c ) & !o 9 #* 6"c, F% 72 6"F, c% !+en abel& ) 1Em%ate1 End #* Ne&t Ne&t End Sub

Você também pode gostar