Documente Academic
Documente Profesional
Documente Cultură
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
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.
Tipo_De_Dato
Nombre_Del_Vector [nmero Elementos] Ejemplo: entero notas[43] carcter cdigo[4] Notacin en lenguaje C Tipo_De_Dato
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
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(); }
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 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.
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
28