17
[Escribir el título del documento] 1 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

Funciones con vectores y matrices

Embed Size (px)

Citation preview

Page 1: Funciones con vectores y matrices

[Escribir el título del documento]

1

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

Page 2: Funciones con vectores y matrices

[Escribir el título del documento]

2

Índice

Índice .................................................................................................................................... 2

FUNCIONES CON ............................................................................................................. 3

VECTORES Y MATRICES ........................................................................................... 3

VECTOR.-............................................................................................................................ 3

MATRICES.- .................................................................................................................... 3

Funciones en C ............................................................................................................ 3

Función ........................................................................................................................... 3

Llamada a una función................................................................................. 3

Retorno ......................................................................................................................... 3

Aplicaciones prácticas ................................................................................... 5

Ingreso de datos en una matriz ........................................................... 8

Diagonal principal ............................................................................................ 10

Diagonal secundaria ....................................................................................... 14

Bibliografía ............................................................................................................... 17

Page 3: Funciones con vectores y matrices

[Escribir el título del documento]

3

FUNCIONES CON

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.

MATRICES.- Una matriz es un array multidimensional. Se definen igual que los

vectores excepto que se requiere un índice por cada dimensión.

Ejemplo:

1.1 1.2 1.3

2.1 2.2 2.3

3.1 3.2 3.3

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.

Funciones en C

Función

Grupo de sentencias bajo el mismo nombre que realizan una tarea específica.

Llamada a una función

Ejecuta el grupo de sentencias de una función.

Retorno

Índice.

Datos

Diagonal secundaria Diagonal principal

Filas Columna

s

Page 4: Funciones con vectores y matrices

[Escribir el título del documento]

4

Una vez “llamada” la función, esta hace su trabajo, y regresa al mismo punto donde fue

llamada.

Las funciones son un conjunto de instrucciones que realizan una tarea específica. En

general toman ciertos valores de entrada, llamados parámetros y proporcionan un valor de

salida o valor de retorno.

Las funciones en programación C, C++ y C# son módulos de programa que se mandan

correr en la función main o dentro de otras funciones.

El formato general de una función en C es

especificador_de_tipo nombre_de_función( ) {

variables locales código de la función

}

Ejemplo:

Void matrizvector ( )

{

}

Después de haber declarado la función antes del programa principal . se debe llamar a esta

función dentro del programa principal void main.

Ejemplo:

Void main

{

Matrizvector();

}

Page 5: Funciones con vectores y matrices

[Escribir el título del documento]

5

Aplicaciones prácticas

En este ejercicio usamos funciones antes del programa principal y las

llamamos dentro del programa principal (void main).

1. Realice un programa que me permita ingresar dos matrices y

realizar el producto algebraico de las mismas.

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.

Page 6: Funciones con vectores y matrices

[Escribir el título del documento]

6

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

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

Page 7: Funciones con vectores y matrices

[Escribir el título del documento]

7

for(h=0;h<=l;h++)

{

for(g=0;g<=l;g++) {

mr[h][g]=0;

for(j=0;j<=l;j++) {

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:

Page 8: Funciones con vectores y matrices

[Escribir el título del documento]

8

Ingreso de datos en una

matriz

2. 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.

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.

Page 9: Funciones con vectores y matrices

[Escribir el título del documento]

9

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

{

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

Page 10: Funciones con vectores y matrices

[Escribir el título del documento]

10

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:

Diagonal principal

Es donde las posiciones de filas y columnas son iguales.

Ejemplo:

1.1

2.2

3.3

Diagonal principal

Page 11: Funciones con vectores y matrices

[Escribir el título del documento]

11

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.

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

}

Page 12: Funciones con vectores y matrices

[Escribir el título del documento]

12

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

{

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

Page 13: Funciones con vectores y matrices

[Escribir el título del documento]

13

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:

Page 14: Funciones con vectores y matrices

[Escribir el título del documento]

14

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

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.

Diagonal secundaria

Page 15: Funciones con vectores y matrices

[Escribir el título del documento]

15

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

{

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;

Page 16: Funciones con vectores y matrices

[Escribir el título del documento]

16

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;

}

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:

Page 17: Funciones con vectores y matrices

[Escribir el título del documento]

17

Bibliografía

http://c.conclase.net/curso/?cap=003C++ contienen, como

mínimo, una función.

http://www.fismat.umich.mx/mn1/manual/node7.html