Cuadernillo Programación

43
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

Transcript of Cuadernillo Programación

U NIV ERSID AD TÉC NIC A DE AM BATO

F A C U L T A D D E C I E N C I A S

H U M A N A S Y D E L A

E D U C A C I Ó N

L I C . E N I N F O R M Á T I C A

T E M A :

C U A D E R N I L L O D E P R O G R A M A C I Ó N D E L P R I M E R

P A R C I A L .

I I I S E M E S T R E “ U ”

A U T O R :

J É S S I C A S O R I A .

L I C . W I L M A G A V I L Á N E Z

2 0 1 1

Jéssica Soria

1

¿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 letras

en minúsculas para denotar a los elementos de las mismas. Por ejemplo, al elemento de una matriz A que se

encuentra 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] o

Ai,j. Además de utilizar letras mayúsculas para representar matrices, numerosos autores representan a las matrices

con fuentes en negrita para distinguirlas de otros tipos de variables. Así A es una matriz, mientras que A es un

escalar.

Dada la matriz:

que es una matriz 4x3. El elemento o es el 7.

La matriz

es una matriz 1×9, o un vector fila con 9 elementos.

http://es.wikipedia.org/wiki/Vector

Jéssica Soria

2

¿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 (usando

frecuentemente 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

Jéssica Soria

3

/ * D i s e ñ e u n P r o g r a m a q u e m e p e r m i t a I N G R E S A R n

e l e m e n t o s e n u n a m a t r i z c u a d r a d a * /

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*/

Jéssica Soria

4

for(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;

Jéssica Soria

5

}

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);

}

Jéssica Soria

6

PRUEBA DE ESCRITORIO 1

Jéssica Soria

7

/ * 2 . D i s e ñ e u n P r o g r a m a q u e m e p e r m i t a G E N E R A R

n m ú l t i p l o s d e C U A L Q U I E R F A C T O R i n g r e s a d o

d e s d e t e c l a d o q u e s e e n c u e n t r e e n t r e 2 y 9 l a

m a t r i z e s c u a d r á t i c a s e V I S U A L I Z A L A E N T R A D A Y

S A L I D A * /

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();

Jéssica Soria

8

/* 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;

Jéssica Soria

9

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);

}

Jéssica Soria

10

PRUEBA DE ESCRITORIO 2

Jéssica Soria

11

/ * 3 . D i s e ñ e u n p r o g r a m a q u e m e p e r m i t a L E E R U N A

M A T R I Z , I M P R I M I R l a m i s m a e i m p r i m i r s u

D I A G O N A L P R I N C I P A L * /

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*/

Jéssica Soria

12

textcolor(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*/

Jéssica Soria

13

col=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(" ");

}

}

Jéssica Soria

14

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

Jéssica Soria

15

/ * D i s e ñ e u n P r o g r a m a q u e m e p e r m i t a L E E R u n a

M A T R I Z , I M P R I M I R l a m i s m a e I M P R I M I R s u

D I A G O N A L P R I N C I P A L y D I A G O N A L S E C U N D A R I A * /

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();

Jéssica Soria

16

/*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++)

Jéssica Soria

17

{

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++)

Jéssica Soria

18

{

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);

}

Jéssica Soria

19

PRUEBA DE ESCRITORIO 4

Jéssica Soria

20

/ * 5 . D i s e ñ e u n P r o g r a m a q u e m e p e r m i t a i n g r e s a r

N e l e m e n t o s e n t r e 5 y 4 5 e n u n a M a t r i z C u a d r a d a ,

g u a r d a r l o s e l e m e n t o s I m p a r e s e n u n V e c t o r y

v i s u a l i z a r l o s e n f o r m a O R D E N A D A * /

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();*/

Jéssica Soria

21

/* 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]);

Jéssica Soria

22

}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;

Jéssica Soria

23

}

}

}

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;

}

Jéssica Soria

24

}

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

Jéssica Soria

25

/ * D i s e ñ e u n P r o g r a m a q u e m e p e r m i t a G E N E R A R

M Ú L T I P L O S d e c u a l q u i e r f a c t o r s o l o e n l a s

D I A G O N A L E S P R I N C I P A L Y S E C U N D A R I A l a s d e m á s

p o s i c i o n e s s e l l e n e n c o n l a s P O S I C I O N E S 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();

Jéssica Soria

26

/* 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);

Jéssica Soria

27

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;

}

Jéssica Soria

28

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);

Jéssica Soria

29

}

PRUEBA DE ESCRITORIO 6

Jéssica Soria

30

/ * D i s e ñ e u n P r o g r a m a u t i l i z a n d o m a t r i c e s y

f u n c i o n e s q u e p e r m i t a g e n e r a r n e l e m e n t o s e n

u n a m a t r i z c u a d r á t i c a , c o n V A L O R E S P A R E S e n l a

D I A G O N A L P R I N C I P A L , V A L O R E S I M P A R E S e n l a

D I A G O N A L S E C U N D A R I A y l a s d e m á s p o s i c i o n e s

c o n V A L O R E S 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++)

Jéssica Soria

31

{

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

{

Jéssica Soria

32

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--;

Jéssica Soria

33

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);

}

Jéssica Soria

34

PRUEBA DE ESCRITORIO 7

Jéssica Soria

35

/ * D i s e ñ a r u n P r o g r a m a q u e m e p e r m i t a r e a l i z a r

e l P R O D U C T O A L G E B R A I C O d e 2 M A T R I C E S

v a l i d a d a s e n t r e 1 - 2 3 , u t i l i z a n d o F U N C I O N E S . * /

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("Í");

}

Jéssica Soria

36

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;

Jéssica Soria

37

}

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;

Jéssica Soria

38

}

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++)

{

Jéssica Soria

39

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;

Jéssica Soria

40

}

}

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;

Jéssica Soria

41

}

}

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);

}

Jéssica Soria

42

PRUEBA DE ESCRITORIO 8