Sunteți pe pagina 1din 3

APUNTES DE VECTORES (ARRAYS) Y MATRICES

Pgina 1 de 3

APUNTES DE VECTORES (ARRAYS) Y MATRICES:


Si tuvisemos que realizar un programa que necesitase guardar 100 nmeros enteros en memoria, simplemente utilizando
variables convencionales nos veramos obligados a declarar 100 variables enteras de la forma:
int v1,v2,v3,v4,v5,v6,v7,v8, , v98,v99,v100;

Est claro que ste no es el mecanismo ms correcto ni eficiente para almacenar en memoria un gran nmero de datos del
mismo tipo. Para solucionar este problema aparecen los vectores. Un vector es un conjunto de datos del mismo tipo que
se almacenan en memoria juntos, al conjunto completo se le da un nico nombre identificador, y utilizando un ndice
numrico (que empieza en cero) accederemos a cada valor concreto del conjunto.
Por ejemplo: si necesitsemos almacenar 100 nmeros enteros, declararamos un vector llamado numeros, con una
capacidad de 100 valores enteros, de la siguiente forma:
int numeros[100];

Lo que dara como resultado un vector llamado numeros con una capacidad de 100 valores enteros:
numeros[0]

numeros[1]

numeros[2]

numeros[3]

numeros[98]

numeros[99]

Si necesitsemos guardar en memoria 1000 nmeros con decimales podramos usar un vector de 1000 elementos de tipo
float, que se declarara as:
float vector[1000];

Un caso particular de vector muy utilizado es el vector de caracteres, tambin conocido como cadena o string. El cual
almacena una lista de caracteres sueltos donde el ltimo es el llamado carcter terminador de cadena (\0).
char cadena[50];

Los vectores pueden inicializarse durante su declaracin, tomando as directamente valores iniciales.
// Declara el vector y a la vez le asigna los valores iniciales.
char cadena[6]={H.o,l,a,\0};
char cadena[6]= Hola; // que es equivalente a la instruccin anterior.

Lo que dara como resultado un vector llamado cadena con una capacidad de 6 caracteres:
cadena [0]
H

cadena [1]
o

cadena [2]
l

cadena [3]
a

cadena[4]
\0

cadena[5]

cadena[6]

Otros ejemplos de declaraciones de vectores con asignacin de valores iniciales:


float numeros[3]={1.23, 5.0, -17.8};
int vector[4]={1,2,3,4};
double v[6] = {1., 2., 3., 3., 2., 1.};
float d[] = {1.2, 3.4, 5.1}; // d[3] est implcito
int f[100] = {0}; // todo se inicializa a 0
int h[10] = {1, 2, 3}; // restantes elementos a 0

Tambin, pueden declararse vectores que almacenen datos de tipo estructura, vectores que almacenen punteros:

APUNTES DE VECTORES (ARRAYS) Y MATRICES

Pgina 2 de 3

struct tipodato vector[50]; // vector de 50 datos de tipo struct tipodato


(int*) vector[3]; // vector de 3 punteros a enteros

Para acceder a cada elemento del vector, se utiliza el nombre del vector y entre corchetes se escribe el ndice numrico
del valor al cual queremos acceder. Ejemplo:
int vector[2]; // declaramos un vector de 2 nmeros enteros.
vector[0]=1; // Almacenamos el valor 1 en el primer elemento del vector.
vector[1]=2; // Almacenamos el valor 2 en el segundo elemento del vector.
// Mostraremos los valores de los elementos del vector:
printf(Primer elemento: %i Segundo elemento: %i\n, vector[0], vector[1]);

Lo ms habitual es utilizar un bucle for para recorrer todos los elementos de un vector, ya sea para asignarle valores o
para obtenerlos. Por ejemplo:
#include<stdio.h>
int main(){
int vector[5], x; // Declaramos el vector de 5 enteros
for(x=0; x<5; x++) // Bucle para asignar los valores
vector[x]=x;
for(x=0;x<5;x++) // Bucle para obtener los valores a mostrar
printf(El valor de ndice %i es: %i\n, x, vector[x]);
return(0);
}

El vector quedara as:


vector[0]
0

vector[1]
1

vector[2]
2

vector[3]
3

vector[4]
4

Y se mostrara en pantalla:
El
El
El
El
El

valor
valor
valor
valor
valor

de
de
de
de
de

ndice
ndice
ndice
ndice
ndice

0
1
2
3
4

es:
es:
es:
es:
es:

0
1
2
3
4

Tambin podra utilizarse otro tipo de bucle. Por ejemplo:


#include<stdio.h>
int main(){
int vector[5], x; // Declaramos el vector de 5 enteros
x=0;
do{ // Bucle para asignar los valores
vector[x]=x;
x++;
while(x<5);
x=0;
while(x<5){ // Bucle para obtener los valores a mostrar
printf(El valor de ndice %i es: %i\n, x, vector[x]);
x++;
}
return(0);
}

APUNTES DE VECTORES (ARRAYS) Y MATRICES

Pgina 3 de 3

MATRICES O VECTORES DE MS DE UNA DIMENSIN:


Un vector (o array) que tiene varias dimensiones se llama matriz. Tambin se dice que una matriz de una dimensin se
llama vector. Por ejemplo para declarar una matriz bidimensional (con filas y columnas), se podra hacer as:
// Matriz de enteros de 3 filas y 2 columnas.
int mat[3][2] = {{1, 2}, {3, 4}, {5, 6}}; // La inicializamos con valores.

Lo que dara como resultado:


Fila0
Fila1
Fila2

Columna0
1
3
5

Columna1
2
4
6

Aqu se hace muy conveniente utilizar bucles para recorrer las matrices bidimensionales. Por ejemplo:
#include<stdio.h>
int main(){
int matriz[4][3], fila, columna, contador=1; // Declaraciones
for(fila=0; fila<4; fila++){ // Bucle de filas
for(columna=0; columna<3; columna++){ // Bucle de columnas
matriz[fila][columna]=contador; // Asignamos valor
contador++; // Incrementamos el contador en 1
}
}
return(0);
}

La matriz bidimensional quedara as:


Fila0
Fila1
Fila2
Fila3

Columna0
1
4
7
10

Columna1
2
5
8
11

Columna2
3
6
9
12

Ejemplo: Pedir 10 nmeros enteros al usuario que se almacenarn en un vector de 10 enteros. Despus se recorrer el
vector mediante un bucle for y se irn mostrando nicamente los nmeros negativos:
#include<stdio.h> // printf
#include<conio.h> // gets
#include<stdlib.h> // atoi
int main(){
int vector[10],x, cadena[10]; // Declaraciones
// Pediremos los datos por teclado:
for(x=0; fila<10; x++){ // Bucle para asignar valores a los elementos.
printf(Introduzca el valor %i: ,x+1);
gets(cadena);
vector[x]=atoi(cadena);
}
// Recorremos de nuevo el vector mostrando los valores negativos:
for(x=0; fila<10; x++){ // Bucle para asignar valores a los elementos.
if (vector[x]<0)
printf(El elemento %i es negativo: %i\n,x+1, vector[x]);
}
return(0);
}

S-ar putea să vă placă și