Você está na página 1de 32

UNIVERSIDAD TCNICA

DE

AMBATO

FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACIN CARRERA: Licenciatura EN INFORMTICA

Alumna: Lorena snchez Ing: WILMA GAVILANES MATERIA : Programacion II

Vectores y matrices

Vectores
Un vector, tambin llamado array(arreglo) unidimensional, es una estructura de datos que permite agrupar elementos del mismo tipo y almacenarlos en un solo bloque de memoria juntos, uno despues de otro. A este grupo de elementos se les identifica por un mismo nombre y la posicin en la que se encuentran. La primera posicin del array es la posicin 0. Podramos agrupar en un array una serie de elementos de tipo enteros, flotantes, caracteres, objetos, etc. Crear un vector en c++ es sencillo, seguimos la siguiente sintaxix: Tipo nombre[tamanyo];

Matrices
Una matriz es un vector de vectores o un tambin llamado array bidimensional. La manera de declarar una matriz es c++ es similar a un vector:
1 int matriz[fils][cols];

int es el tipo de dato, matriz es el nombre del todo el conjunto de datos y debo de especificar el nmero de filas y columnas. Las matrices tambin pueden ser de distintos tipos de datos como char, float, double,etc. Las matrices en c++ se almacenan al igual que los vectores en posiciones consecutivas de memoria. Usualmente uno se hace la idea que una matriz es como un tablero. Pero internamente el manejo es como su definicion lo indica, un vector de vectores, es decir, los vectores estan uno detras del otro juntos. La forma de acceder a los elementos de la matriz es utilizando su nombre e indicando los 2 subindices que van en los corchetes. Si Coloco int matriz [2][3]=10; //estoy asignando al cuarto elemento de la tercera fila el valor 10. No olvidar que tanto filas como columnas se enumeran a partir de 0. Las matrices en c++ se almacenan al igual que los vectores en posiciones consecutivas de memoria. Usualmente uno se hace la idea que una matriz es como un tablero. Pero internamente el manejo es como su definicin lo indica, un vector de vectores un tambin llamado array bidimensional., es decir, los vectores estan uno detras del otro juntos. La forma de acceder a los elementos de la matriz es utilizando su nombre e indicando los 2 subindices que van en los corchetes. Si Coloco int matriz[2][3]=10; //estoy asignando al cuarto elemento de la tercera fila el valor 10. No olvidar que tanto filas como columnas se enumeran a partir de 0.

Punteros
El valor de todas las variables que manejamos en nuestros programas se almacenan en memoria y tienen una direccin. Un puntero es una variable especial que apunta a la direccin de memoria de una variable. El puntero tiene a su vez su propia direccin. Todas estas direcciones tienen un formato hexadecimal. Los punteros son herramientas muy poderosas con muchas utilidades y enormes ventajas como veremos ms adelante. A grandes rasgos, un puntero me permite desplazarme en la memoria, apuntar, re direccionar a ciertas variables, funciones, mtodos, objetos sin necesidad de mover grandes bloques de datos, lo cual nos ahorra muchsimo el consumo de memoria en los programas.

Ejercicios

1.- Disee un programa que me permita ingresar N nmeros enteros en una matriz cuadrtica, e imprimir sus datos el programa se repetir tantas veces el usuario as lo requiera.

Anlisis

En la realizacin de este programa se utilizara como primera vez matrices. Declaracin de las libreras; declaracin de variables, las variables se declarara como variables de tipo entero; Realizamos el borde. Un ciclo repetitivo do while para repetir cuantas veces dese el programa. Ingresamos un lmite Procedemos a realizar el ingreso en donde necesitaremos dos ciclos for uno para posicionar las filas y otro para posicionar las columnas. Utilizamos scanf para el ingreso nuestra variable y ya tenemos el ingreso de nmeros en nuestra matriz. Para imprimir nuestra matriz. Necesitaremos dos ciclos for uno para posicionar las filas y otro para posicionar las columnas. Printf nuestra variable y tenemos impreso la matriz ingresada.
Codificacin
#include<stdio.h> #include<conio.h> void main() { int l,matriz[10][10],j,i,f,c,c1,f1,op; clrscr(); flushall(); clrscr(); do { /*realizando el borde*/ for(i=1;i<=80;i++) {

gotoxy(i,1);printf(""); gotoxy(i,24);printf(""); } for(i=1;i<=23;i++) { gotoxy(1,i);printf(""); gotoxy(80,i);printf(""); } /* realizando el ingreso de la matriz*/ gotoxy(10,3);printf("INGRESO DE UNA MATRIZ "); gotoxy(6,5);printf("Ingrese el lmite: ");scanf("%d",&l); textcolor(3); gotoxy(4,7);cprintf("INGRESO DE LA MATRIZ "); c=5; f=10; for(i=1;i<=l;i++) { for(j=1;j<=l;j++) { gotoxy(c,f);scanf("%d",&matriz[i][j]); c=c+3; } f=f+2; c=5; } /* realizando la imprecion de la matriz*/ f1=10; c1=33; gotoxy(30,7);cprintf("IMPRESION DE LA MATRIZ "); for(i=1;i<=l;i++) { for(j=1;j<=l;j++) { gotoxy(c1,f1);printf("%d",matriz[i][j]); c1=c1+3; } c1=33; f1=f1+2; } gotoxy(8,18);cprintf("Ralizado por LORENA SANCHEZ"); gotoxy(8,20);printf("seleccione 1 para continuar y 0 para salir ");scanf("%d",&op); } while(op==1); getch(); }

Prueba de escritorio

2.-Disee un programa que me permita generar en una matriz cuadrtica los factores de cualquier nmero ingresado por teclado. Rellenar la matriz con 0 y los factores se imprimirn solo en sus diagonales; diagonal principal diagonal secundaria, el programa se repetir tantas veces como el usuario lo requiera.

Anlisis

Declaracin de las libreras; declaracin de variables, las variables se declarara como variables de tipo entero. Realizamos el borde. Un ciclo repetitivo do while para repetir cuantas veces dese el programa. Ingresamos un lmite, ingresamos el nmero que sesee obtener sus factos. Rellenamos la matriz con ceros para luego obtener en sus diagonales los factores del nmero ingresado.

Donde necesitaremos dos ciclos for uno para posicionar las filas y otro para posicionar las columnas. Realizamos el proceso de multiplicar el nmero ingresado por i y tenemos los factores Para imprimir en las diagonales. Necesitaremos dos ciclos for uno para posicionar las filas y otro para posicionar las columnas, usamos posicionamientos de filas printf nuestra variable y estar impreso los factores del numero ingresado.
Codificacin
/*librerias*/ #include<stdio.h> #include<conio.h> void main() { int m[10][10],i,j,f,c,n,op,p,l,g,x,g1,g2,fac,s,md,q,me,h; do { clrscr(); /*dise?ndo el 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("*"); } /*relizando los ingresos */ c=30; f=5; textcolor(7); gotoxy(15,2);cprintf("DISEANDO LA MATRIZ "); textcolor(13); gotoxy(2,5);cprintf("Ingrese Limite: ");scanf("%d",&l);

gotoxy(2,7);cprintf("Ingrese un Factor: ");scanf("%d",&fac); textcolor(10); gotoxy(30,4);cprintf("M. RESPUESTA"); /*rellenando la matriz*/ for(i=1;i<l+1;i++) { for(j=1;j<l+1;j++) { textcolor(9); gotoxy(c,f);cprintf("0"); c=c+3; } c=30; f=f+3; } /*realizando la diagonal principal*/ c=30; f=5; s=1; for(i=1;i<l+1;i++) { for(j=1;j<l+1;j++) { textcolor(7); if(i==j) { md=s*fac; m[i][j]=md; gotoxy(c,f);cprintf("%d",m[i][j]); s=s+1; c=c+3; f=f+3; } } } /*realizando la diagonal secundaria*/ g1=c-3; g2=5; x=l; q=md; for(i=1;i<l+1;i++) { md=md+fac; m[i][x]=md; textcolor(3);

gotoxy(g1,g2);cprintf("%d",m[i][x]); x=x-1; g2=g2+3; g1=g1-3; } gotoxy(10,20);printf("Realizado por LORENA SANCHEZ "); gotoxy(10,22);printf("1 para continuar o 0 para salir: ");scanf("%d",&op); } while(op==1); getch(); }

Prueba de escritorio

3.-Disee un programa que me permita ingresar N nmeros enteros en una matriz cuadrtica, recorra la matriz y presentar sus datos pares en un vector y sus datos impares en otro vector

ANALISIS

Declaracin de las libreras; declaracin de variables, las variables se declarara como variables de tipo entero. Realizamos el borde. Un ciclo repetitivo do while para repetir cuantas veces dese el programa.

Ingresamos un lmite. Necesitaremos dos ciclos for para realizar el ingreso uno para posicionar las filas y otro para posicionar las columnas. Utilizamos scanf para el ingreso de la variable y ya tenemos el ingreso de nmeros en la matriz. Recorremos la matriz, realizamos el proceso para obtener los datos pares e impares, esa variable la paramos aun vector para imprimir. Para la impresin en el vector utilizare un ciclo for para posicionar las filas, usamos posicionamientos de filas printf nuestra variable a imprimir y estar impreso los datos en diferentes vectores
CODIFICACION
#include<stdio.h> #include<conio.h> void main() { int mat[10][10],i,j,f,f1,c1,c,l,op,vec[10],a,b,vec1[10]; do { clrscr(); /*realizando el borde*/ for(i=1;i<=80;i++) { gotoxy(i,1);printf(""); gotoxy(i,24);printf(""); } for(i=1;i<=23;i++) { gotoxy(1,i);printf(""); gotoxy(80,i);printf(""); } /*diseando la matriz*/ textcolor(3); gotoxy(5,2);cprintf("INGRESE UNA MATRIZ Y PRESENTELOS EN DIFERENTES VECTORES PARES E IMPARES "); textcolor(2); gotoxy(2,4);cprintf("Ingrese Lmite :");cscanf("%d",&l); textcolor(4); gotoxy(3,6);cprintf("IMGRESO MATRIZ "); /* relizando elingreso de la matriz*/ c=7;

f=7; for(i=1;i<l+1;i++) { for(j=1;j<l+1;j++) { do { textcolor(6); gotoxy(c,f);cprintf(" "); gotoxy(c,f);cscanf("%d",&mat[i][j]); } while(mat[i][j]<=0||mat[i][j]>=33); c=c+4; } c=7; f=f+2; } /*recorer la matriz y presentar en un vector sus datos pares*/ a=1; c1=30; f1=7; textcolor(5); gotoxy(22,5);cprintf("DATOS DE LA MATRIZ EN UN VECTOR "); textcolor(3); gotoxy(28,6);cprintf("PARES IMPAR "); for(i=1;i<l+1;i++) { for(j=1;j<l+1;j++) { if(mat[i][j]%2==0) { vec1[a]=mat[i][j]; textcolor(1); gotoxy(c1,f1);cprintf("%d",vec1[a]); a=a+1; f1=f1+1; } } } /*recorer la matriz y presentar en un vector sus datos impares */ a=1; c1=40; f1=7; for(i=1;i<l+1;i++) { for(j=1;j<l+1;j++) { if(mat[i][j]%2==1) { vec[a]=mat[i][j]; textcolor(15); gotoxy(c1,f1);cprintf("%d",vec[a]); a=a+1; f1=f1+1; } } }

/* ordenar de forma ascendente el vector par */ c1=62; f1=9; b=1; textcolor(10); gotoxy(58,7);cprintf("VECTOR ORDENADO "); for(i=1;i<a;i++) { for(j=1;j<a;j++) { if(vec1[i]<vec1[j]) { b=vec1[i]; vec1[i]=vec1[j]; vec1[j]=b; } } } for(i=1;i<a;i++) { textcolor(12); gotoxy(60,8);cprintf("PAR IMPAR "); textcolor(7); gotoxy(c1,f1);cprintf("%d",vec1[i]); f1=f1+1; } /* ordenar de forma ascendente el vector impar */ c1=70; f1=9; b=1; for(i=1;i<a;i++) { for(j=1;j<a;j++) { if(vec[i]<vec[j]) { b=vec[i]; vec[i]=vec[j]; vec[j]=b; } } } for(i=1;i<a;i++) { textcolor(19); gotoxy(c1,f1);cprintf("%d",vec[i]); f1=f1+1; } textcolor(7); gotoxy(10,18);cprintf("Realizado por LORENA SANCHEZ "); gotoxy(10,22);cprintf("1 PARA CONTINUAR 0 PARA SALIR "); cscanf("%d",&op); } while(op==1); getch(); }

PRUEBA DE ESCRITORIO

4.-Disee un programa que me permita ingresar N nmeros enteros entre 5 y 45 en una matriz cuadrtica, recorrer la matriz y presentar en un vector solamente sus datos impares el vector debe ser presentado ordenado ascendentemente.

Anlisis

Declaracin de las libreras; declaracin de variables, las variables se


declarara como variables de tipo entero. Realizamos el borde. Un ciclo repetitivo do while para repetir cuantas veces dese el programa. Ingresamos un lmite. Necesitaremos dos ciclos for para realizar el ingreso uno para posicionar las filas y otro para posicionar las columnas.

Utilizamos scanf para el ingreso de la variable y ya tenemos el ingreso de nmeros en la matriz, validacin del ingreso que estar entre 5, 45 Recorremos la matriz, realizamos el proceso para obtener los datos impares, esa variable la paramos aun vector para imprimir. Para la impresin en el vector utilizare un ciclo for para posicionar las filas, usamos posicionamientos de filas printf nuestra variable en donde esta almacenado los datos impares a imprimir y estar impreso los datos en el vector, luego ordenamos los datos en forma ascendente para presentar el

vector impreso.
Codificacin
#include<stdio.h> #include<conio.h> void main() { int mat[10][10],i,j,f,f1,c1,c,l,op,vec[10],a,b; do { clrscr(); /*diseando el 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("*"); } textcolor(5); gotoxy(15,2);cprintf("DISEANDO LA MATRIZ "); textcolor(3); gotoxy(2,4);cprintf("Ingrese Lmite :");scanf("%d",&l); textcolor(4); gotoxy(5,6);cprintf("INGRESE LA MATRIZ "); /*relizando los ingresos */ c=7; f=7;

/* ingresando la matriz*/ for(i=1;i<l+1;i++) { for(j=1;j<l+1;j++) { /* validando el ingreso */ do { textcolor(6); gotoxy(c,f);cprintf(" "); gotoxy(c,f);cscanf("%d",&mat[i][j]); } while(mat[i][j]<=4||mat[i][j]>=46); c=c+4; } c=7; f=f+2; } /*recorer la matriz para presentar en un vector solo sus datos impares */ a=1; c1=40; f1=8; textcolor(4); gotoxy(30,6);cprintf("DATOS IMP.DE LA MATRIZ "); for(i=1;i<l+1;i++) { for(j=1;j<l+1;j++) { if(mat[i][j]%2==1) { vec[a]=mat[i][j]; gotoxy(c1,f1);printf("%d",vec[a]); a=a+1; f1=f1+1; } } } /* ordenando de forma ascendente el vector */ c1=60; f1=8; b=1; for(i=1;i<a;i++) { for(j=1;j<a;j++) { if(vec[i]<vec[j]) { b=vec[i]; vec[i]=vec[j]; vec[j]=b;

} } } /* impresion del vector ordenando */ gotoxy(55,6);printf(" VECTOR ORDENADO "); for(i=1;i<a;i++) { gotoxy(c1,f1);printf("%d",vec[i]); f1=f1+1; } } while(op==1); textcolor(3); gotoxy(10,20);cprintf("Realizado por LORENA SANCHEZ "); gotoxy(10,22);printf("1 PARA CONTINUAR 0 PARA SALIR "); cscanf("%d",&op); getch(); }

Prueba de escritorio

5.-Disee un programa que me permita ingresar N nmeros enteros en una matriz cuadrtica, y obtener su producto algebraico.

Anlisis

Declaracin de las libreras; declaracin de variables, las variables se declarara como variables de tipo entero. Realizamos el borde. Un ciclo repetitivo do while para repetir cuantas veces dese el programa. Ingresamos un lmite. Necesitaremos dos ciclos for para realizar el ingreso uno para posicionar las filas y otro para posicionar las columnas. Utilizamos scanf para el ingreso de las variables y ya el ingreso de la las dos matrices. Recorremos la matriz, realizamos el proceso para obtener el producto algebraico donde debemos multiplicar la primera matriz por la segunda y el resultado la imprimiremos en otra matriz. Para la impresin de la matriz se utilizara dos ciclos for uno para posicionar las filas otro para posicionar las columnas , usamos posicionamientos de filas printf nuestra variable donde esta almacena la multiplicacin.
Codificacin
#include<stdio.h> #include<conio.h> int l,c,c1,c2,f,f1,f2,k,i,j,op,a; int matriz1[10][10],matriz2[10][10],matriz3[10][10]; void borde() for(i=1;i<=80;i++) { gotoxy(i,1);printf(""); gotoxy(i,24);printf("");

} for(i=1;i<=23;i++) { gotoxy(1,i);printf(""); gotoxy(80,i);printf(""); } } void ingreso() { for(i=1;i<=l;i++) { for(j=1;j<=l;j++) { gotoxy(c,f);scanf("%d",&matriz1[i][j]); c=c+5; } c=5; f=f+1; } for(i=1;i<=l;i++) { for(j=1;j<=l;j++) { gotoxy(c1,f1);scanf("%d",&matriz2[i][j]); c1=c1+5; } c1=25; f1=f1+1; } } void producto() { for(i=0;i<=l;i++) { for(j=0;j<=l;j++) { matriz3[i][j]=0; for(k=0;k<=l;k++) { matriz3[i][j]=matriz3[i][j]+matriz1[i][k]*matriz2[k][j]; } } } for(i=1;i<=l;i++) { for(k=1;k<=l;k++) { gotoxy(c2,f2);printf("%d",matriz3[i][k]); c2=c2+4; } c2=42; f2=f2+1; } } void main() { do

{ clrscr(); borde(); c=5; c1=25; c2=42; f=10; f1=10; f2=10; textcolor(3); gotoxy(10,3);cprintf("PRODUCTO ALGEBRAICO DE UNA MATRIZ"); gotoxy(10,5);printf("INGRESE UN LIMITE ");scanf("%d",&l); textcolor(12); gotoxy(5,7);cprintf("MATRIZ1"); gotoxy(25,7);cprintf("MATRIZ2"); gotoxy(38,7);cprintf("MATRIZ RESULTANTE"); ingreso(); producto(); textcolor(3); gotoxy(8,18);cprintf("Ralizado por LORENA SANCHEZ"); gotoxy(8,22);printf("seleccione 1 para continuar y 0 para salir ");scanf("%d",&op); } while(op==1); getch(); }

Prueba de escritorio

6.-Realizar un programa que me permita utilizar funciones con matrices y vectores donde pueda realizar las siguientes opciones: 1.-numeros primos 2.-fibonacci .-ordener par e impar 4.-Ordenar matriz 5.-salir El programa se repetir cuantas veces el usuario lo requiera .

Anlisis

En este programa se utilizara men de opciones, diferentes funciones y tambin se utilizara matrices. Declaracin de las libreras; declaracin de variables, las variables se declarara variables globales y sern de tipo entero. Realizamos la funcin borde. La primera opcin es la de los nmeros primos donde la funcin se llamara primos; En esta funcin se necesita el Ingreso de un lmite, realizar el proceso correspondiente para obtener los nmeros primos y proceder a la impresin en una matriz donde se utilizara dos ciclos for para posicionamiento de filas y de columnas, printf la variable donde esta almacenada el proceso de los nmeros primos. La segunda opcin es la de serie de fibonacci, la funcin se llamara fibonacii En esta funcin se necesita el Ingreso de un lmite, realizar el proceso correspondiente para sacar la serie de fibonacci, y se procede a la impresin de la variable en donde esta almacenada en el proceso se utilizara dos ciclos for para posicionamiento de filas y de columnas, printf la variable y esta la serie de fibonacci realizada La tercera opcin es de presentar en diferentes vectores pares e impares .

Necesitaremos dos ciclos for para realizar el ingreso uno para posicionar las filas y otro para posicionar las columnas. Utilizamos scanf para el ingreso de la variable y ya tenemos el ingreso de nmeros en la matriz. Recorremos la matriz, realizamos el proceso para obtener los datos pares e impares, esa variable la pasamos a un vector para imprimir. Para la impresin en el vector utilizare un ciclo for para posicionar las filas, usamos posicionamientos de filas printf nuestra variable a imprimir y estar impreso los datos en diferentes vectores, realizamos el proceso para ordenar los dados de cada vector y realizamos la impresin de los vectores ordenados uno con datos pares y otro con datos impares La cuarta opcin es la de presentar ordenada la matriz ingresada, donde la funcin se llamara ordenar. Necesitaremos dos ciclos for para realizar el ingreso uno para posicionar las filas y otro para posicionar las columnas. Utilizamos scanf para el ingreso de la variable y ya tenemos el ingreso de nmeros en la matriz. Recorremos la matriz, realizamos el proceso para ordenar los datos de la matriz, la matriz ordenada imprimimos utilizando dos ciclos for uno para las filas y otros para las columnas printf para la variable de la matriz ordenada y tendremos la impreso los datos ordenados de la matriz ingresada. Realizamos el diseo del programa principal donde tendremos el men de opciones , la llamada de cada funcin que se ha realizado Un ciclo repetitivo do while para repetir cuantas veces dese el programa.

Y estar listo el programa.


Codificacin
#include<stdio.h> #include<conio.h> int fil,col,i,j,a,b,c,op,l,matriz[10][10],mat[10][10],f,f1,c1,c,l,op,vec[10],a,b,vec1[10],n,aux,col,fil,k,x,f,c,m; void borde() { int i; clrscr(); for(i=1;i<=80;i++) { gotoxy(i,1);printf(""); gotoxy(i,24);printf(""); } for(i=1;i<=23;i++) { gotoxy(1,i);printf(""); gotoxy(80,i);printf(""); } } void primo(int l) { clrscr(); borde(); gotoxy(30,4);printf("NUMEROS PRIMOS"); gotoxy(10,6);printf("ingrese el limite: ");scanf("%d",&l); a=l*l; k=0; for(x=1;x<=a;x++) { uno: k=k+1; j=0; for(i=1;i<=k;i++) { if(k%i==0) { j=j+1; } } if(j<=2) { vec1[x]=k; } else { goto uno; } } b=0; for (f=1;f<=l;f++) { for (c=1;c<=l;c++)

{ b=b+1; mat[f][c]=vec1[b]; gotoxy(f*4+12,c*2+10);printf("%d",mat[f][c]); } } } void fibonacii(int l) { a=0; b=1; c=0; fil=10; col=10; gotoxy(20,5);printf("MATRIZ CON LA SERIE FIBONACII"); gotoxy(20,8);cprintf("Ingrese el Limite ");scanf("%d",&l); for(i=1;i<=l;i++) { for(j=1;j<=l;j++) { a=b; b=c; c=a+b; matriz[i][j]=c; gotoxy(col,fil);printf("%d",matriz[i][j]); col=col+8; } fil=fil+2; col=10; } } void parinpar(int l) { clrscr(); /*realizando el borde*/ for(i=1;i<=80;i++) { gotoxy(i,1);printf(""); gotoxy(i,24);printf(""); } for(i=1;i<=23;i++) { gotoxy(1,i);printf(""); gotoxy(80,i);printf(""); } /*diseando la matriz*/ textcolor(3); gotoxy(5,2);cprintf("INGRESE UNA MATRIZ Y PRESENTELOS EN DIFERENTES VECTORES PARES E IMPARES "); textcolor(2); gotoxy(2,4);cprintf("Ingrese Lmite :");cscanf("%d",&l); textcolor(4); gotoxy(3,6);cprintf("IMGRESO MATRIZ "); /* relizando elingreso de la matriz*/ c=7; f=7; for(i=1;i<l+1;i++)

{ for(j=1;j<l+1;j++) { do { textcolor(6); gotoxy(c,f);cprintf(" "); gotoxy(c,f);cscanf("%d",&mat[i][j]); } while(mat[i][j]<=0||mat[i][j]>=33); c=c+4; } c=7; f=f+2; } /*recorer la matriz y presentar en un vector sus datos pares*/ a=1; c1=30; f1=7; gotoxy(22,5);printf("DATOS DE LA MATRIZ EN UN VECTOR "); gotoxy(28,6);printf("PARES IMPAR "); for(i=1;i<l+1;i++) { for(j=1;j<l+1;j++) { if(mat[i][j]%2==0) { vec1[a]=mat[i][j]; textcolor(1); gotoxy(c1,f1);cprintf("%d",vec1[a]); a=a+1; f1=f1+1; } } } /*recorer la matriz y presentar en un vector sus datos impares */ a=1; c1=40; f1=7; for(i=1;i<l+1;i++) { for(j=1;j<l+1;j++) { if(mat[i][j]%2==1) { vec[a]=mat[i][j]; textcolor(15); gotoxy(c1,f1);cprintf("%d",vec[a]); a=a+1; f1=f1+1; } } } /* ordenar de forma ascendente el vector par */ c1=62; f1=9;

b=1; textcolor(10); gotoxy(58,7);cprintf("VECTOR ORDENADO "); for(i=1;i<a;i++) { for(j=1;j<a;j++) { if(vec1[i]<vec1[j]) { b=vec1[i]; vec1[i]=vec1[j]; vec1[j]=b; } } } for(i=1;i<a;i++) { textcolor(12); gotoxy(60,8);cprintf("PAR IMPAR "); textcolor(7); gotoxy(c1,f1);cprintf("%d",vec1[i]); f1=f1+1; } /* ordenar de forma ascendente el vector impar */ c1=70; f1=9; b=1; for(i=1;i<a;i++) { for(j=1;j<a;j++) { if(vec[i]<vec[j]) { b=vec[i]; vec[i]=vec[j]; vec[j]=b; } } } for(i=1;i<a;i++) { textcolor(19); gotoxy(c1,f1);cprintf("%d",vec[i]); f1=f1+1; } } /*ordenando la matriz*/ void matordenada(int l) { clrscr(); borde(); col=10; fil=8; gotoxy(15,3);printf("INGRESNANDO UNA MATRIZ PARA PRESENTAR ORDENADA:"); gotoxy(10,5);printf("ingrese el limite :");scanf("%d",&l); for(i=1;i<=l;i++) {

for(j=1;j<=l;j++) { gotoxy(10,7);printf("INGRESE LA MATRIZ "); gotoxy(col,fil);scanf("%d",&matriz[i][j]); col=col+5; } fil=fil+2; col=10; } for(i=1;i<=l;i++) { for(j=1;j<=l;j++) { for(m=1;m<=l;m++) { for(n=1;n<=l;n++) { if(matriz[i][j]<matriz[m][n]) { aux=matriz[i][j]; matriz[i][j]=matriz[m][n]; matriz[m][n]=aux; } } } } } col=40; fil=8; /* inpresion de la matriz ordenada*/ gotoxy(40,7);printf("MATRIZ ORDENADA"); for(i=1;i<=l;i++) { for(j=1;j<=l;j++) { gotoxy(col,fil);printf("%d",matriz[i][j]); col=col+5; } fil=fil+2; col=40; } } /*realizando el programa principal*/ void main() { do { clrscr(); borde(); gotoxy(20,3);printf("FUNCIONES CON MATRICES Y VECTORES"); textcolor(4); gotoxy(30,5);cprintf("OPCIONES QUE PUEDE REALIZAR "); gotoxy(8,7);cprintf("1.-NUMEROS PRIMOS "); gotoxy(8,9);cprintf("2.-FIBONACCI "); gotoxy(8,11);cprintf("3.-ORDENER PAR E IMPAR "); gotoxy(8,13);cprintf("4.-ORDENAR MATRIZ "); gotoxy(8,15);cprintf("5.-SALIR ");

gotoxy(15,19);cprintf("ESCOJA UNA OPCION: ");scanf("%d",&op); switch(op) { case 1: clrscr(); borde(); primo(l); break; case 2: clrscr(); borde(); fibonacii(l); break; case 3: clrscr(); borde(); parinpar(l); break; case 4: clrscr(); borde(); matordenada(l); break; case 5: clrscr(); exit(); break; } gotoxy(30,18);printf("Realizado por LORENA SANCHEZ"); gotoxy(30,22);printf("Presione 1 para continuar o 0 para salir");scanf("%d",&op); } while(op==1); getch(); }

Prueba de escritorio

Você também pode gostar