Your SlideShare is downloading. ×
Cuadernillo   Programación
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Cuadernillo Programación

664
views

Published on

Ejercicios desarrollados en C

Ejercicios desarrollados en C

Published in: Education

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
664
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
42
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACIÓN LIC. EN INFORMÁTICA TEMA:  CUADERNILLO DE PROGRAMACIÓN DEL PRIMER PARCIAL. III SEMESTRE “U” AUTOR:  JÉSSICA SORIA. LIC. WILMA GAVILÁNEZ 2011
  • 2. Jéssica Soria ¿QUÉ ES UNA MATRIZ? Una matriz es una tabla cuadrada o rectangular de datos (llamados elementos o entradas de la matriz) ordenados en filas y columnas, donde una fila es cada una de las líneas horizontales de la matriz y una columna es cada una de las líneas verticales. A una matriz con m filas y n columnas se le denomina matriz m-por-n (escrito m×n), y a m y n dimensiones de la matriz. Las dimensiones de una matriz siempre se dan con el número de filas primero y el número de columnas después. Comúnmente se dice que una matriz m-por-n tiene un orden de m × n ("orden" tiene el significado de tamaño). Dos matrices se dice que son iguales si son del mismo orden y tienen los mismos elementos. Al elemento de una matriz que se encuentra en la fila i-ésima y la columna j- ésima se le llama elemento i,j o elemento (i,j)-iésimo de la matriz. Se vuelve a poner primero las filas y después las columnas.Casi siempre, se denotan a las matrices con letras mayúsculas mientras que se utilizan las correspondientes letrasen minúsculas para denotar a los elementos de las mismas. Por ejemplo, al elemento de una matriz A que seencuentra en la fila i-ésima y la columna j-ésima se le denota como ai,j o a[i,j]. Notaciones alternativas son A[i,j] oAi,j. Además de utilizar letras mayúsculas para representar matrices, numerosos autores representan a las matricescon fuentes en negrita para distinguirlas de otros tipos de variables. Así A es una matriz, mientras que A es unescalar.Dada la matriz:que es una matriz 4x3. El elemento o es el 7.La matrizes una matriz 1×9, o un vector fila con 9 elementos.http://es.wikipedia.org/wiki/Vector 1
  • 3. Jéssica Soria ¿QUÉ ES UN VECTOR? En física, matemáticas e ingeniería, un vector (también llamado vector euclidiano o vector geométrico) es una herramienta geométrica utilizada para representar una magnitud física definida por un módulo (o longitud) y una dirección (u orientación).[1] [2] [3] [4] Los vectores se pueden representar geométricamente como segmentos de recta dirigidos o flechas en el plano o en el espacio . Se llama vector de dimensión a una tupla de números reales (que se llaman componentes del vector). El conjunto de todos los vectores de dimensión se representa como (formado mediante el producto cartesiano).Así, un vector perteneciente a un espacio se representa como: , donde .Un vector también se puede ver desde el punto de vista de la geometría como vector geométrico (usandofrecuentemente el espacio tridimensional ó bidimensional ).Una representación conveniente de las magnitudes vectoriales es mediante un vector columna o un vector fila,particularmente cuando están implicadas operaciones matrices (tales como el cambio de base), del modo siguiente:Con esta notación, los vectores cartesianos quedan expresados en la forma:http://es.wikipedia.org/wiki/Matriz_%28matem%C3%A1tica%29 2
  • 4. Jéssica Soria /*Diseñe un Programa que me permita INGRESAR n elementos en una matriz cuadrada*/ ANALISIS Primero escribo las Librerías. Declaro Variables para usarlas en el programa Uso un ciclo DO{}WHILE();para realizar un Nuevo programa cada vez que el usuario lo requiera. Realizo el Diseño de pantalla. Posteriormente para realizar el Ingreso de Matrices necesito leer un límite propuesto por el usuario que en este caso será (lim). A lo posterior se usará dos FOR para el ingreso de la Matriz, i-> para fila y j-> para columna los que serán limitados hasta que i<=lim de igual modo j. A continuación se usaran dos FOR mas para imprimir la matriz, de igual modo se lo limitara de la misma manera. DESARROLLO#include<conio.h>#include<stdio.h>voidmain(){/*Declaración de variables a usar en el programa*/int a,b,c,i,j,col,fila,lim,matriz1[10][10];/*Este DO{}WHILE();servira para realizer un Nuevo programa*/do{/*Cada que se repite el programa se borra la pantalla gracias al CLRSCR();*/clrscr();/* El TEXTCOLOR(); nos sirve para darle color al borde*/textcolor(125);/*Estos lazos FOR usamos para dibujar el borde*/ 3
  • 5. Jéssica Soriafor(i=5;i<=74;i++) { gotoxy(i,4);cprintf("Í"); gotoxy(i,21);cprintf("Í"); }for(i=5;i<=20;i++) { gotoxy(4,i);cprintf("º"); gotoxy(75,i);cprintf("º"); }gotoxy(4,4);cprintf("É");gotoxy(4,21);cprintf("È");gotoxy(75,4);cprintf("»");gotoxy(75,21);cprintf("¼");textcolor(122);/*Aqui gracias al SCANF(); ingresamos el límite*/gotoxy(15,5);cprintf("Ingrese el L¡mite==> ");scanf("%d",&lim);col=15;fila=10;b=14;c=9;textcolor(123);/*Estos lazos FOR son usados para leer los datos de la matriz*/for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { gotoxy(col,fila);cscanf("%d",&matriz1[i][j]); col=col+5; 4
  • 6. Jéssica Soria } fila=fila+3; col=15;b=14;}/*Estos lazos FOR son usados para imprimir los datos de la matriz*/col=15;fila=10;for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { gotoxy(col,fila);printf("%d",matriz1[i][j]); col=col+5; } fila=fila+3; col=15;}textcolor(121);/*Aqui leemos la opcion si desea continuar o no*/gotoxy(10,19);cprintf("Desea continuar==> ");scanf("%d",&a); }while(a==1);} 5
  • 7. Jéssica SoriaPRUEBA DE ESCRITORIO 1 6
  • 8. Jéssica Soria /*2. Diseñe un Programa que me permita GENERAR n múltiplos de CUALQUIER FACTOR ingresado desde teclado que se encuentre entre 2 y 9 la matriz es cuadrática se VISUALIZA LA ENTRADA Y SALIDA*/ ANALISIS Primero escribo las Librerías. Declaro Variables para usarlas en el programa Uso un ciclo DO{}WHILE(); para realizar un Nuevo programa cada vez que el usuario lo requiera. Realizo el diseño de pantalla. Posteriormente para generar la matrices necesito leer un factor y un limitepropuesto por el usuario que en este caso será (fac) y (lim). A lo posterior se usará dos FOR para el generar de la matriz además se usara un contador (x) inicializado en 1 que se irá incrementando cada vez que j se incremente i-> para fila y j-> para columna los que serán limitados hasta que i<=lim de igual modo j. A continuación se usaran dos FOR mas para imprimir la matriz, de igual modo se lo limitara de la misma manera. DESARROLLO#include<conio.h>#include<stdio.h>voidmain(){/*Declaración de variables a usar en el programa*/inti,j,a,matriz[10][10],col,fila,lim,fac,x,m;/*Este DO{}WHILE();servira para realizer un Nuevo programa*/do{/*Cada que se repite el programa se borra la pantalla gracias al CLRSCR();*/clrscr(); 7
  • 9. Jéssica Soria/* El TEXTCOLOR(); nos sirve para darle color al borde*/textcolor(125);/*Estos lazos FOR usamos para dibujar el borde*/for(i=4;i<=76;i++) { gotoxy(i,2);printf("Í"); gotoxy(i,24);printf("Í"); }for(i=3;i<=23;i++) { gotoxy(3,i);printf("º"); gotoxy(77,i);printf("º"); }/* Usamos un DO{}WHILE(); para controlar el tipo de factor*/do{gotoxy(10,5);printf("Ingrese el Factor==> ");scanf("%d",&fac);}while(fac<1 &&fac>10);/*Aqui gracias al SCANF(); ingresamos el límite*/gotoxy(10,7);printf("Ingrese el L¡mite de la Matriz==> ");scanf("%d",&lim);col=15;fila=10;x=1;/*Estos lazos FOR son usados para imprimir los datos de la matriz*/for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { matriz[i][j]=fac*x; 8
  • 10. Jéssica Soria gotoxy(col,fila);printf("%d",matriz[i][j]); col=col+5;x=x+1; } fila=fila+3; col=15; }col=55;fila=10;x=1;for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { matriz[i][j]=fac*x; gotoxy(col,fila);printf("%d",matriz[i][j]); col=col+5;x=x+1; } fila=fila+3; col=55; }gotoxy(50,22);printf("Deseavolver==> ");scanf("%d",&a);}while(a==1);} 9
  • 11. Jéssica SoriaPRUEBA DE ESCRITORIO 2 10
  • 12. Jéssica Soria /*3. Diseñe un programa que me permita LEER UNA MATRIZ, IMPRIMIR la misma e imprimir su DIAGONAL PRINCIPAL*/ ANALISIS Primero escribo las Librerías. Declaro Variables para usarlas en el programa Uso un ciclo DO{}WHILE(); para realizar un Nuevo programa cada vez que el usuario lo requiera. Realizo el diseño de pantalla. Posteriormente para realizar el ingreso de matrices necesito leer un límite propuesto por el usuario que en este caso será (lim). A lo posterior se usará dos FOR para el ingreso de la matriz i-> para fila y j-> para columna los que serán limitados hasta que i<=lim de igual modo j. A continuación se usaran dos FOR mas para imprimir la matriz, de igual modo se lo limitara de la misma manera. Luego se usara otros dos FOR para imprimir la diagonal principal y esto se logra gracias a un IF() en donde se compara i==j para poder imprimir la Diagonal Principal . DESARROLLO#include<conio.h>#include<stdio.h>/*Declaración de variables a usar en el programa*/int a,i,j,col,fila,lim,num,dnp[10],b,matrize[10][10],matrizs[10][10];void main(){/*Este DO{}WHILE(); servirá para realizar un Nuevo programa*/do{clrscr();/*Cada que se repite el programa se borra la pantalla gracias al CLRSCR();*//* El TEXTCOLOR(); nos sirve para darle color al borde*/ 11
  • 13. Jéssica Soriatextcolor(125);/*Estos lazos FOR usamos para dibujar el borde*/for(i=3;i<=78;i++) { gotoxy(i,2);cprintf("Í"); gotoxy(i,23);cprintf("Í"); }for(i=2;i<=23;i++) { gotoxy(2,i);cprintf("º"); gotoxy(77,i);cprintf("º"); }/*Aqui gracias al SCANF(); ingresamos el límite*/gotoxy(15,5);printf("Ingrese el L¡mite==> ");scanf("%d",&lim);/*Aqui gracias al SCANF(); ingresamos la Matriz*/col=5;fila=10;for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { gotoxy(col+=3,fila);scanf("%d",&matrize[i][j]); } fila=fila+3; col=5; }/*Estos lazos FOR son usados para imprimir los datos de la matriz*/ 12
  • 14. Jéssica Soriacol=25;fila=10;for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { gotoxy(col+=3,fila);printf("%d",matrize[i][j]); } fila=fila+3; col=25; }/*Estos lazos FOR son usados para imprimir los datos de la Diagonal Principal*/textcolor(35);col=40;fila=10;for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { if(i==j) { gotoxy(col+=5,fila);cprintf("%d",matrize[i][j]); } else { gotoxy(col+=5,fila);cprintf(" "); } } 13
  • 15. Jéssica Soria fila=fila+3; col=40; }gotoxy(15,20);printf("<== J‚ssica Soria ==> ");gotoxy(55,20);printf("Desea Volver==> ");scanf("%d",&a); }while(a==1);} PRUEBA DE ESCRITORIO 3 14
  • 16. Jéssica Soria /*Diseñe un Programa que me permita LEER una MATRIZ, IMPRIMIR la misma e IMPRIMIR su DIAGONAL PRINCIPAL y DIAGONAL SECUNDARIA*/ ANALISIS Primero escribo las Librerías. Declaro Variables para usarlas en el programa Uso un ciclo DO{}WHILE(); para realizar un Nuevo programa cada vez que el usuario lo requiera. Realizo el diseño de pantalla. Posteriormente para realizar el ingreso de matrices necesito leer un límite propuesto por el usuario que en este caso será (lim). A lo posterior se usará dos FOR para el ingreso de la matriz i-> para fila y j-> para columna los que serán limitados hasta que i<=lim de igual modo j. A continuación se usaran dos FOR mas para imprimir la matriz, de igual modo se lo limitara de la misma manera. Luego se usara otros dos FOR para imprimir la diagonal principal y esto se logra gracias a un IF() en donde se compara i==j para poder imprimir la Diagonal Principal caso contrario se imprimiría un espacio en blanco . Para la Diagonal Secundaria uso solamente un For que vaya hasta Llim y un contador inicializado en el lim para que este se decremente. DESARROLLO#include<conio.h>#include<stdio.h>/*Declaración de variables a usar en el programa*/int a,i,j,col,fila,lim,num,dnp[10],b,matrize[10][10],matrizs[10][10];void main(){/*Este DO{}WHILE(); servira para realizer un Nuevo programa*/do{clrscr(); 15
  • 17. Jéssica Soria/*Cada que se repite el programa se borra la pantalla gracias al CLRSCR();*//* El TEXTCOLOR(); nos sirve para darle color al borde*/textcolor(125);/*Estos lazos FOR usamos para dibujar el borde*/for(i=3;i<=76;i++) { gotoxy(i,2);cprintf("Í"); gotoxy(i,23);cprintf("Í"); }for(i=3;i<=22;i++) { gotoxy(2,i);cprintf("º"); gotoxy(77,i);cprintf("º"); }gotoxy(2,2);cprintf("É");gotoxy(77,2);cprintf("»");gotoxy(77,23);cprintf("¼");gotoxy(2,23);cprintf("È");textcolor(56);/*Aqui gracias al SCANF(); ingresamos el límite*/gotoxy(15,5);cprintf("Ingrese el L¡mite==> ");scanf("%d",&lim);col=5;fila=10;a=4;b=7;textcolor(23);for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) 16
  • 18. Jéssica Soria { do{ gotoxy(col,fila);printf("ÍÍÍ"); gotoxy(col,fila);printf(" "); gotoxy(col,fila);scanf("%d",&matrize[i][j]); }while(matrize[i][j]<8 || matrize[i][j]>58); col=col+3; } fila=fila+3; col=5;}col=25;fila=10;for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { gotoxy(col+=3,fila);cprintf("%d",matrize[i][j]); } fila=fila+3; col=25; }textcolor(35);col=40;fila=10;for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) 17
  • 19. Jéssica Soria { if(i==j) { gotoxy(col+=5,fila);cprintf("%d",matrize[i][j]); } else { gotoxy(col+=5,fila);cprintf(" "); } } fila=fila+3; col=40; }textcolor(85);col=60;fila=10;b=lim;for(i=1;i<=lim;i++) { gotoxy(col-=5,fila);cprintf("%d",matrize[i][b]); b--;fila=fila+3; }textcolor(36);gotoxy(15,20);cprintf("<== J‚ssica Soria ==> ");gotoxy(55,20);printf("Desea Volver==> ");scanf("%d",&a); }while(a==1);} 18
  • 20. Jéssica SoriaPRUEBA DE ESCRITORIO 4 19
  • 21. Jéssica Soria /*5. Diseñe un Programa que me permita ingresar N elementos entre 5 y45 en una Matriz Cuadrada, guardar los elementos Impares en un Vector y visualizarlos en forma ORDENADA*/ ANALISIS Primero escribo las Librerías. Declaro Variables para usarlas en el programa Uso un ciclo DO{}WHILE(); para realizar un Nuevo programa cada vez que el usuario lo requiera. Realizo el diseño de pantalla. Posteriormente para realizar el ingreso de matrices necesito leer un límite propuesto por el usuario que en este caso será (lim). A lo posterior se usará dos FOR para el ingreso de la matriz i-> para fila y j-> para columna los que serán limitados hasta que i<=lim de igual modo j, dentro de este se usara un DO{}WHILE(); para condicionar que los elementos sean entre 5 y 45. A continuación se usaran dos FOR mas para a cada elemento de la matriz dividir para 2 y saber si es par o impar, si es impar se procederá a guardar en un vector. Para ordenar el vector se usa 3 auxiliares en donde ira intercambiando los valores y ordenando el vector. DESARROLLO#include<conio.h>#include<stdio.h>voidmain(){/*Declaración de variables a usar en el programa*/intlim,a,b,c,i,j,col,fila,matriz[10][10],vec[20],op;/*Este DO{}WHILE(); servirá para realizar un Nuevo programa*/do{clrscr();/*Cada que se repite el programa se borra la pantalla gracias al CLRSCR();*/ 20
  • 22. Jéssica Soria/* El TEXTCOLOR(); nos sirve para darle color al borde*/textcolor(125);/*Estos lazos FOR usamos para dibujar el borde*/for(i=3;i<=77;i++) { gotoxy(i,2);cprintf("Í"); gotoxy(i,24);cprintf("Í"); }for(i=3;i<=23;i++) { gotoxy(2,i);cprintf("º"); gotoxy(78,i);cprintf("º"); }textcolor(25);/*Aquí gracias al SCANF(); ingresamos el límite*/gotoxy(15,5);cprintf("Ingrese el L¡mite==> ");scanf("%d",&lim);col=10;fila=10;textcolor(38);gotoxy(5,8);cprintf("Ingreso de Matriz");for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { do{ gotoxy(col,fila);printf(" "); gotoxy(col,fila);scanf("%d",&matriz[i][j]); 21
  • 23. Jéssica Soria }while(matriz[i][j]<5||matriz[i][j]>45); col=col+3; } fila=fila+3; col=10;}a=1;col=35;fila=10;textcolor(94);gotoxy(30,8);cprintf("Vector Resultante");for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { if(matriz[i][j]%2==0) { } else { vec[a]=matriz[i][j]; gotoxy(col,fila);cprintf("%d",vec[a]); a=a+1;fila=fila+3; } if(fila>22) { col=col+3; fila=10; 22
  • 24. Jéssica Soria } } }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; } } }fila=7;col=50;textcolor(74);gotoxy(50,8);cprintf("Vector Ordenado");for(i=1;i<=a;i++) { gotoxy(col,fila+=3);cprintf("%d",vec[i]); if(fila>20) { col=col+3; fila=7; } 23
  • 25. Jéssica Soria}textcolor(356);gotoxy(60,22);cprintf("* J‚ssica Soria *");textcolor(11);gotoxy(5,22);cprintf("Desea Volver... ");scanf("%d",&op); }while(op==1);} PRUEBA DE ESCRITORIO 5 24
  • 26. Jéssica Soria /* Diseñe un Programa que me permita GENERAR MÚLTIPLOS de cualquier factorsolo en las DIAGONALES PRINCIPAL Y SECUNDARIA las demás posiciones se llenencon las POSICIONES 0. */ ANALISIS Primero escribo las Librerías. Declaro Variables para usarlas en el programa Uso un ciclo DO{}WHILE(); para realizar un Nuevo programa cada vez que el usuario lo requiera. Realizo el diseño de pantalla. Posteriormente para generar las matrices necesito leer un límite y 2 factores propuestos por el usuario que en este caso será (lim), (fac1), (fac2). A lo posterior se usará dos FOR para el ingreso de la matriz i-> para fila y j-> para columna los que serán limitados hasta que i<=lim de igual modo j. Para la Diagonal Principal si i==j genera los múltiplos del fac1 caso contrario imprimo 0. Para la Diagonal Secundaria [i][b] es igual a los múltiplos del fac2. A continuación se usaran dos FOR mas para imprimir la matriz, de igual modo se lo limitara de la misma manera. DESARROLLO#include<conio.h>#include<stdio.h>voidmain(){/*Declaración de variables a usar en el programa*/intlim,col,fila,op,a,b,c,i,j,matriz[10][10],fac1,fac2,dig1,dig2;/*Este DO{}WHILE(); servirá para realizar un Nuevo programa*/do{/*Cada que se repite el programa se borra la pantalla gracias al CLRSCR();*/clrscr(); 25
  • 27. Jéssica Soria/* El TEXTCOLOR(); nos sirve para darle color al borde*/textcolor(125);/*Estos lazos FOR usamos para dibujar el borde*/for(i=3;i<=77;i++) { gotoxy(i,2);cprintf("Í"); gotoxy(i,23);cprintf("Í"); }for(i=3;i<=22;i++) { gotoxy(2,i);cprintf("º"); gotoxy(78,i);cprintf("º"); }gotoxy(2,2);cprintf("É");gotoxy(2,23);cprintf("È");gotoxy(78,2);cprintf("»");gotoxy(78,23);cprintf("¼");textcolor(63);gotoxy(15,4);cprintf("=> Diagonal Principal y Diagonal Secundaria <=");textcolor(44);/*Aquí gracias al SCANF(); ingresamos el límite*/gotoxy(15,5);cprintf("Ingrese el L¡mite==> ");scanf("%d",&lim);gotoxy(10,6);cprintf("Ingrese el Factor de la Diagonal Principal==> ");scanf("%d",&fac1);gotoxy(10,7);cprintf("Ingrese el Factor de la Diagonal Secundaria==> ");scanf("%d",&fac2);col=30;fila=9;textcolor(43); 26
  • 28. Jéssica Soria c=1+(lim/2);a=0;for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { a=col; if(i==j) { if(i==c) { matriz[i][j]=fac1*i; gotoxy(a-=2,fila);cprintf("%d",matriz[i][j]); } else { matriz[i][j]=fac1*i; gotoxy(col,fila);cprintf("%d",matriz[i][j]); } } else { gotoxy(col,fila);printf("0"); } a=col; col=col+5; } 27
  • 29. Jéssica Soria fila=fila+3; col=30;}b=1;fila=9;textcolor(90); c=1+(lim/2);for(i=lim;i>=1;i--) { if(i==c) { matriz[i][b]=fac2*b; gotoxy(a+=1,fila);cprintf("%d",matriz[i][b]); b++;a=a-6;fila=fila+3; } else { matriz[i][b]=fac2*b; gotoxy(a,fila);cprintf("%d",matriz[i][b]); b++;a=a-5;fila=fila+3; } }textcolor(125);gotoxy(60,21);cprintf("* J‚ssica Soria *");textcolor(10);gotoxy(4,21);cprintf("Desea Volver... ");scanf("%d",&op); }while(op==1); 28
  • 30. Jéssica Soria} PRUEBA DE ESCRITORIO 6 29
  • 31. Jéssica Soria /* Diseñe un Programa utilizando matrices y funciones que permita generar n elementos en unamatriz cuadrática, con VALORES PARES en la DIAGONAL PRINCIPAL, VALORES IMPARES en la DIAGONAL SECUNDARIA y las demás posiciones con VALORES 0*/ ANALISIS Primero escribo las Librerías. Declaro Variables para usarlas en el programa Uso un ciclo DO{}WHILE(); para realizar un Nuevo programa cada vez que el usuario lo requiera. Realizo el diseño de pantalla. Posteriormente para generar las matrices necesito leer un límite y 2 factores propuestos por el usuario que en este caso será (lim), (fac1), (fac2). A lo posterior se usará dos FOR para el ingreso de la matriz i-> para fila y j-> para columna los que serán limitados hasta que i<=lim de igual modo j. Para la Diagonal Principal si i==j genera los múltiplos del fac1 caso contrario imprimo 0. Para la Diagonal Secundaria [i][b] es igual a los múltiplos del fac2. A continuación se usaran dos FOR mas para imprimir la matriz, de igual modo se lo limitara de la misma manera. DESARROLLO#include<stdio.h>#include<conio.h>/*Declaración de variables a usar en el programa*/intmatriz[20][20],lim,a,b,c,d,op,col,fila,i,j;void borde(){/*Estos lazos FOR usamos para dibujar el borde*/for(i=3;i<=77;i++) 30
  • 32. Jéssica Soria { gotoxy(i,2);printf("Í"); gotoxy(i,24);printf("Í"); }for(i=3;i<=23;i++) { gotoxy(3,i);printf("º"); gotoxy(78,i);printf("º"); }}void par(intlim){ a=2;col=10;fila=10;for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { c=col; if(i==j) { matriz[i][j]=a*i; gotoxy(col,fila);printf("%d",matriz[i][j]); } else { 31
  • 33. Jéssica Soria matriz[i][j]=0; gotoxy(col,fila);printf("%d",matriz[i][j]); } col=col+5; } fila=fila+3; col=10; }}voidimpar(intlim){ j=lim;a=1;b=1;fila=10;d=1+(lim/2);for(i=1;i<=lim;i++) {matriz[i][j]=a*b;if(i==d) { op=c; gotoxy(op-=2,fila);printf("%d",matriz[i][j]); }else { gotoxy(c,fila);printf("%d",matriz[i][j]);}a=a+2;j--; 32
  • 34. Jéssica Soria c=c-5;fila=fila+3;}}void main(){/*Este DO{}WHILE(); servirá para realizar un Nuevo programa*/do{/*Cada que se repite el programa se borra la pantalla gracias al CLRSCR();*/clrscr();borde();gotoxy(15,4);printf("==>EVALUCIàN: ELEMENTO 1 <==");/*Aqui gracias al SCANF(); ingresamos el límite*/gotoxy(10,6);printf("Ingrese el L¡mite ==> ");scanf("%d",&lim);par(lim);impar(lim);gotoxy(10,23);printf("Deseavolver... ");scanf("%d",&op);}while(op==1);} 33
  • 35. Jéssica SoriaPRUEBA DE ESCRITORIO 7 34
  • 36. Jéssica Soria /*Diseñar un Programa que mepermita realizar elPRODUCTO ALGEBRAICO de2 MATRICES validadas entre 1-23, utilizando FUNCIONES. */ ANALISIS Primero escribo las Librerías. Declaro Variables para usarlas en el programa Uso un ciclo DO{}WHILE(); para realizar un Nuevo programa cada vez que el usuario lo requiera. Realizo el diseño de pantalla. Posteriormente para realizar el ingreso de matrices necesito leer un límite propuesto por el usuario que en este caso será (lim). A lo posterior se usarán 4 FOR para el ingreso de la matriz1 y matriz2 i-> para fila y j-> para columna los que serán limitados hasta que i<=lim de igual modo j. A continuación se usaran 3 FOR para realizar el producto de la matriz. DESARROLLO#include<conio.h>#include<stdio.h>/*Declaración de variables a usar en el programa*/int i,j,k,a,b,c,d,op,m1[10][10],m2[10][10],m3[10][10],lim,col,fila,b1[30];void borde(){/* El TEXTCOLOR(); nos sirve para darle color al borde*/textcolor(138);/*Estos lazos FOR usamos para dibujar el borde*/for(i=3;i<=77;i++) { gotoxy(i,2);cprintf("Í"); gotoxy(i,24);cprintf("Í"); } 35
  • 37. Jéssica Soria for(i=3;i<=23;i++) { gotoxy(2,i);cprintf("º"); gotoxy(78,i);cprintf("º"); } gotoxy(2,2);cprintf("É"); gotoxy(2,24);cprintf("È"); gotoxy(78,2);cprintf("»"); gotoxy(78,24);cprintf("¼");}void ingreso(int lim){ col=5;fila=10;a=4;b=9; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { do{ gotoxy(col,fila);printf(" "); gotoxy(col,fila);scanf("%d",&m1[i][j]); }while(m1[i][j]<1||m1[i][j]>23); col=col+4;a=a+3; } fila=fila+2;col=5;b=b+3;a=4; 36
  • 38. Jéssica Soria } col=30;fila=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { do{ gotoxy(col,fila);printf(" "); gotoxy(col,fila);scanf("%d",&m2[i][j]); }while(m2[i][j]<1||m2[i][j]>23); col=col+4; } fila=fila+2; col=30;}}void bordeMatriz(int lim){ textcolor(125); a=5;b=9; for(i=1;i<=lim+1;i++) { for(j=1;j<=lim;j++) { gotoxy(a,b);cprintf("ÄÄÄÄ"); a=a+3; 37
  • 39. Jéssica Soria } b=b+2;a=5;}a=4;b=10;for(i=1;i<=lim;i++){ for(j=1;j<=lim+1;j++) { gotoxy(a,b);cprintf("³"); a=a+4; } b=b+2;a=4;}a=30;b=9;for(i=1;i<=lim+1;i++){ for(j=1;j<=lim;j++) { gotoxy(a,b);cprintf("ÄÄÄÄ"); a=a+3; } b=b+2;a=30;}a=29;b=10;for(i=1;i<=lim;i++){ 38
  • 40. Jéssica Soria for(j=1;j<=lim+1;j++) { gotoxy(a,b);cprintf("³"); a=a+4; } b=b+2;a=29; } a=60;b=9; for(i=1;i<=lim+1;i++) { for(j=1;j<=lim;j++) { gotoxy(a,b);cprintf("ÄÄÄÄ"); a=a+3; } b=b+2;a=60; } a=59;b=10; for(i=1;i<=lim;i++){ for(j=1;j<=lim+1;j++) { gotoxy(a,b);cprintf("³"); a=a+4; } b=b+2;a=59; 39
  • 41. Jéssica Soria }}void producto(int lim){ for(i=0;i<=lim;i++) { for(k=0;k<=lim;k++) { m3[i][k]=0; for(j=0;j<=lim;j++) { m3[i][k]=m3[i][k]+m1[i][j]*m2[j][k]; } } } col=60;fila=10; for(i=1;i<=lim;i++) { for(k=1;k<=lim;k++) { gotoxy(col,fila);printf("%d",m3[i][k]); col=col+5; } fila=fila+2; col=60; 40
  • 42. Jéssica Soria}}void main(){/*Este DO{}WHILE(); servirá para realizar un Nuevo programa*/do{/*Cada que se repite el programa se borra la pantalla gracias al CLRSCR();*/clrscr(); borde();textcolor(110); gotoxy(27,5);cprintf("=> PRODUCTO DE MATRICES <=");/*Aquí gracias al SCANF(); ingresamos el límite*/ gotoxy(15,7);cprintf("Ingrese el L¡mite==> ");scanf("%d",&lim); bordeMatriz(lim); ingreso(lim); producto(lim); textcolor(122); gotoxy(55,21);cprintf(" =>J‚ssica Soria <="); gotoxy(15,21);printf("Desea volver==> ");scanf("%d",&a); }while(a==1);} 41
  • 43. Jéssica SoriaPRUEBA DE ESCRITORIO 8 42