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 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
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 (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
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 Soria
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;
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
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
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 Soria
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*/
12
14. Jéssica Soria
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(" ");
}
}
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
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
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
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
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
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
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