SlideShare una empresa de Scribd logo
Vectores y
Matrices
CAPITULO
8
Ing. Mary Dunnia López N.
UNIVERSIDAD AUTONOMA GABRIEL RENE MORENO
Facultad Ciencias Exactas y Tecnología
Semestre I/2017
MAT20
4
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.
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
Resvecmat
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.
Resvecmat
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:
Introducción
• Definición
• Características
Tipos de Matriz
• Matriz cuadrada
• MatrizTraspuesta
• Otras
Operaciones
• Suma
• Producto
Ejercicios
• GenMat1
• GenMat2
“Su principal aplicación práctica
esta en la solución de sistemas de
ecuaciones lineales”
Llamaremos matriz de orden (nXm) sobre el cuerpo de los
números reales a un conjunto de números reales dispuestos en
n filas y m columnas de la siguiente forma:
1. Un nombre
2. La dimensión u orden de una matriz, está dado por la
cantidad de filas (n) y la cantidad de columnas (m) que esta
tenga y se denota por (nxm).
3. Cada elemento de la matriz corresponde a un número real
representado de la forma (Aij) donde i corresponde a la
posición de fila y j corresponde a la posición de la columna
dentro de la matriz. (A2,3)
4. La cantidad de elementos de la matriz se determina
multiplicando la cantidad de filas por la cantidad de
columnas. (A2,3 => Tiene 6 elementos (2X3) )
Como se dijo anteriormente, los son
estructuras de datos, por lo tanto las mismas deben
ser declaradas con Dim.
Dim
nombre_matriz (fila,columna) as tipo_dato
Dim
nombre_matriz (,) as tipo_dato
Redim nombre_matriz(10,10)
• Asignación de valores
Alumnos(1,1) = 5
Alumnos(2,4) = 4
• Los valores de la matriz son todos del mismo tipo
9 35 4 826
9 35 4 826
9 35 4 826
Alumnos
Option Explicit on
Dim Mat() as integer
Dim n as integer, m as integer
Sub CarMat()
Dim x as string, i as integer
Dim j as integer
Redim Mat (n,m)
for i:= 0 to n-1 do
for j=0 to m-1 do
x=Grid1.Item(j,i)
Mat(i,j)=cint(x)
next j
next i
End Sub
DF ?
Option Explicit on
Dim Mat() as integer
Dim n as integer, m as integer
Sub CarMat()
Dim x as string, i as integer
Dim j as integer
Redim Mat (n,m)
for i:= 0 to n-1 do
for j=0 to m-1 do
x = cstr(Notas(i,j))
Grid1.Item(i,j)=x
next j
next i
End Sub
DF ?
“La sencillez de la matriz y el hecho de
que las matrices organicen información
numérica (y también de otros tipos
permite que sean utilizadas en casi todos
los ámbitos del saber científico: física,
sociología, astronomía, ingeniería y
tantos otros mas.”
Tipo de Matriz Ejemplo
1. Matriz FIla: Es la que tiene una sola fila. A(1 x M)
2. Matriz Columna: Es la que tiene una sola columna . A (N x 1)
3. Matriz nula si: Aij =0
Donde:
i => 0 <= i <= n
j => 0 <= j <= m
4. A será llamada matriz cuadrada
Donde: n=m.
5. Matriz diagonal :
Donde:
n = m => Igual Nro. Filas y Columnas
Aij =0 => Donde i <> j
Tipo de Matriz Ejemplo
6. A será llamada matriz identidad si:
n = m => Debe ser Matriz Cuadrada => Nro. Filas = Nro. Colum.
A(i,j) =0 => Donde i <> j
A(i,j) =1 => Donde i = j
7. Matriz triangular superior si:
n = m => Debe ser Matriz Cuadrada => Nro. Filas = Nro. Colum.
A(i,j) =0 => Donde i > j
8. Mmatriz triangular inferior si
n = m => Debe ser Matriz Cuadrada => Nro. Filas = Nro. Colum.
A(i,j) =0 => Donde i < j
9. Matriz simétrica
n = m => Debe ser Matriz Cuadrada => Nro. Filas = Nro. Colum.
A(i,j) = A(j,i)
10 20 102
50 35 36
52 74 32
El numero de Filas es
IGUAL al numero de
Columnas
10 20 102
50 35 36
52 74 32
Resulta de
Intercambiar
el elementos
en las filas
por las
columnas y
viceversa
La
matriz
debe ser
cuadrada
10 50 52
20 35 74
102 36 32
X=Mat(j,i)
Mat(j,i)=Mat(i,j)
Mat(i,j)=x
0 0 0
0 0 0
0 0 0
Todos sus
elementos
son nulos
10 20 102
50 35 36
52 74 32
Matriz cuadrada
donde sus elementos
Fila = columna
‘Este pedazo de código
‘muestra los elementos de la
‘diagonal principal de la
‘matriz Mat.
For i = 0 To n - 1
For j = 0 To n - 1
If (i = j) Then
msgbox(Mat(i,j))
End If
Next j
Next i
10 20 102
50 35 36
52 74 32
Matriz cuadrada. Observe las
posiciones donde :
Fila+columna= Dimension-1
‘Este pedaso de código
‘muestra los elementos de la
‘diagonal secundaria de la
‘matriz Mat.
Col=n-1
For i = 0 To n - 1
MsgBox(Mat(i,col))
Col=col-1
Next i
1 5 80
0 10 50
0 0 1
Matriz Cuadrada
cuyos elementos
debajo la diagonal
principal son todos
CERO
Dim i,j,n as integer
i=o
n=cint(text1.text) – 1
Error=false
While(i<=n AND error=false)
j=0
while(j<=n and error=false)
if (i > j)then
if (mat (i,j) <> 0)then error = true end if
end if
j=j+1
wend
i=i+1
Wend
If(error = true)then
msgbox(“No es triangular superior”)
Else
msgbox(“Es triangular superior)
End if
“La utilización de matrices (arrays)
constituye actualmente una parte
esencial de los lenguajes de
programación, ya que la mayoría de los
datos se introducen en los ordenadores
como tablas organizadas en filas y
columnas : hojas de cálculo, bases de
datos,....”
10 20
50 35
52 4
Las
matrices
deben ser
de igual
dimensión
10 50
20 35
10 36
El resultado
de la SUMA
ira en una
tercer
matriz
+
=
20 70
70 70
62 40
Tan solo
avanzar en
la matriz
resultante
Ve1 Ve2 Ve3
10 20
50 35
52 4
10 5 2 1
20 2 1 0* =
500 90 40 10
1200 320 135 50
600 268 108 52
El Numero de COLUMNAS de la primer matriz debe ser igual que el Numero
de filas de la segunda matriz
(Matriz1
(Matriz2
(Matriz3
(2,0)
(0,2) (2,2)
(2,1)
(1,2)
Matriz3(0,0)= [Matriz1(0,0)*Matriz2(0,0)]+[Matriz1(0,1)*Matriz2(1,0)]
Matriz3(0,0)= [10*10]+[20*20]
10 20
50 35
52 4
10 5 2 1
20 2 1 0* =
500
(0,0)
(0,0) (0,0
)
(Matriz1
Matriz2
(Matriz3
Matriz3(fil0,col0) =
∑ matriz1(fila 0) * matriz2(columna 0)
Matriz3(1,2)= [Matriz1(1,0)*Matriz2(0,2)]+[Matriz1(1,1)*Matriz2(1,2)]
Matriz3(1,2)= [50*2]+[35*1]
10 20
50 35
52 4
10 5 2 1
20 2 1 0* =
500
135
(1,0)
(0,2) (1,2)
(Matriz1
Matriz2
(Matriz3
Matriz3(fila 1,columna 2) =
∑ matriz1(fila 1) * matriz2(columna 2)
ProdMat
For fil=0 to n-1
For col=0 to m-1
Sum=0
col
fil
Fin
For pos=0 to p-1
pos
sum = sum + (mat1(fil, pos) * mat2(pos, col))
Mat3(fil,col) = sum
Ve2
Ve3
Ve1
Command1
Text1 Text2 Text3
Label5
“Generar matrices es muy similar a
generar series numéricas”
Para tomar en cuenta !!!
Para resolver matrices se debe siempre tratar de :
 Mapear la Matriz. En cada posición poner que fila y que columna ocupa
el elemento
 Identificar las posiciones de los elementos a analizar
 Encontrar la relación Fila Versus Columna para cada elemento que
se esta analizando en la matriz. Esto es la clave para ver como es mas
conveniente moverse en la matriz:
 Por fila y columnas ó por columna y luego filas.
 Una universidad necesita controlar los
resultados de los alumnos en las distintas
materias de la facultad de Ingeniería.
 El programa debe ingresar las calificaciones
de los alumnos y visualizar en pantalla la
media de notas por alumno y la media de
notas por materia.
 Las asignaturas están codificadas de 1 a 6 y
hay 30 alumnos.
• Generar la siguiente matriz
Generar la siguiente matriz

Más contenido relacionado

PPTX
Res vecmat8
DOCX
Investigación #1
PPTX
ALGEBRA DE MATRICES
PDF
Algebra matrices
PPT
Matrices+y+determinantes
PDF
pdf Función Cuadráticas
PDF
Matices ortogonales
Res vecmat8
Investigación #1
ALGEBRA DE MATRICES
Algebra matrices
Matrices+y+determinantes
pdf Función Cuadráticas
Matices ortogonales

La actualidad más candente (18)

PDF
2 vectores matrices
PDF
Presentacion final
PDF
Matematica 1
DOCX
calculo diferencial
PPTX
Matematik(ilieana) xia3
DOCX
Trabajofinal.ht
PPTX
Unidad 2 matrices
PPT
Integrales indefinidas
PPT
Integrales indefinidas
PPTX
Tutorial
PDF
Tema 8 integrales
PDF
Metodos numericos capitulo 4
PPT
Integrales indefinidas 1
DOC
Ecuaciones Cuadráticas Y Sus Gráficas
DOCX
Algebralineal.docx
PDF
Derivacion e integracion
PDF
3.metodo directo
PDF
4 la derivada por formulas
2 vectores matrices
Presentacion final
Matematica 1
calculo diferencial
Matematik(ilieana) xia3
Trabajofinal.ht
Unidad 2 matrices
Integrales indefinidas
Integrales indefinidas
Tutorial
Tema 8 integrales
Metodos numericos capitulo 4
Integrales indefinidas 1
Ecuaciones Cuadráticas Y Sus Gráficas
Algebralineal.docx
Derivacion e integracion
3.metodo directo
4 la derivada por formulas
Publicidad

Similar a Resvecmat (20)

PPTX
Cap7 1 vectores
PPTX
Cap7 2 matrices
PDF
B2 T5 Vectores Ii
PDF
Ejercicios de vectores o arrays
PPT
Arreglos
PPTX
Arrays en VB 6.0
PPT
jaisan
 
PPTX
Cap1.3 tutor recursividad matriz
PPT
VectoresMatricesI.ppt
PPT
VectoresMatricesI.ppt
PPT
MATLAB 2010
PPS
Uso vectores
PPT
matrices
PPT
Algoritmos computacionales y programación: 4
PDF
Cuaderno digital
PDF
Guía nº 8 arreglos
PPTX
Vectores en power point [recuperado]
PPTX
Vectores y matrices
DOCX
Matrices
PDF
Tema 3
Cap7 1 vectores
Cap7 2 matrices
B2 T5 Vectores Ii
Ejercicios de vectores o arrays
Arreglos
Arrays en VB 6.0
jaisan
 
Cap1.3 tutor recursividad matriz
VectoresMatricesI.ppt
VectoresMatricesI.ppt
MATLAB 2010
Uso vectores
matrices
Algoritmos computacionales y programación: 4
Cuaderno digital
Guía nº 8 arreglos
Vectores en power point [recuperado]
Vectores y matrices
Matrices
Tema 3
Publicidad

Más de Mary Lopez (20)

PPTX
Cap2.1
PDF
Guia lab1
PPTX
Cap4.2 visual basic.net
PPTX
Cap5 1.1 tutor2 la_variable
PPTX
Cap5 1.4 tutor3 algoritmos repetititvos
PPTX
Cap5 1.3 tutor3 algoritmos condicionales
PPTX
Cap5 1.2 tutor2 algoritmos secuenciales
PDF
Vectores
PDF
Matrices
PDF
Cadenas
PPTX
Cap1.2 tutor recursividad vectores
PPTX
Cap30 intro
PPTX
Cap32 rep num
PPTX
Cap31 sist num
PPTX
PDF
Contar digitos
PPTX
Cap1.1 recursividad
PPTX
Cap0 2
PPTX
Cap0 1
PDF
Cap0 3 tips
Cap2.1
Guia lab1
Cap4.2 visual basic.net
Cap5 1.1 tutor2 la_variable
Cap5 1.4 tutor3 algoritmos repetititvos
Cap5 1.3 tutor3 algoritmos condicionales
Cap5 1.2 tutor2 algoritmos secuenciales
Vectores
Matrices
Cadenas
Cap1.2 tutor recursividad vectores
Cap30 intro
Cap32 rep num
Cap31 sist num
Contar digitos
Cap1.1 recursividad
Cap0 2
Cap0 1
Cap0 3 tips

Último (20)

PDF
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
PDF
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf
PDF
5°-UNIDAD 5 - 2025.pdf aprendizaje 5tooo
PDF
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
PDF
Metodologías Activas con herramientas IAG
PDF
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
PDF
Híper Mega Repaso Histológico Bloque 3.pdf
DOCX
2 GRADO UNIDAD 5 - 2025.docx para primaria
PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
PDF
Fundamentos_Educacion_a_Distancia_ABC.pdf
PDF
Punto Critico - Brian Tracy Ccesa007.pdf
PDF
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
PDF
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
DOCX
V UNIDAD - SEGUNDO GRADO. del mes de agosto
PDF
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PPTX
caso clínico iam clinica y semiología l3.pptx
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
PPTX
Presentación de la Cetoacidosis diabetica.pptx
DOCX
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
1. Intrdoduccion y criterios de seleccion de Farm 2024.pdf
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf
5°-UNIDAD 5 - 2025.pdf aprendizaje 5tooo
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
Metodologías Activas con herramientas IAG
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
Híper Mega Repaso Histológico Bloque 3.pdf
2 GRADO UNIDAD 5 - 2025.docx para primaria
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
Fundamentos_Educacion_a_Distancia_ABC.pdf
Punto Critico - Brian Tracy Ccesa007.pdf
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
V UNIDAD - SEGUNDO GRADO. del mes de agosto
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
caso clínico iam clinica y semiología l3.pptx
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
Presentación de la Cetoacidosis diabetica.pptx
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA

Resvecmat

  • 1. Vectores y Matrices CAPITULO 8 Ing. Mary Dunnia López N. UNIVERSIDAD AUTONOMA GABRIEL RENE MORENO Facultad Ciencias Exactas y Tecnología Semestre I/2017 MAT20 4
  • 2. 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 ?
  • 3. 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
  • 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 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
  • 6. 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)
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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.
  • 11. 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.
  • 12. 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
  • 14. 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
  • 15. '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
  • 17. 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.
  • 20. 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
  • 21. 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.
  • 22. 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
  • 23.  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:
  • 24. Introducción • Definición • Características Tipos de Matriz • Matriz cuadrada • MatrizTraspuesta • Otras Operaciones • Suma • Producto Ejercicios • GenMat1 • GenMat2
  • 25. “Su principal aplicación práctica esta en la solución de sistemas de ecuaciones lineales”
  • 26. Llamaremos matriz de orden (nXm) sobre el cuerpo de los números reales a un conjunto de números reales dispuestos en n filas y m columnas de la siguiente forma:
  • 27. 1. Un nombre 2. La dimensión u orden de una matriz, está dado por la cantidad de filas (n) y la cantidad de columnas (m) que esta tenga y se denota por (nxm). 3. Cada elemento de la matriz corresponde a un número real representado de la forma (Aij) donde i corresponde a la posición de fila y j corresponde a la posición de la columna dentro de la matriz. (A2,3) 4. La cantidad de elementos de la matriz se determina multiplicando la cantidad de filas por la cantidad de columnas. (A2,3 => Tiene 6 elementos (2X3) )
  • 28. Como se dijo anteriormente, los son estructuras de datos, por lo tanto las mismas deben ser declaradas con Dim. Dim nombre_matriz (fila,columna) as tipo_dato Dim nombre_matriz (,) as tipo_dato Redim nombre_matriz(10,10)
  • 29. • Asignación de valores Alumnos(1,1) = 5 Alumnos(2,4) = 4 • Los valores de la matriz son todos del mismo tipo 9 35 4 826 9 35 4 826 9 35 4 826 Alumnos
  • 30. Option Explicit on Dim Mat() as integer Dim n as integer, m as integer Sub CarMat() Dim x as string, i as integer Dim j as integer Redim Mat (n,m) for i:= 0 to n-1 do for j=0 to m-1 do x=Grid1.Item(j,i) Mat(i,j)=cint(x) next j next i End Sub DF ?
  • 31. Option Explicit on Dim Mat() as integer Dim n as integer, m as integer Sub CarMat() Dim x as string, i as integer Dim j as integer Redim Mat (n,m) for i:= 0 to n-1 do for j=0 to m-1 do x = cstr(Notas(i,j)) Grid1.Item(i,j)=x next j next i End Sub DF ?
  • 32. “La sencillez de la matriz y el hecho de que las matrices organicen información numérica (y también de otros tipos permite que sean utilizadas en casi todos los ámbitos del saber científico: física, sociología, astronomía, ingeniería y tantos otros mas.”
  • 33. Tipo de Matriz Ejemplo 1. Matriz FIla: Es la que tiene una sola fila. A(1 x M) 2. Matriz Columna: Es la que tiene una sola columna . A (N x 1) 3. Matriz nula si: Aij =0 Donde: i => 0 <= i <= n j => 0 <= j <= m 4. A será llamada matriz cuadrada Donde: n=m. 5. Matriz diagonal : Donde: n = m => Igual Nro. Filas y Columnas Aij =0 => Donde i <> j
  • 34. Tipo de Matriz Ejemplo 6. A será llamada matriz identidad si: n = m => Debe ser Matriz Cuadrada => Nro. Filas = Nro. Colum. A(i,j) =0 => Donde i <> j A(i,j) =1 => Donde i = j 7. Matriz triangular superior si: n = m => Debe ser Matriz Cuadrada => Nro. Filas = Nro. Colum. A(i,j) =0 => Donde i > j 8. Mmatriz triangular inferior si n = m => Debe ser Matriz Cuadrada => Nro. Filas = Nro. Colum. A(i,j) =0 => Donde i < j 9. Matriz simétrica n = m => Debe ser Matriz Cuadrada => Nro. Filas = Nro. Colum. A(i,j) = A(j,i)
  • 35. 10 20 102 50 35 36 52 74 32 El numero de Filas es IGUAL al numero de Columnas
  • 36. 10 20 102 50 35 36 52 74 32 Resulta de Intercambiar el elementos en las filas por las columnas y viceversa La matriz debe ser cuadrada 10 50 52 20 35 74 102 36 32 X=Mat(j,i) Mat(j,i)=Mat(i,j) Mat(i,j)=x
  • 37. 0 0 0 0 0 0 0 0 0 Todos sus elementos son nulos
  • 38. 10 20 102 50 35 36 52 74 32 Matriz cuadrada donde sus elementos Fila = columna ‘Este pedazo de código ‘muestra los elementos de la ‘diagonal principal de la ‘matriz Mat. For i = 0 To n - 1 For j = 0 To n - 1 If (i = j) Then msgbox(Mat(i,j)) End If Next j Next i
  • 39. 10 20 102 50 35 36 52 74 32 Matriz cuadrada. Observe las posiciones donde : Fila+columna= Dimension-1 ‘Este pedaso de código ‘muestra los elementos de la ‘diagonal secundaria de la ‘matriz Mat. Col=n-1 For i = 0 To n - 1 MsgBox(Mat(i,col)) Col=col-1 Next i
  • 40. 1 5 80 0 10 50 0 0 1 Matriz Cuadrada cuyos elementos debajo la diagonal principal son todos CERO Dim i,j,n as integer i=o n=cint(text1.text) – 1 Error=false While(i<=n AND error=false) j=0 while(j<=n and error=false) if (i > j)then if (mat (i,j) <> 0)then error = true end if end if j=j+1 wend i=i+1 Wend If(error = true)then msgbox(“No es triangular superior”) Else msgbox(“Es triangular superior) End if
  • 41. “La utilización de matrices (arrays) constituye actualmente una parte esencial de los lenguajes de programación, ya que la mayoría de los datos se introducen en los ordenadores como tablas organizadas en filas y columnas : hojas de cálculo, bases de datos,....”
  • 42. 10 20 50 35 52 4 Las matrices deben ser de igual dimensión 10 50 20 35 10 36 El resultado de la SUMA ira en una tercer matriz + = 20 70 70 70 62 40 Tan solo avanzar en la matriz resultante
  • 44. 10 20 50 35 52 4 10 5 2 1 20 2 1 0* = 500 90 40 10 1200 320 135 50 600 268 108 52 El Numero de COLUMNAS de la primer matriz debe ser igual que el Numero de filas de la segunda matriz (Matriz1 (Matriz2 (Matriz3 (2,0) (0,2) (2,2) (2,1) (1,2)
  • 45. Matriz3(0,0)= [Matriz1(0,0)*Matriz2(0,0)]+[Matriz1(0,1)*Matriz2(1,0)] Matriz3(0,0)= [10*10]+[20*20] 10 20 50 35 52 4 10 5 2 1 20 2 1 0* = 500 (0,0) (0,0) (0,0 ) (Matriz1 Matriz2 (Matriz3 Matriz3(fil0,col0) = ∑ matriz1(fila 0) * matriz2(columna 0)
  • 46. Matriz3(1,2)= [Matriz1(1,0)*Matriz2(0,2)]+[Matriz1(1,1)*Matriz2(1,2)] Matriz3(1,2)= [50*2]+[35*1] 10 20 50 35 52 4 10 5 2 1 20 2 1 0* = 500 135 (1,0) (0,2) (1,2) (Matriz1 Matriz2 (Matriz3 Matriz3(fila 1,columna 2) = ∑ matriz1(fila 1) * matriz2(columna 2)
  • 47. ProdMat For fil=0 to n-1 For col=0 to m-1 Sum=0 col fil Fin For pos=0 to p-1 pos sum = sum + (mat1(fil, pos) * mat2(pos, col)) Mat3(fil,col) = sum
  • 49. “Generar matrices es muy similar a generar series numéricas”
  • 50. Para tomar en cuenta !!! Para resolver matrices se debe siempre tratar de :  Mapear la Matriz. En cada posición poner que fila y que columna ocupa el elemento  Identificar las posiciones de los elementos a analizar  Encontrar la relación Fila Versus Columna para cada elemento que se esta analizando en la matriz. Esto es la clave para ver como es mas conveniente moverse en la matriz:  Por fila y columnas ó por columna y luego filas.
  • 51.  Una universidad necesita controlar los resultados de los alumnos en las distintas materias de la facultad de Ingeniería.  El programa debe ingresar las calificaciones de los alumnos y visualizar en pantalla la media de notas por alumno y la media de notas por materia.  Las asignaturas están codificadas de 1 a 6 y hay 30 alumnos.
  • 52. • Generar la siguiente matriz

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.
  • #13: 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
  • #29: Dim nombres(5,2) as string Dim nombres(2,8) as string …………………… …………………… Redim nombres(2,5)
  • #30: El recorrido de las matrices puede realizarse tanto por filas como por columnas, de acuerdo al problema a resolver
  • #44: No olvide aumentar el codigo suficente para que se armen las 3 matrices. No olvide que al hacer click en cada celda de Grid1 o Grid2 para pedir datos Grid3 debe quedar bloqueada para no permita modificar sus valores o datos Private Sub Command1_Click() Call Suma End Sub Private Sub Suma() Dim fil, col,a,b As Integer Dim nfil, ncol As Integer nfil = CInt(Combo1.Text) ncol = CInt(Combo2.Text) ReDim mat3(nfil - 1, ncol - 1) For fil = 0 To nfil - 1 For col = 0 To ncol – 1 a=cint(grid1.textmatrix(fil,col)) b=cint(grid2.textmatrix(fil,col)) grid3.textmatrix(fil, col) = cstr(a+b) Next col Next fil End Sub
  • #47: Al avanzar en la matriz resultante necesito:  Una variable NUEVA ( K) que avance en la primer matriz por columnas y la misa variable avanza en la segunda matriz en filas
  • #49: No olvide aumentar el codigo suficente para que se armen las 3 matrices. No olvide que al hacer click en cada celda de las matrices Grid 1 y Grid2 Grid3 debe quedar bloqueada para que el usuario no pueda modificar sus valores Private Sub Command1_Click() Call Producto End Sub