ejercicios de vectores

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:

description

ejercicios de vectores

Transcript of ejercicios de vectores

  • Vectores o Arrays(Arreglos)

    Qu 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 Indice(formando una fila), si ingresamos el numero 10 se almacenar en la posicin 0, si ingresamos 8 se almacenara en la posicin 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:

  • Nombre Del Vector o Matriz: Fila Primer Valor: 1 Ultimo Valor: 5 Tipo De Dato: Integer

    Prctica

    Visual Basic 6.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 Label

    1 ListBox

    Te debe quedar as

  • Aqu est el cdigo (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 espaol 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 nmeros 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 cdigo (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" nmeros en un vector

    "V" y luego muestre la cantidad de elementos de "V" que son nmeros 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 est el cdigo (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 nmeros 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

  • 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 nmeros enteros, los

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

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

    y "j" deben ser ledos por teclado.

    Te debe quedar as

  • Codigo:

    Private Sub Command1_Click()

    'vector Dim V(1 To 10) As Integer

    'Es el numero donde esta en dichas posiones N = Val(Text1)

    'Psicion 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 simtrica.

    Te debe quedar as

    Dale doble click al CommandButton y escribe el siguiente

    cdigo 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 condicin

    'En este caso esta en cero porque no se ha cumplido una condicin

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

    Else

    'Si Paso es 0

    Label1 = "Si es simtrica"

    End If

    End Sub Ingrese lo siguiente para que te aparezca "Si es simtrica"

    |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 estn por encima de la diagonal principal. B) La suma

    de los elementos que estn por debajo de la diagonal principal. C) La suma de los

    elementos que estn en la diagonal principal y D) La suma de los elementos que estn

    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

    cdigo 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 grficamente.

    Creamos un TextBox

  • Le damos click derecho del Mouse y nos saldr el siguiente cuadro lo cual

    sale una opcin que dice copiar.

    Ahora acercamos el cursor en el espacio del formulario le damos click derecho y pegar.

    O lo ms fcil 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