Posted by :
Unknown
viernes, 7 de diciembre de 2012
Teoria
Arrays(Arreglos)
¿Que es un Array?: En programación, una matriz o vector (llamados en inglés 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 lógico 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 posición y el 9 es la ultima del Indice(formando una fila), si ingresamos el numero 10 se almacenará en la posición 0, si ingresamos 8 se almacenara en la posición 1, y asi sucesivamente . Ejemplo Grafico:
Formula
Dim Nombre Del Vector o Matriz(Primer Valor To Ultimo Valor) As Tipo De Dato
Ejemplo:
Dim Fila(1 To 5) As Integer
Donde:
Nombre Del Vector o Matriz: Fila
Primer Valor: 1
Ultimo Valor: 5
Tipo De Dato: Integer
Práctica
Visual Basic 6.0
Ejercicio 1:
Escribir un programa en Visual Basic que lea N números, calcule la media aritmética de los mismos y muestre los números leídos que son mayores que la media calculada.
Se debe crear:
1 CommandButton
1 TextBox
5 Label
1 ListBox
Te debe quedar asi
Aqui esta el codigo (Darle doble click al CommandButton e introducir lo siguiente)
Private Sub Command1_Click()
'Declaramos el vector del 1 al 1000
Dim Numeros(1 To 1000) As Integer
'Atrapamos los numeros en un TextBox y luego lo pasamos a la variable N
N = Val(Text1)
'Contamos desde el numeros que ingresamos en TextBox
For K = 1 To N
Numeros(K) = InputBox("Numero " & K)
Suma = Suma + Numeros(K)
Next
Prom = Suma / N
LabelP = Prom
For K = 1 To N
If Numeros(K) > Prom Then
'En español es Agregar Elementos(AddItem) en el evento List1
List1.AddItem Numeros(K)
End If
Next
End Sub
Ejercicio 2
Escribir un programa en Visual Basic que lea 10 números que corresponden a los elementos de un vector y determine y muestre el mayor y menor de ellos.
Se debe crear:
1 CommandButton
2 TextBox
2 Label
Te debe quedar así
Aquí esta el código (Darle doble click al CommandButton e introducir lo siguiente)
Private Sub Command1_Click()
'Declaramos el vector del 1 al 120
Dim Vector(1 To 20) As Integer
Dim Mayor As Integer
Dim Menor As Integer
For Indice = 1 To 10
Vector(Indice) = InputBox("Numero " & Indice)
Next
'Leemos el primer dato ingresado en la posicion '1' del indice
Mayor = Vector(1)
For Indice = 1 To 10
If Vector(Indice) > Mayor Then
Mayor = Vector(Indice)
End If
Next
Menor = Mayor
For Indice = 1 To 10
If Vector(Indice) < Menor Then
Menor = Vector(Indice)
End If
Next
Text1 = Mayor
Text2 = Menor
End Sub
Ejercicio 3
Escribir un programa en Visual Basic que permita cargar "N" números en un vector "V" y luego muestre la cantidad de elementos de "V" que son números pares y la cantidad de elementos de "V" que son mayores que 100
Se debe crear:
1 CommandButton
1 TextBox
3 Label
Te debe quedar así
Aquí esta el código (Darle doble click al CommandButton e introducir lo siguiente)
Private Sub Command1_Click()
Dim Vector(1 To 1000) As Integer
Dim Pares, Mayores As Integer
N = Val(Text1)
For Indice = 1 To N
Vector(Indice) = InputBox("Dato " & Indice)
If Vector(Indice) Mod 2 = 0 Then
Pares = Pares + 1
End If
If Vector(Indice) > 100 Then
Mayores = Mayores + 1
End If
Next
Label2 = "Cantidad de pares " & Pares
Label3 = "Mayores que 100 " & Mayores
End Sub
Ejercicio 4
Hacer un programa en Visual Basic que lea dos vectores de "N" elementos cada uno y cree y ordene ascendentemente un tercer vector cuyos elementos sean los elementos de los 2 vectores leidos
Lo que va a hacer dicho programa es leer el vector 'A' y 'B'
Vector A Vector B lo que hace es unirlo el vector 'A' y 'B'
_ _ _ _ _ _ _ _ _ _ _ _
|7 |1| 4| |9 |6 |8| |7 |1 |4 |9 |6 |8|
Luego de haberlos unidos los vextores 'A' y 'B', los ordena
lo que hace es unirlo el vector 'A' y 'B' Vectores 'A' y 'B' ordenados
_ _ _ _ _ _ _ _ _ _ _ _
|7 |1 |4 |9 |6 |8| |1 |4 |6 |7 |8 |9|
Se debe crear:
1 CommandButton
1 TextBox
2 Label
1 ListBox
Te debe quedar asi
Bien el algoritmo en Visual Basic es el siguiente:
Private Sub Command1_Click()
Dim A(1 To 50) As Integer
Dim B(1 To 50) As Integer
Dim AB(1 To 100) As Integer
N = Val(Text1)
' 'K' es el indice que cuenta la cantidad de datos ingresados
For K = 1 To N 'Este es el vector 'A'
'Ingresamos esn 'A': 7, 1 y 4
A(K) = InputBox("Vector A(" & K & ") = ")
Next
For K = 1 To N 'Este el vector 'B'
'Ingresamos esn 'A': 9, 6 y 8
B(K) = InputBox("Vector B(" & K & ") = ")
Next
'Unimos el vector 'A' y 'B'
For K = 1 To N 'Este el vector 'B'
'Pasamos los n umeros ingresados en el vector 'A' en el vector 'AB' que es la
'Union de los dos vectores
AB(K) = A(K)
' 'N' es el numero ingresado en el TextBox por ejemplo si ponemos en 'N' un 3
'La 'N' sera el limite que se llegara el indice 'K' lo cual 'K' debe llegar al
'numero 3 que es 'N', en este caso para unir 'B' con 'A' que en el vector 'AB'
'ya almaceno los numeros del vector 'A', lo que va a hacer 'AB(K + N)' es empezar
'en el indice 'K' por el 1 y sumar 3 de la variable 'N', y seria:
' |Posicion
'|K| |N| |=| |K + N
'|1| + |3| |=| |4
'|2| + |3| |=| |5
'|3| + |3| |=| |6
AB(K + N) = B(K)
Next
'Metodo de la burbuja
' 'M' es la ultima posicion
M = N + N
' Donde 'N' vbale 5 y al sumarlos dos veces M = N + N => M = 5 + 5 => M = 10
' 1 hasta el 10 - 1
For Posicion = 1 To M - 1
For K = 1 To M - 1
If AB(K) > AB(K + 1) Then
Auxiliar = AB(K)
AB(K) = AB(K + 1)
AB(K + 1) = Auxiliar
End If
Next
Next
'Del 1 hasta el 10
For K = 1 To M
List1.AddItem AB(K)
Next
End Sub
________________________________________________________________________________
En los siguientes ejercicios solo por tu cuenta crearas el formulario en Visual Basic 6.0
Ejercicio 5
Se dispone de un vector "T" de 30 numeros reales distintos de cero. Escribir un programa en Visual Basic para crear un Vector "Q" en los que todos sus elementos resulten de dividir los elementos del vector "T" por el elemento T(k), siendo k un valor dado.
El formulario debe quedarte asi
Codigo
'Hecho By Cyxymux
Private Sub Command1_Click()
'Vectores
Dim T(1 To 100) As Double
Dim Q(1 To 100) As Double
K = Val(T1)
For N = 1 To 5
T(N) = InputBox("Numero: " & N)
'Si en el vector T es igual a cero
If T(N) = 0 Then
MsgBox ("No puede ser cero")
'Decrementamos el indice
N = N - 1
End If
Next
For N = 1 To 5
Q(N) = T(N) / T(K)
Next
For N = 1 To 5
List1.AddItem T(N)
List2.AddItem Q(N)
Next
End Sub
Ejercicio 6
Escribir un programa en Visual Basic que cree un vector de 20 numeros enteros, los ordene ascendentemente (de menor a mayor) y decida si un numero "N" se encuentra entre la posicion "i" y la posicion "j" del vector ya ordenado. Los valores de "N", "i" y "j" deben ser leidos por teclado.
Te debe quedar asi
Codigo:
Private Sub Command1_Click()
'vector
Dim V(1 To 10) As Integer
'Es el numero donde esta en dichas posiones
N = Val(Text1)
'Pôsicion 1
i = Val(Text2)
'Posicion 2
j = Val(Text3)
For Indice = 1 To 10
V(Indice) = InputBox("Numero: " & Indice)
Next
For IndiceAux = 1 To 9
For Indice = 1 To 9
If V(Indice) and V(Indice + 1) Then
Auxiliar = V(Indice)
V(Indice) = V(Indice + 1)
V(Indice + 1) = Auxiliar
End If
Next
Next
For Indice = 1 To 10
List1.AddItem V(Indice)
Next
Acceder = 0
For Indice = i To j
If V(Indice) = N Then
Acceder = 1
Posicion = Indice
End If
Next
If Acceder = 1 Then
MsgBox ("Se encuentra en la posicion: " & Posicion)
Else
MsgBox ("no se encuentra")
End If
End Sub
Ejercicio 8
Escribir un programa en Visual Basic que cree una matriz cuadrada de NxN y verifique si la matriz es o no simétrica.
Te debe quedar así
Dale doble click al CommandButton y escribe el siguiente código
Private Sub Command1_Click()
Dim Matriz(1 To 10, 1 To 10) As Integer
Do
N = InputBox("N = ")
Loop Until N > 0 And N < 11
For Fila = 1 To N
For Columna = 1 To N
Matriz(Fila, Columna) = InputBox("Dato ")
Next
Next
Paso = 0 'Es un Switch(Es Booleano 0 y 1), su funcion principal es que si cumple la condición
'En este caso esta en cero porque no se ha cumplido una condición
For Fila = 1 To N
For Columna = 1 To N
If Matriz(Fila, Columna) <> Matriz(Columna, Fila) Then
Paso = 1 'Paso se le asigna 1 porque la condicion es verdadera
End If
Next
Next
If Paso = 1 Then
Label1 = "No es simétrica"
Else
'Si Paso es 0
Label1 = "Si es simétrica"
End If
End Sub
|0|6|1| 9|
|6|1|8|0|
|1|8|2|2|
|9|0|2|3|
Ejercicio 10
Escribir un programa en Visual Basic que cree una matriz de NxN y calcule y muestre: A) La suma de los elementos que están por encima de la diagonal principal. B) La suma de los elementos que están por debajo de la diagonal principal. C) La suma de los elementos que están en la diagonal principal y D) La suma de los elementos que están en la diagonal secundaria.
Se debe crear:
1 CommandButton
1 TextBox
5 Label (Con BoderStyle 1-Fixed Single)
Te debe quedar así
Dale doble click al CommandButton y escribe el siguiente código
Private Sub Command1_Click()
Dim Matriz(1 To 100, 1 To 100)
Dim Suma1 As Integer
Dim Suma2 As Integer
Dim Suma3 As Integer
Dim Suma4 As Integer
N = Val(Text1)
For Fila = 1 To N
For Columna = 1 To N
Matriz(Fila, Columna) = InputBox("Dato")
If Fila = Columna Then
Suma1 = Suma1 + Matriz(Fila, Columna)
ElseIf Fila < Columna Then
Suma2 = Suma2 + Matriz(Fila, Columna)
Else
Suma3 = Suma3 + Matriz(Fila, Columna)
End If
If Fila + Columna = N + 1 Then
Suma4 = Suma4 + Matriz(Fila, Columna)
End If
Next
Next
'Respuestas
Label2 = "La suma de la diagonal principal " & Suma1
Label3 = "La suma que está por encima en la diagonal principal " & Suma2
Label4 = "La suma que está por debajo de la diagonal principal " & Suma3
Label5 = "La suma que está en la diagonal secundaria " & Suma4
End Sub
Ejercicio 12
Escribir un programa en Visual Basic que permita llenar con "X" y "O" una matriz 3x3 y luego inspeccione los valores de sus elementos y diga "GANARON LAS 'X'" si en cualquiera de sus filas, columnas o diagonales hay 3 "X", o "GANARON las 'O'" en caso de que los valores sean "O", o "EMPATE" sino se cumple ninguna de las condiciones anteriores.
Este es el famoso juego llamado la VIEJA o como en otros lugares TIC TAC TOE
Para eso debemos crear una "Matriz de Controles", lo que significa que debemos crear 9 veces un TEXT1
Como se muestra gráficamente.
Creamos un TextBox
Para eso debemos crear una "Matriz de Controles", lo que significa que debemos crear 9 veces un TEXT1
Como se muestra gráficamente.
Creamos un TextBox
Le damos click derecho del Mouse y nos saldrá el siguiente cuadro lo cual sale una opción que dice copiar.
Ahora acercamos el cursor en el espacio del formulario le damos click derecho y pegar. O lo más fácil apretamos la tecla Ctrl y la tecla V las dos (teclas a la vez)
Luego de haberle dado pegar te va a salir un cuadro que te dice lo siguiente:
"Ya existe un control llamado Text1 ¿Deseas crear una matriz de controles?"
Les das click en SI o en Aceptar
Creas 9 Text1
1 Labels
y un CommandButton
El formulario debe quedarte así
Dale doble click al CommandButton y escribe el siguiente codigo
Private Sub Command1_Click()
Dim M(1 To 3, 1 To 3) As String
M(1, 1) = Text1(0)
M(1, 2) = Text1(1)
M(1, 3) = Text1(2)
M(2, 1) = Text1(3)
M(2, 2) = Text1(4)
M(2, 3) = Text1(5)
M(3, 1) = Text1(6)
M(3, 2) = Text1(7)
M(3, 3) = Text1(8)
For f = 1 To 3
If M(f, 1) = M(f, 2) And M(f, 2) = M(f, 3) Then
Label1 = "Ganaron las " & M(f, 1)
End If
Next
For c = 1 To 3
If M(1, c) = M(2, c) And M(2, c) = M(3, c) Then
Label1 = "Ganaron las " & M(1, c)
End If
Next
If M(1, 1) = M(2, 2) And M(2, 2) = M(3, 3) Then
Label1 = "Ganaron las " & M(1, 1)
End If
If M(1, 3) = M(2, 2) And M(2, 2) = M(3, 1) Then
Label1 = "Ganaron las " & M(1, 1)
End If
For f = 1 To 3
For c = 1 To 3
If M(c, f) <> M(f, c) Then
Label1 = "Empate"
End If
Next
Next
End Sub
Información relacionada
- Ir a inicio »
- Visual Basic 6.0 »
- Ejercicios Resueltos de Vectores y Matrices en Visual Basic 6.0
Muchas Gracias por la informacion!!
ResponderEliminarDe nada
Eliminarexcelente pagina, muchas gracias por la informacion
ResponderEliminarDe nada
EliminarMuy buena info, graciasss!!!!
ResponderEliminarDe nada
EliminarMi visual es 2005, que le tengo que modificar a este codigo para que me corra en el mio
ResponderEliminarEn esta pagina te explica como utilizar codigo de Visual Basic 6.0 en Visual 2005.
Eliminarhttp://msdn.microsoft.com/es-es/library/kehz1dz1(v=vs.80).aspx
pueden acolitarme haciendo este programa
ResponderEliminarejercicio:
menu
1. ingreso de datos(matrices)
2. ordenar una matriz sin que se repitan sus elementos
3. impresion de las matrices original y resultante
si pueden ayudarme se les agradece mucho..
Muy buena explicacion ...muy descriptiva ...mejor aun que los videos gracias por compartirlo
ResponderEliminarDe nada :)
Eliminarhey..!! gracias por la informacion, me es muy util pero tengo una pregunta, como hago rotar los elementos de un vector hacia la derecha o la izquierda? ej: si tengo un vector de 4 elementos 1,2,3,4, me debe quedar asi 2,3,4,1 o bien 4,1,2,3 me puedes ayudar?
ResponderEliminarYa te hago el programa. Dame tiempo.
Eliminarmi visual es 2008 que tengo que modificar para que me corra
ResponderEliminarcomo realizo un programa que permita almacenar nombre, edad y teléfono en un vector de 10 espacios. El programa debe mostrar los datos guardados e indicar cuando ya se han ingresado los 10 datos y no debe permitir ingresar más.
ResponderEliminarayudameporfa
Sumatoria de elementos de ListBox Este vídeo te puede orientar.
EliminarMuy interesante tu pagina broo
ResponderEliminarme podrías ayudar con este lió
tengo lo siguiente:
text2.text= "3"
text3.text="4"
text1.text= aqui quiero sacar el numero mayor que 3 que esta posicionado en text2, pero mayor que 4 que esta posicionado en text3
gracias saludos desde colombia
muy buen aporte, pero falta el ejercicio 9 de la suma de los multiplos de 5 en la diagonal principal.
ResponderEliminaroye pero te falta el ejercicio 7,9 y 11
ResponderEliminartienes los ejercicios 7,9,11??
ResponderEliminarbuenas se que esto es un poco tarde pero no tienen los ejercicios resueltos en un archivo?
ResponderEliminaralguien me ayuda?? :"D
ResponderEliminarAlmacenar N números en un vector, imprimir cuantos son ceros, cuántos son negativos, cuantos positivos. Imprimir además la suma de los negativos y la suma de los positivos.
Por favor necesito un programa para la ruleta del casino, que vaya almacenando los numeros que salieron, escritos en un text.text, y luego vaya entregando visualmente en un label los numeros que mas se repiten de los que van saliendo, o quemuestre todos los numeros repetidos o no ordenados de mayor a menor
ResponderEliminar