Sie sind auf Seite 1von 28

INTEGRANTES:

CRISTHIAN TAMAMI MAYRA LUISA AMALIA BONILLA TERCER SEMESTRE ING.MSC. WILMA GAVILANEZ CARRERA DE DOCENCIA EN INFORMTICA

Vectores y matrices ...........................................................2 VECTOR.- ................................................................................3 Introduccin ..........................................................................6 Definicin.8 Ejercicios Aplicados MATRICES.- ...........................................................................16 Introduccin ..........................................................................17 Definicin.18 Ejercicios Aplicados..23

VECTORES
Introduccin. Los vectores y matrices son uno de los medios principales mediante los cuales se almacenan los datos en un programa. En esta prctica veremos todos los conceptos relativos a la creacin y manejo en C de vectores, matrices y cadenas de caracteres. Un Arreglo es una estructura de datos que almacena bajo el mismo nombre (variable) a una coleccin de datos del mismo tipo. Los arreglos se caracterizan por: Almacenan los elementos en posiciones contiguas de memoria Tienen un mismo nombre de variable que representa a todos los elementos. Para hacer referencia a esos elementos es necesario utilizar un ndice que especifica el lugar que ocupa cada elemento dentro del archivo. Acceso directo o aleatorio a los elementos individuales del arreglo. Ej: Notas[5]=15;

TIPOS DE ARREGLOS
Unidimensionales, Vectores o listas tambin llamados

BIDIMENSIONALES, DENOMINADOS TABLAS O MATRICES

MULTIDIMENSIONALES, CON TRES O MS DIMENSIONES

VECTOR

Definicin.- Un arreglo de una dimensin (vector o lista) es un tipo de datos estructurado compuesto de un nmero de elementos finitos, consecutivos de tamao fijo y elementos homogneos. Finito indica que el arreglo tiene un nmero determinado de elementos. Consecutivo que se almacena en posiciones consecutivas de memoria, Tamao Fijo significa que el tamao del arreglo debe ser conocido en tiempo de compilacin, Homogneo significa que todos los elementos son del mismo tipo. Como hemos dicho, el vector es un arreglo de N elementos organizados en una dimensin donde N recibe el nombre de longitud o tamao del vector. Para hacer referencia a un elemento del vector se usa el nombre del mismo, seguido del ndice (entre corchetes), el cual indica una posicin en particular del vector. Por ejemplo: Vec[x] Donde: Vec Nombre del arreglo x Numero de datos que constituyen el arreglo Cada localidad almacena un elemento del vector. En C los elementos de un vector estn numerados desde 0 hasta N -1. Algunos otros lenguajes comienzan en 1.

Declaracin de un Vector Notacin algortmica

Tipo_De_Dato
Nombre_Del_Vector [nmero Elementos] Ejemplo: entero notas[43] carcter cdigo[4] Notacin en lenguaje C Tipo_De_Dato

Nombre_Del_Vector [nmero Elementos]


Ejemplo: int notas[43]; char cdigo[4];

ACCESO A LOS ELEMENTOS DE UN VECTOR


Para manejar cualquiera de los elementos de un vector se utilizan los subndices. Por ejemplo para asignar un valor al primer elemento de un vector se utiliza la siguiente sentencia: nmeros[0] = 20; El valor del subndice puede variar entre 0 y N-1, siendo N el tamao del vector, es decir, el nmero de elementos que tiene el vector. El subndice puede ser construido utilizando expresiones aritmticas enteras. Por ejemplo: notas[xy+1] = 18; En general para tener acceso al i-simo elemento de un vector se utiliza: vector[i-1]

RECORRIDO DE UN VECTOR
El Bucle For.- es apropiado para arrays con un ndice numrico. Si no hemos definido ndices a nuestro array, por defecto ser numrico. Requiere tres parmetros, el primero es dnde empieza a contar, el segundo hasta cundo, o sea el lmite y el tercero las variaciones que va sufriendo la variable en cada iteracin.

POR EJEMPLO:
Donde inicia el lazo Secuencia de repeticin de 1 en 1

for (i=0; i<N; i++)


El lmite o hasta donde llega el bucle

OPERACIONES CON VECTORES


1. Lectura de un vector for (int i=0; i<N; i++) { Scanf(%d,&Notas[i]); } 2. Escritura de un vector for (int i=0; i<N; i++) { printf(Notas[%d]= %d, I, Notas[i]); } 3. Bsqueda Lineal (Secuencial) {no ordenados} Secuencia de repeticin de 1 en 1 Donde inicia el lazo El lmite o hasta donde llega el bucle Binaria para arreglos ordenados 4. Ordenamiento Insercin, Seleccin, Burbuja o Intercambio, Shell, Quicksoft (Ordenacin rpida), Ordenacin por Fusin o Mezcla. 5. Insercin y Eliminacin

EJERCICIOS DE APLICACIN UTILIZANDO ARRAYS UNIDIMENSIONALES Y BIDIMENSIONALES DATOS PARES EN UN VECTOR

ENUNCIADO
1.- Disee un programa que me permita ingresar n elementos en un vector y buscar los datos pares y pasar a otro vector.

ANLISIS

1.- Creamos nuestra primera funcin que seria BORDE en el cual contenga dos for y un gotoxy para ubicar columna y fila. 2.-Despus creamos la segunda funcin que seria INGRESAR en el cual contenga dos for para ingresar datos en el vector. 3.-Creamos la funcin PAR que me calcula los datos pares. 4.- Por ultimo creamos nuestro programa principal colocando mensajes de impresin gotoxy columnas. 5.-Existe un lazo DO-WHILE que permite preguntar si desea continuar Si o NO.

DESARROLLO

#include<stdio.h> #include<conio.h> int vector1[10],vector2[10],i,fila=15,op,lim,datos=0,h,limite1; void borde () { for (i=1;i<=80;i++) { gotoxy(i,1);printf("!"); gotoxy(i,24);printf("!"); } for (i=1;i<=24;i++) { gotoxy(1,i);printf("!"); gotoxy(80,i);printf("!"); } } void ingresar (int limite) { fila=10; for (i=1;i<=limite;i++) { gotoxy(15,fila);scanf("%d",&vector1[i]); fila=fila+1; } }

void par (int limite1) { fila=10;h=1; for (i=1;i<=limite1;i++) { datos=vector1[i]%2; if (datos==0) { vector2[h]=vector1[i]; h=h+1; } } } void resultado () { for (i=1;i<h;i++) { gotoxy(40,fila);printf("%d",vector2[i]); fila=fila+1; } }

void main () { textcolor(WHITE); textbackground(RED); do { clrscr(); borde(); gotoxy(15,3);printf(" **DATOS PARES EN UN VECTOR** "); gotoxy(15,5);printf("INGRESE EL LIMITE");scanf("%d",&lim); ingresar(lim); par(lim); resultado(); gotoxy(13,22);printf("PRESIONE 1 PARA CONTINUAR 0 PARA SALIR ");scanf("%d",&op); }while(op==1); getch(); }

CORRIDO DEL PROGRAMA

MATRICES
Es una estructura de datos, o ms tcnicamente, un espacio de memoria que permite almacenar una coleccin de elementos, todos del mismo tipo. La diferencia con los arreglos est en que, en las matrices, los elementos no estn organizados linealmente sino que su organizacin es bidimensional, es decir, en filas y columnas. una matriz como una organizacin de celdas de memoria, o casillas, en cada una de las cuales se puede guardar un elemento de la coleccin. Adems, es usual dibujarla como lo ilustra la figura siguiente:

SE DEFINEN IGUAL QUE LOS VECTORES EXCEPTO QUE SE REQUIERE UN NDICE POR CADA DIMENSIN.

Sintaxis: tipo nombre [tamao 1][tamao 2]...; Una matriz bidimensional se podra representar grficamente como una tabla con filas y columnas. La matriz tridimensional se utiliza, por ejemplo, para trabajos grficos con objetos 3D.

DIAGONAL PRINCIPAL Es donde las posiciones de filas y columnas son iguales.

DIAGONAL SECUNDARIA
Es donde las filas se van aumentando hasta el lmite y las columnas se van disminuyendo desde el lmite hasta 1. Orden ascendente las filas. Orden descendente las columnas.

EJERCICIOS CON MATRICES


MATRIZ CUADRATICA CON FACTOR INGRESADO
Enunciado 1.- Disee un programa que me permita ingresar n elementos a una matriz y me visualice sus diagonales. Anlisis
1.- Creamos nuestra primera funcin que seria borde en el cual contenga un for y un gotoxy para ubicar columna y fila. 2.-Despus creamos la segunda funcin que seria INGRESO un limite para el limite de la matriz e ingresar otro limite para el factor. 3.-Creamos la funcin DIAGONALES que en las diagonales se va a cargar valores ceros y lo dems se llenara con el factor ingresado desde teclado. 4.- Despus en nuestro programa principal colocamos el borde de pantalla principal, llamamos las funciones correspondientes. 5.-Existe un lazo DO-WHILE que permite preguntar si desea continuar Si o NO.

Desarrollo:

#include<conio.h> BIBLIOTECAS PRINCIPALES #include<stdio.h> int matriz[20][20],i,j,col,fil,fil2,fac,lim,op,con; void borde() { for(i=1; i<=80; i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } for(i=1; i<=24; i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } }

FUNCIN BORDE

void ingreso(int limite,int factor) { col=20; fil=3; for(i=1; i<=limite; i++) FUNCIN INGRESO { for(j=1; j<=limite; j++) { if(i==j) { matriz[i][j]=0; } else { matriz[i][j]=1; } } } j=limite; for(i=1; i<=limite; i++) { matriz[i][j]=0; j=j-1;

} con=1; for(i=1; i<=limite; i++) { for(j=1; j<=limite; j++) { if(matriz[i][j]!=0) { matriz[i][j]=factor*con; con=con+1; } } }} void visualizar_matriz(int limite) { col=10; fil=5; for(i=1; i<=limite; i++) { FUNCIN VISUALIZAR MATRIZ for(j=1; j<=limite; j++) { gotoxy(col,fil);printf("%d",matriz[i][j]); col=col+5; } fil=fil+1; col=10;}}

void visualizar_diagonales(int limite) { col=20; fil=fil+2; FUNCION gotoxy(col,fil-1);printf("Diagonales"); DIAGONALES fil2=fil; for(i=1; i<=limite; i++) { for(j=1; j<=limite; j++) { if(i==j) { gotoxy(col,fil); printf("%d",matriz[i][j]); col=col+5; }} fil=fil+1; } col=col-5; j=limite; for(i=1; i<=limite; i++) { gotoxy(col,fil2);printf("%d",matriz[i][j]); j=j-1; col=col-5; fil2=fil2+1;}}

void main() { do { clrscr(); borde(); gotoxy(2,2);printf("Ingrese el limite de la matriz cuadrtica => "); scanf("%d",&lim); gotoxy(2,3);printf("Ingrese el factor => "); scanf("%d",&fac); ingreso(lim,fac); visualizar_matriz(lim); visualizar_diagonales(lim); gotoxy(2,23);printf("PRESIONE: (1)Continuar / (0)Salir => "); scanf("%d",&op); }while(op==1); //getch(); }

PROGRAMA PRINCIPAL

CORRIDO DEL PROGRAMA

http://www.sc.ehu.es/sbweb/fisica/cursoJava/numerico/ matrices/matriz/matriz.htm http://es.wikipedia.org/wiki/Vector_(inform%C3%A1tica )

28