vectores y matrices

19
1 UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD DE CIENCIAS HUMANAS Y DE EDUCACIÓN CARRERA: INFORMÁTICA Y COMPUTACIÓN TRABAJO DE PROGRAMACIÓN CUADERNO DIGITAL NOMBRE: ALEXANDRA MASAQUIZA SEMESTRE: TERCERO AMBATO - ECUADOR 2011

Upload: masaquiza-alexandra

Post on 14-Mar-2016

215 views

Category:

Documents


2 download

DESCRIPTION

SE BASA EN UN LENGUAJE DE PROGRAMACION COMO ES EL LENGUAJE C

TRANSCRIPT

Page 1: VECTORES Y MATRICES

1

UNIVERSIDAD TÉCNICA

DE AMBATO

FACULTAD DE CIENCIAS HUMANAS

Y DE EDUCACIÓN

CARRERA: INFORMÁTICA Y COMPUTACIÓN

TRABAJO DE PROGRAMACIÓN

CUADERNO DIGITAL

NOMBRE: ALEXANDRA MASAQUIZA

SEMESTRE: TERCERO

AMBATO - ECUADOR

2011

Page 2: VECTORES Y MATRICES

2

VECTORES Y MATRICES

DEFINICIONES GENERALES

Arrays.- es un conjunto de elementos del mismo tipo que tienen el mismo nombre y se diferencian

mediante un índice.

MATRIZ.- Una matriz es un array multidimensional. Se definen igual que los vectores excepto que

se requiere un índice por cada dimensión.

Su sintaxis es la siguiente:

Tipo nombre [tamaño 1] [tamaño 2]...;

VECTOR.-un vector es un array unidimensional. Un vector se declara así: Tipo nombre [tamaño]

El tipo indica el tipo de elemento del array (int ,char, float).

Nombre es un identificador que nombra al array.

Tamaño es una constante que indica el número de elementos del array.

Page 3: VECTORES Y MATRICES

3

APLICACIONES PRÁCTICAS

EJERCICIO N°. 1

1.-Diseñe un programa que me permita ingresar n elemtos en una matriz cuadartica.

ANÁLISIS

Para este ejercicio realizamos lo siguiente:

Utilizamos una función para crear el borde .

En el programa principal utilizamos i y j y el nombre de la matriz que i sera para las filas y j para las

columnas .

Un limite para la matriz de cuanto por cuanto queremos que sea la matriz.

CODIFICADO

#include<stdio.h>

#include<conio.h>

Función

void borde (int i)

{

for(i=3;i<=80;i++)

{

gotoxy(i,3);printf("*");

gotoxy(i,50);printf("*");

}

for(i=3;i<=50;i++)

{

gotoxy(3,i);printf("*");

gotoxy(80,i);printf("*");

}

}

Programa principal

void main()

{

int i,j,col,fila,lim,op;

int matriz1[10][10];

do{

clrscr();

borde(i);

col=12;fila=10;

textcolor(78);

gotoxy(20,3);cprintf("PROGRAMA PARA FORMAR UNA MATRIZ");

gotoxy(10,5);printf("Ingrese el limite:");scanf("%d",&lim);

Page 4: VECTORES Y MATRICES

4

textcolor(82);

gotoxy(7,7);cprintf("MATRIZ ENTRANTE MATRIZ SALIENTE");

Ingreso de la matriz

for(i=1;i<=lim;i++)

{

for(j=1;j<=lim;j++)

{

gotoxy(col,fila);scanf("%d",&matriz1[i][j]);

col=col+4;

}

fila=fila+1;

col=12;

}

Visualización de salida de la matriz

col=30;

fila=10;

for(i=1;i<=lim;i++)

{

for(j=1;j<=lim;j++)

{

col=col+6;

gotoxy(col,fila);printf("%d",matriz1[i][j]);

}

fila=fila+1;

col=30;

}

textcolor(45);

gotoxy(8,22);cprintf("INGRESE 1 PARA CONTINUAR Y 0 PARA SALIR");scanf("%d",&op);

}

while(op==1);

getch();

}

Page 5: VECTORES Y MATRICES

5

PRUEBA DE ESCRITORIO

EJERCICIO N°. 2

2.-Diseñe un programa que me permita generar n múltiplos de cualquier factor ingresado desde

teclado que se encuentre dicho factor entre 2y 9 la matriz es de orden cuadrática se visualiza la

entrada y salida.

ANÁLISIS

Para este ejercicio realizamos lo siguiente:

Utilizamos una funcion para crear el borde .

En el programa principal utilizamos i y j y el nombre de la matriz que i sera para las filas y j para las

columnas .

Un limite para la matriz de cuanto por cuanto queremos que sea la matriz.

Columnas y filas para las posiciones de la matriz.

Un factor para crear los multiplos deseados.

También usamos un textcolor para dar color al programa.

Page 6: VECTORES Y MATRICES

6

CODIFICADO

#include<stdio.h>

#include<conio.h>

Función

void borde (int i)

{

for(i=3;i<=80;i++)

{

gotoxy(i,3);printf("*");

gotoxy(i,50);printf("*");

}

for(i=3;i<=50;i++)

{

gotoxy(3,i);printf("*");

gotoxy(80,i);printf("*");

}

}

Programa principal

void main()

{

int mul,col,fila,i,j,lim,fac,op,x;

int matriz1[10][10];

do{

clrscr();

borde(i);

col=8;fila=10;x=1;

textcolor(82);

gotoxy(20,2);cprintf("PROGRAMA DE UNA MATRIZ CON FACTORES");

gotoxy(5,4);printf("Ingrese un limite:");scanf("%d",&lim);

do{

gotoxy(5,6);printf("Ingrese el factor:");scanf("%d",&fac);

textcolor(45);

gotoxy(10,8);cprintf("M_ENTRADA MA_SALIDA");

}

while(fac<2||fac>9);

for(i=1;i<=lim;i++)

{

for(j=1;j<=lim;j++)

{

matriz1[i][j]=fac*x;

Page 7: VECTORES Y MATRICES

7

gotoxy(col,fila);printf("%d",matriz1[i][j]);

x=x+1;

col=col+4;

}

fila=fila+1;

col=8;

}

col=25;

fila=10;

for(i=1;i<=lim;i++)

{

for(j=1;j<=lim;j++)

{

col=col+6;

gotoxy(col,fila);printf("%d",matriz1[i][j]);

}

fila=fila+1;

col=25;

}

gotoxy(10,20);printf("INGRESE 1 PARA CONTINUAR Y 0 PARA SALIR");scanf("%d",&op);

}

while(op==1);

getch();

}

PRUEBA DE ESCRITORIO

Page 8: VECTORES Y MATRICES

8

EJERCICIO N°. 3

3.-diseñe un programa que e permita ingresar n números enteros en una matriz cuadrática recorra

sus posiciones y obtenga sus datos de su diagonal principal.

ANÁLISIS

Para este ejercicio realizamos lo siguiente:

En este programa no utilizamos ninguna funcion.

En el programa principal utilizamos i y j y el nombre de la matriz que i sera para las filas y j para las

columnas .

Un limite para la matriz de cuanto por cuanto queremos que sea la matriz.

Ingresamos la matriz y su impresión de la misma y obtenemos su diagonal principal.

También usamos un textcolor para dar color al programa.

CODIFICADO

#include<stdio.h>

#include<conio.h>

Programa principal

void main()

{

int i,j,col,fila,lim,op;

int matriz1[10][10];

do{

clrscr();

for(i=3;i<=80;i++)

{

gotoxy(i,3);printf("*");

gotoxy(i,50);printf("*");

}

for(i=3;i<=50;i++)

{

gotoxy(3,i);printf("*");

gotoxy(80,i);printf("*");

}

col=8;fila=10;

textcolor(82);

gotoxy(20,3);cprintf("PROGRAMA DE UNA MATRIZ CON DIAGONAL PRINCIPAL");

gotoxy(10,5);printf("Ingrese el límite:");scanf("%d",&lim);

textcolor(45);

gotoxy(10,7);cprintf("ENTRADA SALIDA DIAGONAL_PRIN");

Ingreso de la matriz

for(i=1;i<=lim;i++)

Page 9: VECTORES Y MATRICES

9

{

for(j=1;j<=lim;j++)

{

gotoxy(col,fila);scanf("%d",&matriz1[i][j]);

col=col+2;

}

fila=fila+1;

col=8;

}

Visualización de salida de la matriz

col=25;

fila=10;

for(i=1;i<=lim;i++)

{

for(j=1;j<=lim;j++)

{

col=col+2;

gotoxy(col,fila);printf("%d",matriz1[i][j]);

}

fila=fila+1;

col=25;

}

Sacamos la diagonal principal

col=50;

fila=10;

for(i=1;i<=lim;i++)

{

for(j=1;j<=lim;j++)

{

if(i==j)

{

gotoxy(col,fila);printf("%d",matriz1[i][j]);

col=col+5;

fila=fila+1;

}

}

}

gotoxy(10,45);printf("INGRESE 1 PARA CONTINUAR Y 0 PARA SALIR");scanf("%d",&op);

}

while(op==1);

getch();

}

Page 10: VECTORES Y MATRICES

10

PRUEBA DE ESCRITORIO

EJERCICIO N°. 4

4.-Diseñe un programa que me permita generar múltiplos de cualquier factor ingresado desde

teclado solo en las diagonales principal y secundaria en las demás posiciones se llena con valores

de ceros.

ANÁLISIS

Para este ejercicio realizamos lo siguiente:

Aquí no utilizamos una funcion para crear el borde .

En el programa principal utilizamos i y j y el nombre de la matriz que i sera para las filas y j para las

columnas .

Un limite para la matriz de cuanto por cuanto queremos que sea la matriz.

También usamos un textcolor para dar color al programa.

Utilizamos variables auxiliares y un factor para sacar los múltiplos y también variables para poner

ordenar adecuadamente las diaginales.

CODIFICADO

#include<stdio.h>

#include<conio.h>

Page 11: VECTORES Y MATRICES

11

Programa principal

void main()

{

int matriz[10][10],i,j,fila,col,n,op,lim,g,x,g1,g2,fac,s,mul,q,me,h;

flushall();

do{

clrscr();

textcolor(7);

for(j=1; j<=80;j++)

{

gotoxy(j,1);printf("*");

gotoxy(j,45);printf("*");

}

for(j=1; j<=45;j++)

{

gotoxy(1,j);printf("³");

gotoxy(80,j);printf("³");

}

gotoxy(1,1);printf("Ú");

gotoxy(80,1);printf("¿");

gotoxy(1,45);printf("À");

gotoxy(80,45);printf("Ù");

col=30;

fila=15;

textcolor(7);

gotoxy(15,4);printf("PROGRAMA CON DIAGONALES DE UNA MATRIZ");

gotoxy(5,6);printf("Ingrese L¡mite :");scanf("%d",&lim);

gotoxy(5,7);printf("Ingrese un Factor :");scanf("%d",&fac);

gotoxy(30,12);printf("DIAGONALES");

Ingreso de la matriz con ceros

for(i=1;i<lim+1;i++)

{

for(j=1;j<lim+1;j++)

{

gotoxy(col,fila);printf("0");

col=col+3;

}

col=30;

fila=fila+3;

}

Sacamos las diagonales principales y secundarias con multiplos

col=30;

Page 12: VECTORES Y MATRICES

12

fila=15;

s=1;

for(i=1;i<lim+1;i++)

{

for(j=1;j<lim+1;j++)

{

textcolor(9);

if(i==j)

{

mul=s*fac;

matriz[i][j]=mul;

gotoxy(col,fila);cprintf("%d",matriz[i][j]);

s=s+1;

col=col+3;

fila=fila+3;

}

}

}

g1=col-3;

g2=15;

x=lim;

q=mul;

for(i=1;i<lim+1;i++)

{

mul=mul+fac;

matriz[i][x]=mul;

textcolor(1);

gotoxy(g1,g2);cprintf("%d",matriz[i][x]);

x=x-1;

g2=g2+3;

g1=g1-3;

}

gotoxy(15,40);printf("Ingrese 1 continuar o 0 para salir: ");scanf("%d",&op);

}

while(op==1);

getch();

}

Page 13: VECTORES Y MATRICES

13

PRUEBA DE ESCRITORIO

EJERCICIO N°. 5

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

Para este ejercicio realizamos lo siguiente:

Utilizamos una funcion para crear el borde .

En el programa principal utilizamos i y j y el nombre de la matriz que i sera para las filas y j para las

columnas .

Utilizamos contadores y auxiliares.

Un limite para la matriz de cuanto por cuanto queremos que sea la matriz.

Al ingresar la matriz se realiza una validacion.

Buscamos las elementos impares de la matriz los mismos que los guardamos en un vector y este

vector lo ordenamos debidamente.

Page 14: VECTORES Y MATRICES

14

CODIFICADO

#include<conio.h>

#include<stdio.h>

int i,lim,fac,col,fila,j,con,aux,k,col1,fila1,fila2,op, matriz[15][15],vec[15];

Función

void borde()

{

for(i=1;i<=80;i++)

{

textcolor(5);

gotoxy(i,1);cprintf("*");

gotoxy(i,24);cprintf("*");

}

for(i=1;i<=24;i++)

{

textcolor(57);

gotoxy(1,i);cprintf("*");

gotoxy(80,i);cprintf("*");

}

}

Programa principal

void main()

{

do

{

clrscr();

borde();

textcolor(82);

gotoxy(20,2);cprintf("PROGRAMA DE MATRIZ CON VECTOR ORDENADO");

gotoxy(5,4);printf("Ingrese el limite: ");scanf("%d",&lim);

gotoxy(7,7);printf("MATRIZ VEC_IMPAR VEC_ORDENADO");

Ingreso la matriz con su recpectiva validacion

col=6;

fila=9;

for(i=1;i<=lim;i++)

{

for(j=1;j<=lim;j++)

{

do

{

gotoxy(col,fila);printf(" ");

Page 15: VECTORES Y MATRICES

15

gotoxy(col,fila);scanf("%d",&matriz[i][j]);

}

while(matriz[i][j]<5||matriz[i][j]>=45);

col=col+3;

}

col=6;

fila=fila+1;

}

Recorremos la matriz buscamos los elementos impares y ubicamos en un vector

col1=25;

fila1=9;

con=1;

for(i=1;i<=lim;i++)

{

for(j=1;j<=lim;j++)

{

if(matriz[i][j]%2==1)

{

vec[con]=matriz[i][j];

gotoxy(col1,fila1);printf("%d",vec[con]);

con=con+1;

fila1=fila1+1;

}

}

}

fila2=9;

Ordenamos el vector

for(i=1;i<con;i++)

{

for(j=1;j<con;j++)

{

if(vec[i]<vec[j])

{

aux=vec[i];

vec[i]=vec[j];

vec[j]=aux;

}

}

}

for(j=1;j<con;j++)

{

gotoxy(40,fila2);printf("%d",vec[j]);

Page 16: VECTORES Y MATRICES

16

fila2=fila2+1;

}

gotoxy(10,20);printf("Ingrese 1 para continuar y 0 para salir:");scanf("%d",&op);

}

while(op==1);

getch();

}

PRUEBA DE ESCRITORIO

Page 17: VECTORES Y MATRICES

17

EJERCICIO N°. 6

6.- Diseñe un programa utilizando Matrices y Funciones que permita: Ingresar n elementos en una matriz con datos entre 5 y 35, excluyendo las diagonales principal y secundaria, en dónde la diagonal principal se llena con la serie del Fibonaci y la diagonal secundaria con la factorial de los números ascendentes iniciando en 3. Recorra la matriz y guarde los datos de la diagonal principal en las posiciones pares del vector y los datos de la diagonal segundaria en las posiciones impares del vector. Presente como resultado el vector origen resultante y el mismo vector preséntelo impreso en

forma descendente.

ANÁLISIS

Para este ejercicio realizamos lo siguiente:

En el programa principal utilizamos i y j y el nombre de la matriz que i sera para las filas y j para las

columnas .

Un limite para la matriz de cuanto por cuanto queremos que sea la matriz y tambien para el limite

del factorial.

Ingresamos la matriz con su respectiva validación

CODIFICADO

#include<stdio.h>

#include<conio.h>

Programa principal

void main()

{

int matriz[10][10],i,j,fila,col,n,op,lim,g,x,g1,g2,fac,s,lim1,mul,q,me,h,a,b,c,matriz1[10][10];

flushall();

do{

clrscr();

textcolor(7);

for(j=1; j<=80;j++)

{

gotoxy(j,1);printf("*");

gotoxy(j,45);printf("*");

}

for(j=1; j<=45;j++)

{

gotoxy(1,j);printf("³");

gotoxy(80,j);printf("³");

}

gotoxy(1,1);printf("Ú");

Page 18: VECTORES Y MATRICES

18

gotoxy(80,1);printf("¿");

gotoxy(1,45);printf("À");

gotoxy(80,45);printf("Ù");

col=30;

fila=15;

textcolor(7);

gotoxy(15,4);printf("PROGRAMA CON DIAGONALES DE UNA MATRIZ");

gotoxy(5,6);printf("Ingrese L¡mite :");scanf("%d",&lim);

gotoxy(5,8);printf("Ingrese el limite: ");scanf("%d",&lim1);

gotoxy(30,12);printf("DIAGONALES");

Ingreso de la matriz con su respectiva validación

for(i=1;i<lim+1;i++)

{

for(j=1;j<lim+1;j++)

{

do{

gotoxy(col,fila);scanf(" ");

gotoxy(col,fila);scanf("%d",&matriz[i][j]);

}

while(matriz[i][j]<5||matriz[i][j]>=35);

col=col+3;

}

col=30;

fila=fila+3;

}

Diagonal principal

col=30;

fila=15;

s=1;

for(i=1;i<lim1;i++)

{

for(j=1;j<lim1;j++)

{

textcolor(9);

if(i==j)

{

a=0;

b=1;

c=0;

for(i=1;i<=lim1;i++)

{

Page 19: VECTORES Y MATRICES

19

for(j=1;j<=lim1;j++)

{

a=b;

b=c;

c=a+b;

matriz1[i][j]=c;

gotoxy(col,fila);cprintf("%d",matriz1[i][j]);

s=s+1;

col=col+3;

fila=fila+3;

}

}

}

}

}

gotoxy(15,40);printf("Ingrese 1 continuar o 0 para salir: ");scanf("%d",&op);

}

while(op==1);

getch();

}

PRUEBA DE ESCRITORIO