Funciones con vectores y matrices
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Funciones con vectores y matrices

  • 11,574 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
11,574
On Slideshare
11,574
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
201
Comments
0
Likes
2

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. [Escribir el título del documento] UNIVERSIDAD TÉCNICA DE AMBATOFACULTAD CIENCIAS HUMANAS Y DE LA EDUCACIÓNMATERIA: PROGRAMACIÓN 2NOMBRE: JOHANNA MARINLICD: WILMA GAVILANESSEMESTRE: 3ro 1
  • 2. [Escribir el título del documento] ÍndiceÍndice .................................................................................................................................... 2FUNCIONES CON............................................................................................................. 3VECTORES Y MATRICES ........................................................................................... 3 VECTOR.-............................................................................................................................ 3 MATRICES.- .................................................................................................................... 3Funciones en C ............................................................................................................ 3 Función ........................................................................................................................... 3 Llamada a una función................................................................................. 3 Retorno ......................................................................................................................... 3Aplicaciones prácticas ................................................................................... 5Ingreso de datos en una matriz ........................................................... 8Diagonal principal ............................................................................................ 10Diagonal secundaria....................................................................................... 14Bibliografía ............................................................................................................... 17 2
  • 3. [Escribir el título del documento] 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. Índice. DatosMATRICES.- Una matriz es un array multidimensional. Se definen igual que losvectores excepto que se requiere un índice por cada dimensión.Ejemplo: Filas Columna s 1.1 1.2 1.3 2.1 2.2 2.3 3.1 3.2 3.3 Diagonal secundaria Diagonal principalSintaxistipo nombre [tamaño 1][tamaño 2]...;Una matriz bidimensional se podría representar gráficamente como una tabla con filas ycolumnas. La matriz tridimensional se utiliza, por ejemplo, para trabajos gráficos conobjetos 3D.Funciones en CFunciónGrupo de sentencias bajo el mismo nombre que realizan una tarea específica.Llamada a una funciónEjecuta el grupo de sentencias de una función.Retorno 3
  • 4. [Escribir el título del documento]Una vez “llamada” la función, esta hace su trabajo, y regresa al mismo punto donde fuellamada.Las funciones son un conjunto de instrucciones que realizan una tarea específica. Engeneral toman ciertos valores de entrada, llamados parámetros y proporcionan un valor desalida o valor de retorno.Las funciones en programación C, C++ y C# son módulos de programa que se mandancorrer en la función main o dentro de otras funciones.El formato general de una función en C esespecificador_de_tipo nombre_de_función( ){variables localescódigo de la función}Ejemplo:Void matrizvector ( ){}Después de haber declarado la función antes del programa principal . se debe llamar a estafunción dentro del programa principal void main.Ejemplo:Void main{Matrizvector();} 4
  • 5. [Escribir el título del documento]Aplicaciones prácticasEn este ejercicio usamos funciones antes del programa principal y lasllamamos 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. 5
  • 6. [Escribir el título del documento]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; 6
  • 7. [Escribir el título del documento]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: 7
  • 8. [Escribir el título del documento]Ingreso de datos en unamatriz 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. 8
  • 9. [Escribir el título del documento]  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]); 9
  • 10. [Escribir el título del documento]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 principalEs donde las posiciones de filas y columnas son iguales.Ejemplo:1.1 2.2 3.3 Diagonal principal 10
  • 11. [Escribir el título del documento] 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);} 11
  • 12. [Escribir el título del documento]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"); 12
  • 13. [Escribir el título del documento]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: 13
  • 14. [Escribir el título del documento]Diagonal secundariaEs donde las filas se van aumentando hasta el límite y las columnas se vandisminuyendo 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 Diagonal secundaria 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. 14
  • 15. [Escribir el título del documento]  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; 15
  • 16. [Escribir el título del documento]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 PARASALIR ");scanf("%d",&op);}while(op==1);getch();}Ejecución del programa: 16
  • 17. [Escribir el título del documento]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 17