Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Vectores y matrices
1.
2. Vector y matriz:
Son llamados en inglés array, es una zona de almacenamiento continuo, que contiene una serie de elementos del mismo tipo, los
elementos de la matriz.
La representación de un elemento en un vector se suele hacer mediante el identificador del vector seguido del índice entre corchetes,
paréntesis o llaves:
Pseudocódigo
muchas veces se representan como letras acompañadas que indica la posición a la que se quiere acceder. Por ejemplo, para un vector "A“.
[ ] ( ) { }
3. El siguiente pseudocódigo muestra un algoritmo típico para recorrer un vector y aplicar una función a cada uno de
los componentes del vector :
i = 0
mientras (i < longitud)
//Se realiza alguna operación con el vector en la i- ésima posición
f(v[i])
i=i+1
fin_mientras
4. Clases de vectores
Dinámicos
se les denomina vectores dinámicos, a una cantidad fija de memoria asignada, aunque dependiendo del tipo de vector
y del lenguaje de programación podría tener una cantidad variable de datos.
Estáticos
requiere realizar una apropiada gestión de memoria dinámica y uso incorrecto de los vectores dinámicos, o mejor
dicho, de la memoria dinámica, puede conducir a una fuga de memoria . Al utilizar vectores dinámicos siempre habrá
que liberar la memoria utilizada cuando ésta ya no se vaya a seguir utilizando.
5. Ejemplo
int main(void)
{
int i, v[5]; // v[5] es un vector de 5 componentes
for(i=0; i<5; i++)
{
v[i] = 0; // Asignamos un valor
printf("%dn", v[i]);
printf("n"); // Crea una nueva línea
}
return 0
}
6. Los vectores son una forma de almacenar datos que permiten contener una serie de valores del mismo tipo.
Los vectores se pueden declarar de la siguiente forma:
tipo_elemento nombre[largo];
contener largo cantidad de elementos, y cada uno de estos elemento podrá contener un valor de tipo tipo_elemento.
Por ejemplo:a los elementos.
O también se pueden declara
double valores[128];
puede asignar un valor iniciar r:
tipo_elemento nombre[largo]={valor_0, valor_1, valor_2};
7. El largo debe ser mayor o igual a la cantidad de valores que le estamos asignando al vector, en el caso de ser la misma
cantidad no aporta información, por lo que el lenguaje nos permite escribir:
tipo_elemento nombre[]={valor_0, valor_1, valor_2};
Para acceder a un elemento accederemos a través de su posición. Es decir:
tipo_elemento elemento;
...
elemento = nombre[2];
8. double vector_2[] = {-1,5,3};
/*
* Ejemplo : El producto escalar de dos vectores
*/
#include <stdio.h>
double producto_escalar(double v1[], double v2[], int d);
int main()
{
const int largo = 3;
double vector_1[] = {5,1,0};
9. ], vector_2[1], vector_2[2],
resultado);
return 0;
}
/* producto escalar entre dos vectores */
double producto_escalar(double v1[], double v2[], int d)
{
double resultado = 0;
int i;
for (i=0; i < d; i++) {
resultado += double resultado = producto_escalar(vector_1, vector_2, largo);
// imprime el resultado
printf("(%f, %f, %f) . (%f, %f, %f) = %fn",
vector_1[0], vector_1[1], vector_1[2],
vector_2[0v1[i] * v2[i];
}
return resultado;
}
10. Array
Es una colección finita de datos del mismo tipo, que se almacena en posiciones consecutivas de memoria y reciben un
nombre común.
Ejemplo
Si queremos guardar las notas de 20 alumnos de una clase. Utilizaremos un array de 20 elementos y en cada elemento
almacenaremos una nota.
Array notas:
Nota Nota Nota Nota Nota Nota Nota
alumno 1 alumno 2 alumno 3 alumno 4 alumno 18 alumno 19 alumno 20
8.50 6.35 5.75 8.50
.......
3.75 6.00 7.40
11. Si el array tiene solo un índice es un array de una dimencion o unidimensional (llamado vector), si tiene dos es un array de dos dimensiones o
bidimensional (llamada matrices, tablas o arreglos), si tiene tres es tridimensional entre otros.
Matriz
Es como un conjunto de elementos ordenados en fila o filas y columnas si tuviera dos dimensiones, como algunos las llaman "arreglos
multidimensionales" son una estructura de datos bastante similar a los vectores o arreglos; de hecho una matriz no es más queuna serie de
vectores contenidos en otro u otros, es decir, una matriz es un vector cuyas posiciones son otros vectores.
Existen tres formas de indexar los elementos de una matriz:
Indexación base-cero (0): en este modo el primer elemento del vector será la componente cero ('0') del mismo, es decir, tendrá el índice '0'. En
consecuencia, si el vector tiene 'n' componentes la última tendrá como índice el valor 'n-1'
12. Indexación base-uno (1): en esta forma de indexación, el primer elemento de la matriz tiene el índice '1' y el último
tiene el índice 'n' .
Indexación base-n (n): este es un modo versátil de en la que el índice del primer elemento puede ser elegido
libremente, en algunos lenguajes de programación se permite que los índices puedan ser negativos e incluso de
cualquier tipo escalar
Declaración de una matriz
int myMatriz1[10][5];
float myMatriz2[5][10];
string myMatriz3[15][15];
bool myMatriz4[1000][3];
13. Cuando tenemos declarado una matriz, es posible asignarle valores a cada una de sus casillas, evidentemente estos
valores deben coincidir con el tipo de dato que le asignamos a dicha matriz.
Int miMatriz1[2][2]={{1,2},{{3,4}};
Para acceder el valor de una casilla aremos el uso de los corchetes pero no para declarar tamaños (porque eso ya lo
hicimos) si no para indicar posiciones (fila y columna ).
myMatriz1[2][2]={{1,2}};//Matriz con 4 elementos
int fila 1Casilla 1=myMatriz[1][1]; // Para acceder a la casilla 1,1, se usan dichos índices
int primerNumero>myMatriz[0][0];la primera casilla siempre será la dela fila 0 columna 0.
14. Para obtener los datos que se encuentra al interior de una matriz, debemos acceder a cada posición y esto se hace con
dos ciclos for (anidados) la lógica de este procedimiento es la siguiente, el primer ciclo for comenzara desde cero
hasta el numero de filas, de modo que la variable de control que generalmente llamamos “i” será la que va ir variando
entre cero y el tamaño del array, de esta forma al ponerla i al interior de los corchetes estaremos accediendo al valor
de cada fila y el segundo ciclo ira de cero al numero de columnas y normalmente se usa la variable i para acceder a
cada columna.
En el código se usa una forma sencilla y rápida de obtener la cantidad o numero de filas de una matriz y también
como obtener el numero o cantidad de columnas de una matriz,
15. #include
using namespace std;
int main()
{
int edades[3][2] = {{1,2},{9,8},{14,21}};
int filas = (sizeof(edades)/sizeof(edades[0]));
int columnas = (sizeof(edades[0])/sizeof(edades[0][0]));
for (int i = 0; i < filas; i++)
{
for (int j = 0; j < columnas; j++)
{
cout<<edades[i][j]<<endl;
}
}
}
16. #include "iostream"
#include "stdio.h"
#include "string"
using namespace std;
int main()
{
string libros[5][2];
cout << "Por favor ingrese la siguiente información de los Libros: n";
string titulo ,autor;
for(int i = 0; i < 5; i++)
{
cout << "n******* Libro " << i + 1 << "********:n";
cout << "Titulo: ";