Вы находитесь на странице: 1из 17

[Escribir el ttulo del documento]

UNIVERSIDAD TCNICA DE AMBATO

FACULTAD CIENCIAS HUMANAS Y DE LA EDUCACIN

MATERIA: PROGRAMACIN 2 NOMBRE: JOHANNA MARIN LICD: WILMA GAVILANES SEMESTRE: 3ro

[Escribir el ttulo del documento]

ndice
ndice .................................................................................................................................... 2 FUNCIONES CON............................................................................................................. 3 VECTORES Y MATRICES ........................................................................................... 3 VECTOR.-............................................................................................................................ 3 MATRICES.- .................................................................................................................... 3 Funciones en C ............................................................................................................ 3 Funcin ........................................................................................................................... 3 Llamada a una funcin................................................................................. 3 Retorno ......................................................................................................................... 3 Aplicaciones prcticas ................................................................................... 5 Ingreso de datos en una matriz ........................................................... 8 Diagonal principal ............................................................................................ 10 Diagonal secundaria....................................................................................... 14 Bibliografa ............................................................................................................... 17

[Escribir el ttulo 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. Datos

MATRICES.- Una matriz es un array multidimensional. Se definen igual que los vectores excepto que se requiere un ndice por cada dimensin. Ejemplo:
Filas Columna s 1.1 1.2 2.1 3.1 Diagonal secundaria 2.2 3.2

1.3 2.3 3.3 Diagonal principal

Sintaxis tipo nombre [tamao 1][tamao 2]...; Una matriz bidimensional se podra representar grficamente como una tabla con filas y columnas. La matriz tridimensional se utiliza, por ejemplo, para trabajos grficos con objetos 3D.

Funciones en C
Funcin Grupo de sentencias bajo el mismo nombre que realizan una tarea especfica. Llamada a una funcin Ejecuta el grupo de sentencias de una funcin. Retorno

[Escribir el ttulo del documento]

Una vez llamada la funcin, esta hace su trabajo, y regresa al mismo punto donde fue llamada. Las funciones son un conjunto de instrucciones que realizan una tarea especfica. En general toman ciertos valores de entrada, llamados parmetros y proporcionan un valor de salida o valor de retorno. Las funciones en programacin C, C++ y C# son mdulos de programa que se mandan correr en la funcin main o dentro de otras funciones.

El formato general de una funcin en C es


especificador_de_tipo nombre_de_funcin( ) { variables locales cdigo de la funcin }

Ejemplo: Void matrizvector ( )


{ }

Despus de haber declarado la funcin antes del programa principal . se debe llamar a esta funcin dentro del programa principal void main. Ejemplo: Void main
{ Matrizvector(); }

[Escribir el ttulo del documento]

Aplicaciones prcticas
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. Anlisis:
El siguiente programa vamos a realizar en lenguaje C, utilizando la instruccin gotoxy para ordenar en filas y columnas. Tambin utilizamos la instruccin clrscr (); para borrar la pantalla cada vez que se ejecute el programa, getch (); para la pausa del programa. Tambin utilizamos la funcin borde para el margen o borde y en el programa principal llamamos a la funcin borde. Ingresamos un lmite para el lmite 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 instruccin scanf para ingresar datos en la matriz. Utilizamos la instruccin 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.

[Escribir el ttulo del documento]

Codificacin:
#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

[Escribir el ttulo 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(); }

Ejecucin del programa:

[Escribir el ttulo del documento]

Ingreso de datos en una matriz


2. Disee un programa que me permita ingresar n elementos en una matriz cuadrtica. Anlisis:
El siguiente programa vamos a realizar en lenguaje C, utilizando la instruccin gotoxy para ordenar en filas y columnas. Tambin utilizamos la instruccin clrscr (); para borrar la pantalla cada vez que se ejecute el programa, getch (); para la pausa del programa. Tambin utilizamos la funcin borde para el margen o borde y en el programa principal llamamos a la funcin borde. Ingresamos un lmite para el lmite de la matriz. Declaramos a la matriz de tipo entero. Utilizamos dos lazos for para ingresar una matriz. Utilizamos la instruccin scanf para ingresar datos en la matriz. Utilizamos la instruccin printf para visualizar o imprimir los datos de la matriz.

[Escribir el ttulo del documento]

Utilizamos la sentencia do while para repetir el proceso las veces que el usuario lo desee.

Codificacin:
#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

[Escribir el ttulo 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();}

Ejecucin del programa:

Diagonal principal
Es donde las posiciones de filas y columnas son iguales.
Ejemplo: 1.1 2.2 3.3 Diagonal principal

10

[Escribir el ttulo del documento]

3. Disee un programa que me permita ingresar n nmeros enteros en una matriz cuadrtica, recorra sus posiciones y obtenga sus datos de su diagonal principal. Anlisis:
El siguiente programa vamos a realizar en lenguaje C, utilizando la instruccin gotoxy para ordenar en filas y columnas. Tambin utilizamos la instruccin clrscr (); para borrar la pantalla cada vez que se ejecute el programa, getch (); para la pausa del programa. Tambin utilizamos la funcin borde para el margen o borde y en el programa principal llamamos a la funcin borde. Ingresamos un lmite para el lmite de la matriz. Declaramos a la matriz de tipo entero. Utilizamos dos lazos for para ingresar una matriz. Tambin utilizamos una condicin if que la fila sea igual a la columna para coger los datos de la diagonal principal. Utilizamos la instruccin scanf para ingresar datos en la matriz. Utilizamos la instruccin 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.

Codificacin:
#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

[Escribir el ttulo 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

[Escribir el ttulo 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(); }

Ejecucin del programa:

13

[Escribir el ttulo del documento]

Diagonal secundaria
Es donde las filas se van aumentando hasta el lmite y las columnas se van disminuyendo desde el lmite hasta 1. Orden ascendente las filas. Orden descendente las columnas.
Ejemplo: 1.1 2.1 3.1 Diagonal secundaria 1.2 2.2 3.2 1.3 2.3 3.3

4. Disee un programa que me permita generar mltiplos de cualquier factor ingresado desde teclado, solo en las diagonales principal y secundaria, las dems posiciones se llenan con valores ceros. Anlisis:
El siguiente programa vamos a realizar en lenguaje C, utilizando la instruccin gotoxy para ordenar en filas y columnas. Tambin utilizamos la instruccin clrscr (); para borrar la pantalla cada vez que se ejecute el programa, getch (); para la pausa del programa. Tambin utilizamos la funcin borde para el margen o borde y en el programa principal llamamos a la funcin borde. Ingresamos un lmite para el lmite de la matriz. Declaramos a la matriz de tipo entero. Utilizamos dos lazos for para ingresar una matriz. Tambin utilizamos una condicin if que la fila sea igual a la columna para coger los datos de la diagonal principal.

14

[Escribir el ttulo 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 instruccin scanf para ingresar datos en la matriz. Utilizamos la instruccin 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.

Codificacin:
#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

[Escribir el ttulo 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 PARA SALIR ");scanf("%d",&op); } while(op==1); getch(); }

Ejecucin del programa:

16

[Escribir el ttulo del documento]

Bibliografa
http://c.conclase.net/curso/?cap=003C++ contienen, como mnimo, una funcin. http://www.fismat.umich.mx/mn1/manual/node7.html

17