Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Ejercicios de vectores o arrays

  • Sé el primero en comentar

Ejercicios de vectores o arrays

  1. 1. 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:
  2. 2. 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í
  3. 3. 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í
  4. 4. 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
  5. 5. 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í
  6. 6. 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 _ _ _ |7 |1| 4| Vector B _ _ _ |9 |6 |8| lo que hace es unirlo el vector 'A' y 'B' _ _ _ __ _ |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' _ _ _ __ _ |7 |1 |4 |9 |6 |8| Vectores 'A' y 'B' ordenados _ _ _ __ _ |1 |4 |6 |7 |8 |9|
  7. 7. 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 & ") = ")
  8. 8. 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
  9. 9. 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
  10. 10. 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í
  11. 11. 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
  12. 12. 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
  13. 13. 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í
  14. 14. 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
  15. 15. 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
  16. 16. 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)
  17. 17. 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)
  18. 18. 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

×