Vectores
CAPITULO 7-
1
Ing. Mary Dunnia López N.
UNIVERSIDAD AUTONOMA GABRIEL RENE MORENO
Facultad Ciencias Exactas y Tecnología
Semestre II/2018
Dados 50 números enteros, obtener el promedio de ellos y encontrar los
números que fueron mayores que el promedio.
• Una de las principales dificultades que se observan con
estos problemas es que para la resolución de ambos es
necesario almacenar la totalidad de los datos a
procesar.
• No sería eficiente crear N cantidad de variables para
guardar estos datos.
Es posible resolver estos problemas?
Por qué?
Como ?
Es una forma particular de organizar datos en una
computadora para que pueda ser utilizado de manera
eficiente.
Tipos de
Estructuras
Simples
Reales
Enteros
Carácter
Booleano
Cadenas
ARREGLOS: Vectores y
Matrices
Complejas
1. Introducción
• Definición
• Estructura Vector
2. Algoritmos
Típicos
• Cargar un Vector
• Mostrar un Vector
3. Algoritmos
útiles
• Ordenar un Vector
• Buscar en un Vector.
4. Ejercicios
• Ejercicio1
• Ejercicio2
Mi vector
Nombre de la variable
9 35 4 826
Elementos
Posición : 0
Mi vector[0] = 9
Un vector es una estructura de datos que puede almacenar un conjunto de datos
de un mismo tipo.
Características:
• Se identifica con un único nombre de variable.
• Cada elemento se almacena en posiciones uno a lado de la otra.
• Se accede a cada uno de sus elementos por la posición que
ocupa
Como se dijo anteriormente, los arreglos son estructuras de datos,
por lo tanto las mismas deben ser declaradas.
Dim
nombre_del_vector (tamaño) as
tipo_dato
Dim
nombreVector () as tipoDato
…
…
Redim nombreVector(10)
1. Asignación de valores
Alumnos(3) = “Juan Perez”
Precios(0) = “23.50”
2. En un vector los datos son todos del mismo tipo
23.5 00 0 0Juan Perez0
Option explicit on
Dim vec() as integer
Dim n as integer
Sub CarVec()
Dim x as string, i as integer
N= TextBox.Text
Redim Vec(N)
for i:= 0 to N-1 do
x=Grid1.item(i,0).value
vec(i)=cint(x)
next i
End Sub
Option Explicit on
Dim vec() as integer
Dim n as integer
Sub MosVec()
Dim i as integer, x as string
Redim vec(n)
for i:= 0 to n-1 do
x= cstr(vec(i) )
Grid1.Item(i,0).value=x
next i
End Sub
Pasos para resolver este problema:
 Leer un vector de N elementos
 Ordenar el vector por un método
Conocido
 Mostrar el Vector ordenado
Pasos para resolver este problema:
 Leer un vector de N elementos
 Ordenar el vector por el método Burbuja
 Buscar un elemento (X) entre todos los
elementos del vector
 Si encuentra el valor mostrar su posición.
Ordenar los elementos de un vector
Buscar un “valor en un vector de N elementos.
123 50 25 60 10 12
0 1 2 3 4 5
Primero
0 1 2 3 4 5
50 123 25 60 10 12Segundo
25 123 50 60 10 12
0 1 2 3 4 5
Tercero
0 1 2 3 4 5
25 123 50 60 10 12Cuarto
0 1 2 3 4 5
10 123 50 60 25 12Quinto
0 1 2 3 4 5
10 123 50 60 25 12N-1
Primer
pasada y el
primero
mas
pequeño
ahora esta
en la
primer
posición.
10 123 50 60 25 12
0 1 2 3 4 5
Primero
0 1 2 3 4 5
10 50 123 60 25 12Segundo
10 50 123 60 25 12
0 1 2 3 4 5
Tercero
0 1 2 3 4 5
10 25 123 60 50 12Cuarto
0 1 2 3 4 5
10 12 123 60 50 25Quinto
0 1 2 3 4 5
10 12 123 60 50 25N-1
Segunda
pasada y el
segundo
mas
pequeño
ahora esta
en la
segunda
posición.
10 12 123 60 50 25
0 1 2 3 4 5
Primero
0 1 2 3 4 5
10 12 60 123 50 25Segundo
10 12 50 123 60 25
0 1 2 3 4 5
Tercero
0 1 2 3 4 5
10 12 25 123 60 50Cuarto
0 1 2 3 4 5
10 12 25 123 60 50N-1
Tercer
pasada y el
tercero
mas
pequeño
ahora esta
en la tercer
posición.
10 12 25 123 60 50
0 1 2 3 4 5
Primero
0 1 2 3 4 5
10 12 25 60 123 50Segundo
10 12 25 50 123 60
0 1 2 3 4 5
Tercero
0 1 2 3 4 5
10 12 25 50 123 60N-1
Cuarta
pasada y el
cuarto mas
pequeño
ahora esta
en la
cuarta
posición.
10 12 25 50 123 60
0 1 2 3 4 5
Primero
0 1 2 3 4 5
10 12 25 50 60 123Segundo
10 12 25 50 60 123
0 1 2 3 4 5
Tercero
0 1 2 3 4 5
10 12 25 50 60 123N-1
Quinta
pasada y el
quinto mas
pequeño
ahora esta
en la
quinta
posición.
Burbuja
For i=0 to n-2
For j=i+1 to n-1
Vec(i) > Vec(j)
aux = Vec(i)
Vec(i) = Vec(j)
Vec(j) = aux
j
i
Fin
VF
textBox2
Grid1
Label3
Button1
Option Explicit on
Dim Vector1() as integer
‘Grid1 es el objeto DataGrid del formulario
'El SUB CarVec copia Grid1 al vector de programa llamado Vec1
Sub CarVec()
Dim n as integer, pos As Integer
'Obteniendo la dimensión del vector
n = CInt(text2.Text)
ReDim Vector1(n)
For pos = 0 To n - 1
Vector1(pos) = Grid1.Item(pos,0)
Next pos
End Sub
Dele 2 Click sobre el boton en el Formulario
Suba a la linea 1 del archivo y escriba las siguientes instrucciones
Private Sub Button1_Click()
Call CarVec
Call OrdVecPro
Call MosVec
End Sub
Avance con el cursor hasta la línea dentro del Button1_Click
'Ordenando por método de la burbuja
Sub OrdVecPro()
Dim i As Integer, j As Integer
Dim aux As Integer, n As Integer
n = CInt(Text2.Text)
'Comienza a recorrer el vector y ordenar
For i = 0 To n - 2
For j = i + 1 To n - 1
If (Vector1(i) > Vector1(j)) Then
aux = Vector1(i)
Vector1(i) = Vector1(j)
Vector1(j) = aux
End If
Next j
Next i
End Sub
'Mostrando el vector ordenado
Sub MosVec()
Dim n As Integer, pos As Integer
n = CInt(Text2.Text)
For pos = 0 To n - 1
Grid1.Item(pos,0) = Vector1(pos)
Next pos
End Sub
Precondición
El vector debe estar ordenado
Algoritmo
 Se compara el dato buscado con el elemento en el
centro del vector.
 Si coinciden, el dato ha sido encontrado
 Si el dato es mayor que el elemento central del
vector, se tiene que buscar el dato en segunda mitad
del vector.
 Si el dato es menor que el elemento central del
vector, se tiene que buscar el dato en la primera
mitad del vector.
textBox2Grid1
Label3
Button1TextBox3
TextBox4
Cargar 10 elementos en un vector, sumarlos y mostrar el
resultado.
Pasos para resolver este problema:
 Leer un vector de 10 elementos
 Sumar los elementos
 Mostrar el resultado de la suma en pantalla
Ejemplo 1
Muestra
resultados
Lectura del
vector
Suma de
los elementos
Pasos para resolver este problema:
1. Crear un nuevo proyecto con: TextBox1 (N), DataGridView1
(Vector), Button (boton).
2. Haga 2click sobre el boton Button1.
Private SUB Button1_Click()
CALL Sumar()
End sub
3. Declarar el vector como Variable Global debajo de la instrucción
 Public Class Form1
Dim sumandos() as integer
4. Luego Crear el proceso Sumar.
Sub Sumar()
Dim suma as integer, N as integer, i as integer, x as string, mensage as
string
N = CInt(Text2.Text)
ReDim sumandos(N)
suma = 0
For i = 0 To N - 1
‘Grid1 es el nombre objeto tipo DataGrid del Formulario
x = Grid1.Item(i,0).value
sumandos(i) = CInt(x)
suma = suma + CInt(x)
Next i
mensage = "La suma total es: " + CStr(suma)
MsgBox («TOTAL»,VBOkOnly,mensage)
End Sub
Lectura desde el DataGrid
Suma de los elementos
Muestra resultados
Dimension del vector
 Leer un vector de 15 elementos
 Acumular en S la sumar los elementos
 Dividir S entre 15
 Mostrar el Promedio
 Recorrer el vector buscando y mostrando
los que sean mayor que el promedio.
Dados 15 números enteros, obtener el promedio de
ellos. Mostrar por pantalla dicho promedio y los números
ingresados que fueron mayores que el promedio
Pasos para resolver este problema:

Cap7 1 vectores

  • 1.
    Vectores CAPITULO 7- 1 Ing. MaryDunnia López N. UNIVERSIDAD AUTONOMA GABRIEL RENE MORENO Facultad Ciencias Exactas y Tecnología Semestre II/2018
  • 2.
    Dados 50 númerosenteros, obtener el promedio de ellos y encontrar los números que fueron mayores que el promedio. • Una de las principales dificultades que se observan con estos problemas es que para la resolución de ambos es necesario almacenar la totalidad de los datos a procesar. • No sería eficiente crear N cantidad de variables para guardar estos datos. Es posible resolver estos problemas? Por qué? Como ?
  • 3.
    Es una formaparticular de organizar datos en una computadora para que pueda ser utilizado de manera eficiente. Tipos de Estructuras Simples Reales Enteros Carácter Booleano Cadenas ARREGLOS: Vectores y Matrices Complejas
  • 4.
    1. Introducción • Definición •Estructura Vector 2. Algoritmos Típicos • Cargar un Vector • Mostrar un Vector 3. Algoritmos útiles • Ordenar un Vector • Buscar en un Vector. 4. Ejercicios • Ejercicio1 • Ejercicio2
  • 5.
    Mi vector Nombre dela variable 9 35 4 826 Elementos Posición : 0 Mi vector[0] = 9 Un vector es una estructura de datos que puede almacenar un conjunto de datos de un mismo tipo. Características: • Se identifica con un único nombre de variable. • Cada elemento se almacena en posiciones uno a lado de la otra. • Se accede a cada uno de sus elementos por la posición que ocupa
  • 6.
    Como se dijoanteriormente, los arreglos son estructuras de datos, por lo tanto las mismas deben ser declaradas. Dim nombre_del_vector (tamaño) as tipo_dato Dim nombreVector () as tipoDato … … Redim nombreVector(10)
  • 7.
    1. Asignación devalores Alumnos(3) = “Juan Perez” Precios(0) = “23.50” 2. En un vector los datos son todos del mismo tipo 23.5 00 0 0Juan Perez0
  • 8.
    Option explicit on Dimvec() as integer Dim n as integer Sub CarVec() Dim x as string, i as integer N= TextBox.Text Redim Vec(N) for i:= 0 to N-1 do x=Grid1.item(i,0).value vec(i)=cint(x) next i End Sub
  • 9.
    Option Explicit on Dimvec() as integer Dim n as integer Sub MosVec() Dim i as integer, x as string Redim vec(n) for i:= 0 to n-1 do x= cstr(vec(i) ) Grid1.Item(i,0).value=x next i End Sub
  • 10.
    Pasos para resolvereste problema:  Leer un vector de N elementos  Ordenar el vector por un método Conocido  Mostrar el Vector ordenado Pasos para resolver este problema:  Leer un vector de N elementos  Ordenar el vector por el método Burbuja  Buscar un elemento (X) entre todos los elementos del vector  Si encuentra el valor mostrar su posición. Ordenar los elementos de un vector Buscar un “valor en un vector de N elementos.
  • 11.
    123 50 2560 10 12 0 1 2 3 4 5 Primero 0 1 2 3 4 5 50 123 25 60 10 12Segundo 25 123 50 60 10 12 0 1 2 3 4 5 Tercero 0 1 2 3 4 5 25 123 50 60 10 12Cuarto 0 1 2 3 4 5 10 123 50 60 25 12Quinto 0 1 2 3 4 5 10 123 50 60 25 12N-1 Primer pasada y el primero mas pequeño ahora esta en la primer posición.
  • 12.
    10 123 5060 25 12 0 1 2 3 4 5 Primero 0 1 2 3 4 5 10 50 123 60 25 12Segundo 10 50 123 60 25 12 0 1 2 3 4 5 Tercero 0 1 2 3 4 5 10 25 123 60 50 12Cuarto 0 1 2 3 4 5 10 12 123 60 50 25Quinto 0 1 2 3 4 5 10 12 123 60 50 25N-1 Segunda pasada y el segundo mas pequeño ahora esta en la segunda posición.
  • 13.
    10 12 12360 50 25 0 1 2 3 4 5 Primero 0 1 2 3 4 5 10 12 60 123 50 25Segundo 10 12 50 123 60 25 0 1 2 3 4 5 Tercero 0 1 2 3 4 5 10 12 25 123 60 50Cuarto 0 1 2 3 4 5 10 12 25 123 60 50N-1 Tercer pasada y el tercero mas pequeño ahora esta en la tercer posición.
  • 14.
    10 12 25123 60 50 0 1 2 3 4 5 Primero 0 1 2 3 4 5 10 12 25 60 123 50Segundo 10 12 25 50 123 60 0 1 2 3 4 5 Tercero 0 1 2 3 4 5 10 12 25 50 123 60N-1 Cuarta pasada y el cuarto mas pequeño ahora esta en la cuarta posición.
  • 15.
    10 12 2550 123 60 0 1 2 3 4 5 Primero 0 1 2 3 4 5 10 12 25 50 60 123Segundo 10 12 25 50 60 123 0 1 2 3 4 5 Tercero 0 1 2 3 4 5 10 12 25 50 60 123N-1 Quinta pasada y el quinto mas pequeño ahora esta en la quinta posición.
  • 16.
    Burbuja For i=0 ton-2 For j=i+1 to n-1 Vec(i) > Vec(j) aux = Vec(i) Vec(i) = Vec(j) Vec(j) = aux j i Fin VF
  • 17.
  • 18.
    Option Explicit on DimVector1() as integer ‘Grid1 es el objeto DataGrid del formulario 'El SUB CarVec copia Grid1 al vector de programa llamado Vec1 Sub CarVec() Dim n as integer, pos As Integer 'Obteniendo la dimensión del vector n = CInt(text2.Text) ReDim Vector1(n) For pos = 0 To n - 1 Vector1(pos) = Grid1.Item(pos,0) Next pos End Sub Dele 2 Click sobre el boton en el Formulario Suba a la linea 1 del archivo y escriba las siguientes instrucciones Private Sub Button1_Click() Call CarVec Call OrdVecPro Call MosVec End Sub Avance con el cursor hasta la línea dentro del Button1_Click
  • 19.
    'Ordenando por métodode la burbuja Sub OrdVecPro() Dim i As Integer, j As Integer Dim aux As Integer, n As Integer n = CInt(Text2.Text) 'Comienza a recorrer el vector y ordenar For i = 0 To n - 2 For j = i + 1 To n - 1 If (Vector1(i) > Vector1(j)) Then aux = Vector1(i) Vector1(i) = Vector1(j) Vector1(j) = aux End If Next j Next i End Sub 'Mostrando el vector ordenado Sub MosVec() Dim n As Integer, pos As Integer n = CInt(Text2.Text) For pos = 0 To n - 1 Grid1.Item(pos,0) = Vector1(pos) Next pos End Sub
  • 21.
    Precondición El vector debeestar ordenado Algoritmo  Se compara el dato buscado con el elemento en el centro del vector.  Si coinciden, el dato ha sido encontrado  Si el dato es mayor que el elemento central del vector, se tiene que buscar el dato en segunda mitad del vector.  Si el dato es menor que el elemento central del vector, se tiene que buscar el dato en la primera mitad del vector.
  • 23.
  • 24.
    Cargar 10 elementosen un vector, sumarlos y mostrar el resultado. Pasos para resolver este problema:  Leer un vector de 10 elementos  Sumar los elementos  Mostrar el resultado de la suma en pantalla Ejemplo 1 Muestra resultados Lectura del vector Suma de los elementos
  • 25.
    Pasos para resolvereste problema: 1. Crear un nuevo proyecto con: TextBox1 (N), DataGridView1 (Vector), Button (boton). 2. Haga 2click sobre el boton Button1. Private SUB Button1_Click() CALL Sumar() End sub 3. Declarar el vector como Variable Global debajo de la instrucción  Public Class Form1 Dim sumandos() as integer 4. Luego Crear el proceso Sumar.
  • 26.
    Sub Sumar() Dim sumaas integer, N as integer, i as integer, x as string, mensage as string N = CInt(Text2.Text) ReDim sumandos(N) suma = 0 For i = 0 To N - 1 ‘Grid1 es el nombre objeto tipo DataGrid del Formulario x = Grid1.Item(i,0).value sumandos(i) = CInt(x) suma = suma + CInt(x) Next i mensage = "La suma total es: " + CStr(suma) MsgBox («TOTAL»,VBOkOnly,mensage) End Sub Lectura desde el DataGrid Suma de los elementos Muestra resultados Dimension del vector
  • 27.
     Leer unvector de 15 elementos  Acumular en S la sumar los elementos  Dividir S entre 15  Mostrar el Promedio  Recorrer el vector buscando y mostrando los que sean mayor que el promedio. Dados 15 números enteros, obtener el promedio de ellos. Mostrar por pantalla dicho promedio y los números ingresados que fueron mayores que el promedio Pasos para resolver este problema:

Notas del editor

  • #7 Dim nombres(5) as string Dim nombres() as string …………………… …………………… Redim nombres(5)
  • #12 Se comienza comparando el primer elemento con el segundo, si están desordenados se intercambian. Luego se compara el segundo con el tercero, intercambiándolos si están desordenados. Este proceso que se realiza sobre todos los elementos constituye una pasada sobre el vector. Al terminar algunos de los elementos más pequeños se han “burbujeado” hacia arriba, mientras que los más grandes se han “hundido”, de aquí el nombre del método.
  • #17  Encontrando el Primero  Comenzar con el primer elemento (i) e ir comparando con el siguiente hasta el ultimo (j) Encontrando el Segundo  Al termniar de comparar el primero con todos saltar al segundo elemento (i)y comparar el segundo con todos