ejercicios vectores

25
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:

Transcript of ejercicios vectores

Page 1: ejercicios vectores

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:

Page 2: ejercicios vectores

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:

Nombre Del Vector o Matriz: FilaPrimer Valor: 1Ultimo Valor: 5Tipo De Dato: Integer

Práctica

Visual Basic 6.0

Page 3: ejercicios vectores

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

Page 4: ejercicios vectores

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

Page 5: ejercicios vectores

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

Page 6: ejercicios vectores

'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

Page 7: ejercicios vectores

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

Page 8: ejercicios vectores

    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 2vectores

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

Page 9: ejercicios vectores

 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

Page 10: ejercicios vectores

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

Page 11: ejercicios vectores

                    

                 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

Page 12: ejercicios vectores

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

Page 13: ejercicios vectores

                '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

Page 14: ejercicios vectores

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)

Page 15: ejercicios vectores

            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í

Page 16: ejercicios vectores

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 17: ejercicios vectores

        Label1 = "No es simétrica"

    Else

    'Si Paso es  0

        Label1 = "Si es simétrica"

        End If

End SubIngrese 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 18: ejercicios vectores

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

        

Page 19: ejercicios vectores

        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 12Escribir 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 9veces

un TEXT1

Como se muestra gráficamente.

Creamos un TextBox

Page 20: ejercicios vectores

Le damos click derecho del Mouse y nos saldrá el siguiente cuadro lo cual sale una opción que

dice copiar.

Page 21: ejercicios vectores

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í

Page 22: ejercicios vectores

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

    

    

Page 23: ejercicios vectores

    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"

    

Page 24: ejercicios vectores

    End If

        

        Next

    Next

  

End Sub