Issuu on Google+

Carrera de Docencia en Informática

UNIVERSIDAD TÉCNICA DE AMBATO

FACULTAD CIENCIAS HUMANAS Y DE LA EDUCACIÓN

MATERIA: PROGRAMACIÓN 2 NOMBRE: JOHANNA MARIN LICD: WILMA GAVILANES SEMESTRE: 3ro

1


Carrera de Docencia en Informática

Índice Índice.............................................................................................................. 2 Vectores y matrices ....................................................................................... 3 VECTOR.- .................................................................................................. 3 MATRICES.-.............................................................................................. 3 Aplicaciones prácticas ................................................................................... 3 Diagonal principal ......................................................................................... 9 Diagonal secundaria .................................................................................... 12

2


Carrera de Docencia en Informática

Vectores y matrices VECTOR.- contiene varios elementos, es un arreglo unidimensional, que tiene un índice y un dato, cada índice apunta a un solo dato. Índice. Datos

MATRICES.- Una matriz es un array multidimensional. Se definen igual que los vectores excepto que se requiere un índice por cada dimensión. Filas

Ejemplo:

Columna s 1.1 1.2

1.3

2.1

2.2

2.3

3.1

3.2

3.3

Diagonal secundaria

Diagonal principal

Sintaxis tipo nombre [tamaño 1][tamaño 2]...; Una matriz bidimensional se podría representar gráficamente como una tabla con filas y columnas. La matriz tridimensional se utiliza, por ejemplo, para trabajos gráficos con objetos 3D.

Aplicaciones prácticas 1. Diseñe un programa que me permita ingresar n elementos en una matriz cuadrática. Análisis:  El siguiente programa vamos a realizar en lenguaje C, utilizando la instrucción gotoxy para ordenar en filas y columnas.  También utilizamos la instrucción clrscr (); para borrar la pantalla cada vez que se ejecute el programa, getch (); para la pausa del programa.

3


Carrera de Docencia en Informática

 También utilizamos la función borde para el margen o borde y en el programa principal llamamos a la función borde.  Ingresamos un límite para el límite de la matriz.  Declaramos a la matriz de tipo entero.  Utilizamos dos lazos for para ingresar una matriz.  Utilizamos la instrucción scanf para ingresar datos en la matriz.  Utilizamos la instrucción printf para visualizar o imprimir los datos de la matriz.  Utilizamos la sentencia do while para repetir el proceso las veces que el usuario lo desee.

Codificación: #include<stdio.h> #include<conio.h>

int i,k,j,l,f,c,op; int matriz1[3][3]; void borde() { for(i=1;i<=60;i++) { gotoxy(i,1);printf("%",i); gotoxy(i,24);printf("%",i); } for(i=1;i<=24;i++) { gotoxy(1,i);printf("%",i); gotoxy(60,i);printf("%",i); } } void main() { do { clrscr(); borde(); gotoxy(5,5);printf("ingrese un limite ");scanf("%d",&l); c=10; f=10; for(j=1;j<=l;j++) { for(k=1;k<=l;k++) 4


Carrera de Docencia en Inform谩tica

{ gotoxy(c,f);scanf("%d",&matriz1[j][k]); c=c+5; } c=10; f=f+1; } c=25; f=10; for(j=1;j<=l;j++) { for(k=1;k<=l;k++) { gotoxy(c,f);printf("%d",matriz1[j][k]); c=c+5; } c=25; f=f+1;} gotoxy(10,20);printf("1 para seguir y 0 para salir");scanf("%d",&op); } while(op==1); getch();}

Ejecuci贸n del programa:

5


Carrera de Docencia en Informática

2. Diseñe un programa que me permita generar n múltiplos de cualquier factor ingresado desde teclado que se encuentre dicho factor entre 2 y 9 la matriz es de orden cuadrática se visualiza la entrada y la salida de datos. Análisis:  El siguiente programa vamos a realizar en lenguaje C, utilizando la instrucción gotoxy para ordenar en filas y columnas.  También utilizamos la instrucción clrscr (); para borrar la pantalla cada vez que se ejecute el programa, getch (); para la pausa del programa.  También utilizamos la función borde para el margen o borde y en el programa principal llamamos a la función borde.  Ingresamos un límite para el límite de la matriz.  Declaramos a la matriz de tipo entero.  Utilizamos dos lazos for para ingresar una matriz.  Utilizamos la instrucción scanf para ingresar datos en la matriz.  Utilizamos la instrucción printf para visualizar o imprimir los datos de la matriz.  Utilizamos la sentencia do while para validar el ingreso de cualquier factor entre 2 y 9 , también para repetir el proceso las veces que el usuario lo desee.

Codificación: #include<stdio.h> #include<conio.h> int i,fac,l,f,c,op,k,j,a; int matriz[3][3]; void borde() { for(i=1;i<=24;i++) { gotoxy(1,i);printf("*",i);

6


Carrera de Docencia en Informรกtica

gotoxy(60,i);printf("*",i); } for(i=1;i<=60;i++) { gotoxy(i,1);printf("*",i); gotoxy(i,24);printf("*",i); } } void main() { do { clrscr(); borde(); c=5; f=6; gotoxy(2,2);printf("ingrese un limite ");scanf("%d",&l); do { gotoxy(20,4);printf(" "); gotoxy(2,4);printf("ingrese el factor ");scanf("%d",&fac); } while(fac<2||fac>9); a=1; for(j=1;j<=l;j++) { for(k=1;k<=l;k++) { matriz[j][k]=fac*a; gotoxy(c,f);printf("%d",matriz[j][k]); a=a+1; c=c+3; } f=f+1; c=5; } c=40; f=6; a=1; for(j=1;j<=l;j++) { for(k=1;k<=l;k++) { matriz[j][k]=fac*a; gotoxy(c,f);printf("%d",matriz[j][k]); a=a+1; c=c+3; 7


Carrera de Docencia en Inform谩tica

} f=f+1; c=40; } gotoxy(10,20);printf("1 para seguir 0 para salir ");scanf("%d",&op); } while(op==1); getch(); }

Ejecuci贸n del programa:

8


Carrera de Docencia en Informática

Diagonal principal Es donde las posiciones de filas y columnas son iguales. Ejemplo: 1.1 2.2 3.3 Diagonal principal

3. Diseñe un programa que me permita ingresar n números enteros en una matriz cuadrática, recorra sus posiciones y obtenga sus datos de su diagonal principal. Análisis:  El siguiente programa vamos a realizar en lenguaje C, utilizando la instrucción gotoxy para ordenar en filas y columnas.  También utilizamos la instrucción clrscr (); para borrar la pantalla cada vez que se ejecute el programa, getch (); para la pausa del programa.  También utilizamos la función borde para el margen o borde y en el programa principal llamamos a la función borde.  Ingresamos un límite para el límite de la matriz.  Declaramos a la matriz de tipo entero.  Utilizamos dos lazos for para ingresar una matriz. También utilizamos una condición if que la fila sea igual a la columna para coger los datos de la diagonal principal.  Utilizamos la instrucción scanf para ingresar datos en la matriz.  Utilizamos la instrucción printf para visualizar o imprimir los datos de la matriz.  Utilizamos la sentencia do while para repetir el proceso las veces que el usuario lo desee.

9


Carrera de Docencia en Inform谩tica

Codificaci贸n: #include<stdio.h> #include<conio.h> int i,c,f,h,j,l,op; int matriz[9][9]; void borde() { for(i=1;i<=24;i++) { gotoxy(1,i);printf("&",i); gotoxy(80,i);printf("&",i); } for(i=1;i<=80;i++) { gotoxy(i,1);printf("&",i); gotoxy(i,24);printf("&",i); }} void main() { do { clrscr(); borde(); c=10; f=10; gotoxy(2,2);printf("INGRESE UN LIMITE ");scanf("%d",&l); for(j=1;j<=l;j++) { for(h=1;h<=l;h++) { gotoxy(5,7);printf("M.de entrada"); gotoxy(c,f);scanf("%d",&matriz[j][h]); c=c+3; } f=f+1; c=10; } c=25; f=10; for(j=1;j<=l;j++) { for(h=1;h<=l;h++) {

10


Carrera de Docencia en Inform谩tica

gotoxy(20,7);printf("M. resultante"); gotoxy(c,f);printf("%d",matriz[j][h]); c=c+3; } f=f+1; c=25; } c=43; f=10; for(j=1;j<=l;j++) { for(h=1;h<=l;h++) { if(j==h) { gotoxy(38,7);printf("M. diagonal principal"); gotoxy(c,f);printf("%d",matriz[j][h]); c=c+3; f=f+1; }}} gotoxy(10,20);printf("1 para seguir 0 para salir ");scanf("%d",&op); } while(op==1); getch(); }

Ejecuci贸n del programa:

11


Carrera de Docencia en InformĂĄtica

Diagonal secundaria Es donde las filas se van aumentando hasta el lĂ­mite y las columnas se van disminuyendo desde el lĂ­mite hasta 1. Orden ascendente las filas. Orden descendente las columnas. Ejemplo: 1.1

1.2

1.3

2.1

2.2

2.3

3.1

3.2

3.3

Diagonal secundaria

12


Carrera de Docencia en Informática

4. Diseñe un programa que me permita generar múltiplos de cualquier factor ingresado desde teclado, solo en las diagonales principal y secundaria, las demás posiciones se llenan con valores ceros. Análisis:  El siguiente programa vamos a realizar en lenguaje C, utilizando la instrucción gotoxy para ordenar en filas y columnas.  También utilizamos la instrucción clrscr (); para borrar la pantalla cada vez que se ejecute el programa, getch (); para la pausa del programa.  También utilizamos la función borde para el margen o borde y en el programa principal llamamos a la función borde.  Ingresamos un límite para el límite de la matriz.  Declaramos a la matriz de tipo entero.  Utilizamos dos lazos for para ingresar una matriz. También utilizamos una condición if que la fila sea igual a la columna para coger los datos de la diagonal principal.  Para la diagonal secundaria se utiliza un contador que le inicializamos en 1 para el control de las columnas. Y la variable de la columna debe irse disminuyendo de 1 en 1.  Utilizamos la instrucción scanf para ingresar datos en la matriz.  Utilizamos la instrucción printf para visualizar o imprimir los datos de la matriz.  Utilizamos la sentencia do while para repetir el proceso las veces que el usuario lo desee.

Codificación: #include<conio.h> #include<stdio.h> int i,l,c,f,g,j,fac,m,h,c1,cont,c1,h1,op,c2; int matriz[10][10]; void borde() { for(i=1;i<=80;i++)

13


Carrera de Docencia en Informรกtica { textcolor(5); gotoxy(i,1);cprintf("%",i); gotoxy(i,24);cprintf("%",i); } for(i=1;i<=24;i++) { textcolor(7); gotoxy(1,i);cprintf("%",i); gotoxy(80,i);cprintf("%",i); } } void main() { do { clrscr(); borde(); gotoxy(30,4);printf("MATRICES"); gotoxy(4,7);printf("INGRESE UN LIMITE: ");scanf("%d",&l); gotoxy(4,9);printf("INGRESE UN FACTOR: ");scanf("%d",&fac); c=15; f=15; m=1; h=1; c=25; f=15; m=1; h=1; for(j=1;j<=l;j++) { for(g=1;g<=l;g++) { if(j==g) { m=fac*h; matriz[j][g]=m; gotoxy(c,f);printf("%d",matriz[j][g]); h=h+1; } else { gotoxy(c,f);printf("0"); } c=c+3; } c=25; f=f+3;

14


Carrera de Docencia en Inform谩tica } c2=26; c1=c2+l-1; f=15; cont=1; h1=h; for(j=1;j<=l;j++) { m=fac*h1; matriz[j][cont]=m; gotoxy(c1+3,f);printf("%d",matriz[j][cont]); h1=h1+1; gotoxy(10,22);printf("DESEA REPETIR EL PROCESO 1 PARA SEGUIR 0 PARA SALIR ");scanf("%d",&op); } while(op==1); getch(); }

Ejecuci贸n del programa:

15


Carrera de Docencia en Informática

5. Diseñe un programa que me permita ingresar n elementos enteros en una matriz cuadrática los mismos que deben estar en un rango desde 5 hasta 45, recorra la matriz y encuentre todos los elementos impares de la matriz y guárdelos en un vector, el mismo que se debe presentar en forma ordenada. Análisis:  El siguiente programa vamos a realizar en lenguaje C, utilizando la instrucción gotoxy para ordenar en filas y columnas.  También utilizamos la instrucción clrscr (); para borrar la pantalla cada vez que se ejecute el programa, getch (); para la pausa del programa.  También utilizamos la función borde para el margen o borde y en el programa principal llamamos a la función borde.  Ingresamos un límite para el límite de la matriz.

16


Carrera de Docencia en Informática

 Declaramos a la matriz de tipo entero.  Utilizamos dos lazos for para ingresar una matriz.  Utilizamos la condición if para saber que datos ingresados en la matriz son impares.  También usamos un auxiliar para guardar el vector para poder ordenar el vector.  Utilizamos la instrucción scanf para ingresar datos en la matriz.  Utilizamos la instrucción printf para visualizar o imprimir los datos de la matriz.  Utilizamos la sentencia do while para repetir el proceso las veces que el usuario lo desee.

Codificación: #include<conio.h> #include<stdio.h> int i,l,fac,c,f,h,j,con,aux,k,c1,f1,f2,op; int matriz[10][10],vec[10]; void borde() { for(i=1;i<=80;i++) { textcolor(5); gotoxy(i,1);cprintf("@",i); gotoxy(i,24);cprintf("@",i); } for(i=1;i<=24;i++) { textcolor(7); gotoxy(1,i);cprintf("@",i); gotoxy(80,i);cprintf("@",i); } } void main() { do { clrscr(); 17


Carrera de Docencia en Informรกtica

borde(); gotoxy(20,2);printf("VECTORES Y MATRICES "); gotoxy(5,4);printf("INGRESE UN LIMITE: ");scanf("%d",&l); gotoxy(5,7);printf("MATRIZ"); gotoxy(18,7);printf("VEC."); gotoxy(26,7);printf("V. ordenado"); c=7; f=9; for(h=1;h<=l;h++) { for(j=1;j<=l;j++) { do { gotoxy(c,f);printf(" "); gotoxy(c,f);scanf("%d",&matriz[h][j]); } while(matriz[h][j]<5||matriz[h][j]>=45); c=c+3; } c=7; f=f+1; } c1=20; f1=9; con=1; for(h=1;h<=l;h++) { for(j=1;j<=l;j++) { if(matriz[h][j]%2==1) { vec[con]=matriz[h][j]; gotoxy(c1,f1);printf("%d",vec[con]); con=con+1; f1=f1+1; } } } f2=9; for(h=1;h<con;h++) { for(j=1;j<con;j++) { if(vec[h]<vec[j]) { aux=vec[h]; 18


Carrera de Docencia en Inform谩tica

vec[h]=vec[j]; vec[j]=aux; } } } for(j=1;j<con;j++) { gotoxy(30,f2);printf("%d",vec[j]); f2=f2+1; } gotoxy(10,20);printf("1 PARA SEGUIR 0 PARA SALIR ");scanf("%d",&op); } while(op==1); getch(); }

Ejecuci贸n del programa:

6. Realice un programa que me permita ingresar dos matrices y realizar el producto algebraico de las mismas.

19


Carrera de Docencia en Informática

Análisis:  El siguiente programa vamos a realizar en lenguaje C, utilizando la instrucción gotoxy para ordenar en filas y columnas.  También utilizamos la instrucción clrscr (); para borrar la pantalla cada vez que se ejecute el programa, getch (); para la pausa del programa.  También utilizamos la función borde para el margen o borde y en el programa principal llamamos a la función borde.  Ingresamos un límite para el límite de la matriz.  Declaramos a la matriz de tipo entero.  Utilizamos dos lazos for para ingresar dos matrices.  Luego utilizamos tres lazos for. los dos primeros lazos for es para el control de los datos ingresados en las columnas y filas de la matriz.  Realizamos el proceso utilizando una tercera matriz, esta matriz va a funcionar como un contador el cual le inicializamos en 0 y esta matriz es la que suma a la primera matriz ingresada y multiplica a la segunda matriz.  Utilizamos funciones uno para el ingreso y otro para el proceso y en el programa principal llamamos a las funciones.  Utilizamos la instrucción scanf para ingresar datos en la matriz.  Utilizamos la instrucción printf para visualizar o imprimir los datos de la matriz.  Utilizamos la sentencia do while para repetir el proceso las veces que el usuario lo desee.

Codificación: #include<stdio.h> #include<conio.h> int i,l,c,f,c1,f1,j,h,g,op,col,fl; int m[10][10],m1[10][10],mr[10][10]; void borde() { textcolor(11); for(i=1;i<=45;i++)

20


Carrera de Docencia en Informรกtica

{ gotoxy(1,i);cprintf("&",i); gotoxy(80,i);cprintf("&",i); } for(i=1;i<=80;i++) { gotoxy(i,1);cprintf("&",i); gotoxy(i,45);cprintf("&",i); } } void ingreso() { c=6; f=12; for(h=1;h<=l;h++) { for(g=1;g<=l;g++) { gotoxy(c,f);scanf("%d",&m[h][g]); c=c+3; } c=6; f=f+2; } c1=20; f1=12; for(h=1;h<=l;h++) { for(g=1;g<=l;g++) { gotoxy(c1,f1);scanf("%d",&m1[h][g]); c1=c1+3; } c1=20; f1=f1+2; } } void producto(int l) { col=30; fl=12; for(h=0;h<=l;h++) { for(g=0;g<=l;g++) { mr[h][g]=0; for(j=0;j<=l;j++) 21


Carrera de Docencia en Inform谩tica

{ mr[h][g]=mr[h][g]+m[h][j]*m1[j][g]; }}} for(h=1;h<=l;h++) { for(j=1;j<=l;j++) { gotoxy(col,fl);printf("%d",mr[h][j]); col=col+3; } col=30; fl=fl+2; }} void main() { do { clrscr(); borde(); gotoxy(10,5);printf("PRODUCTO ALGEBRAICO DE MATRICES"); gotoxy(7,8);printf("INGRESE UN LIMITE: ");scanf("%d",&l); gotoxy(6,10);printf("MATRIZ 1"); gotoxy(18,10);printf("MATRIZ 2"); gotoxy(30,10);printf("PRDCT DE 2 MATRZ"); ingreso(); producto(l); gotoxy(10,20);printf("1 PARA SEGUIR 0 PARA SALIR: ");scanf("%d",&op); } while(op==1); getch(); }

Ejecuci贸n del programa:

22


Carrera de Docencia en Informรกtica

23


vectores y matrices en lenguaje C