18
Vectores o Arrays(Arreglos) ¿Qué 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: Como se declara un vector en Visual Basic 6.0 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:

Ejercicios de vectores o arrays

Embed Size (px)

Citation preview

Page 1: Ejercicios de vectores o arrays

Vectores o Arrays(Arreglos)

¿Qué 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:

Como se declara un vector en Visual Basic 6.0

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:

Page 2: Ejercicios de vectores o arrays

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 así

Page 3: Ejercicios de vectores o arrays

Aquí está el código (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í

Page 4: Ejercicios de vectores o arrays

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

Page 5: Ejercicios de vectores o arrays

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í

Page 6: Ejercicios de vectores o arrays

Aquí está 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|

Page 7: Ejercicios de vectores o arrays

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 & ") = ")

Page 8: Ejercicios de vectores o arrays

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

Page 9: Ejercicios de vectores o arrays

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 números 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 así

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

Page 10: Ejercicios de vectores o arrays

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 números enteros, los

ordene ascendentemente (de menor a mayor) y decida si un número "N" se encuentra

entre la posición "i" y la posición "j" del vector ya ordenado. Los valores de "N", "i"

y "j" deben ser leídos por teclado.

Te debe quedar así

Page 11: Ejercicios de vectores o arrays

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

Page 12: Ejercicios de vectores o arrays

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

Page 13: Ejercicios de vectores o arrays

Label1 = "No es simétrica"

Else

'Si Paso es 0

Label1 = "Si es simétrica"

End If

End Sub Ingrese lo siguiente para que te aparezca "Si es simétrica"

|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í

Page 14: Ejercicios de vectores o arrays

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

Page 15: Ejercicios de vectores o arrays

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

Page 16: Ejercicios de vectores o arrays

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)

Page 17: Ejercicios de vectores o arrays

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)

Page 18: Ejercicios de vectores o arrays

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