Page 1

UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACIÓN

CARRERA DE DOCENCIA EN INFORMÁTICA

PROGRAMACION II

Elemento I Teoría práctico sobre arras bidimensionales Elemento Il Ejercicios de aplicación utilizando arrays unidimensionales y bidimensionales NOMBRE: NOE YUCCHA CURSO: TERCERO DE INF. Lic.: Ing. WILMA GAVILANES PARALELO: “U”

Septiembre 2012 – Febrero 2013

1


Elemento I Teoría práctico sobre arras bidimensionales ¿Qué es una matriz?

Se llama matriz de orden m×n a todo conjunto rectangular de elementos a ij dispuestos en m líneas horizontales (filas) y n verticales (columnas) de la forma:

Abreviadamente suele expresarse en la forma A =(aij), con i =1, 2, ..., m, j =1, 2, ..., n. Los subíndices indican la posición del elemento dentro de la matriz, el primero denota la fila (i) y el segundo la columna (j). Por ejemplo el elemento a25 será el elemento de la fila 2 y columna 5. Dos matrices son iguales cuando tienen la misma dimensión y los elementos que ocupan el mismo lugar en ambas son iguales.

2


Tipos de matrices Vamos a describir algunos tipos de matrices que aparecen con frecuencia debido a su utilidad, y de los que es conveniente recordar su nombre: Matriz fila: Es una matriz que solo tiene una fila, es decir m =1 y por tanto es de orden 1×n. Matriz columna: Es una matriz que solo tiene una columna, es decir, n =1 y por tanto es de orden m ×1. Matriz cuadrada: Es aquella que tiene el mismo número de filas que de columnas, es decir m = n. En estos casos se dice que la matriz cuadrada es de orden n, y no n × n. Los elementos aij con i = j, o sea aii forman la llamada diagonal principal de la matriz cuadrada, y los elementos aij con i + j = n +1 la diagonal secundaria. Matriz traspuesta: Dada una matriz A, se llama traspuesta de A, y se representa por At, a la matriz que se obtiene cambiando filas por columnas. La primera fila de A es la primera fila de At, la segunda fila de A es la segunda columna de At, etc. Como declarar una matriz en lenguaje c El lenguaje C permite el uso de matrices, es decir, arrays bidimensionales. En general, todo lo que vamos a estudiar en esta sección se puede extrapolar a arrays incluso ndimensionales (o tensores), aunque en la práctica el uso de arrays con más de 2 dimensiones no es muy común. La declaración de una matriz o array bidimensional es:

Donde N y M son el número de filas y de columnas respectivamente (la dimensión de la matriz). Se ha escrito la dimensión con letras mayúsculas, ya que deben ser constantes, y al igual que con vectores se suelen definir con constantes, por ejemplo:

3


Propiedades de una matriz son los siguientes: I. II.

Una matriz puede ser unidimensional, multidimensional o escalonada. El valor predeterminado de los elementos num茅ricos de matriz se establece en cero y el de los elementos de referencia se establece en null.

III.

Una matriz escalonada es una matriz de matrices y por consiguiente sus elementos son tipos de referencia y se inicializan en null.

IV.

Las matrices se indizan basadas en cero: una matriz con n elementos se indiza desde 0 hasta n-1.

V.

Los elementos de una matriz pueden ser de cualquier tipo, incluido el tipo matriz.

Elemento Il

Ejercicios de aplicaci贸n utilizando arrays unidimensionales y bidimensionales

4


1.- DiseĂąe un programa que me permita leer una cadena de caracteres y ordenar de forma ascendente y descendente.

AnĂĄlisis 1.-Declaramos variables de cualesquier tipo que corresponda. 2.-Ingreso de una cadena de caracteres desde teclado. 3.-Es necesario inicializar las filas. 4.- Utilizamos algunos ciclos for. 5.-Dentro del lazo for realizamos procesos. 6. Imprimimos las cadenas resultantes. 7.- Utilizamos un blanqueado de pantalla. 8.- Utilizamos flushall(); para vaciado de memoria.

9.-Se necesita un nuevo lazo do-while que me permita generar varias veces el programa, utilizando la pregunta Desea Continuar Si o No. 10. Finalizamos el programa con una llave

Desarrollo del programa #include<stdio.h> #include<conio.h> int limite,i,fila,op; char nombre[15];

Librerias principales

Declaracion de variables

void main() Programa principal { do Inicio del ciclo Do para repeticion del programa. { clrscr(); Sentencia para limpiar la pantalla. fila=8; Inicializacion de fila. for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); }

Proceso para poner borde en la pantalla utilizando lazo for 5


for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } gotoxy(20,2);printf("* **MANEJO DE CADENAS*** "); gotoxy(7,3);printf(" ingrese una cadena : "); flushall(); sentencia para vaciado de memoria gets(nombre); Ingreso de una cadena de caracteres.

Mensajes en la pantalla

limite=strlen(nombre); Incremento de fila. for(i=0;i<limite;i++) Lazo for para ordenar de forma ascendente. { gotoxy(21,fila);printf("%c",nombre[i]); Impresi贸n de la cadeda en forma ascendente. fila=fila+1; Incremento de fila. } fila=7; for(i=limite;i>=0;i--) Lazo for para ordenar de forma descendente. { gotoxy(25,fila);printf("%c",nombre[i]); Impresi贸n de la cadeda en forma descendente. fila=fila+1; Incremento de fila. } gotoxy(25,20);printf("虏 Desea continuar [1] o [0] para finalizar 虏 = ");scanf("%d",&op); } while(op==1); getch(); }

Fin de programa

****CORRIDO DEL PROGRAMA****

6

Proceso que repita n veces el programa.


2. DiseĂąe un programa que me permita leer una cadena de caracteres y encontrar todas aquellas que sean vocales y pasarlas a un nuevo vector en forma ordenada.

AnĂĄlisis 1.-Declaramos variables de cualesquier tipo que corresponda. 2.-Ingreso de una cadena de caracteres desde teclado 3.-Es necesario inicializar las filas en un valor. 4.- Utilizamos algunos lazos for . 5.-Dentro del lazo for realizamos procesos con el ciclo IF. 6.- Pasamos a los vectores los resultados. 7. Imprimimos los vectores resultantes. 8.- Utilizamos un blanqueado de pantalla. 9.- Utilizamos flushall(); para vaciado de memoria.

10.-Se necesita un nuevo lazo do-while que me permita generar varias veces el programa, utilizando la pregunta Desea Continuar Si o No. 11.- Finalizamos el programa con una llave #include<stdio.h> #include<conio.h> Librerias principales #include<string.h> int cadena,i,fil,col,contador,aux,h,j,op; Declaracion de variables enteros y char. char vector1[20],vector2[20]; void main()Programa principal { do Inicio del ciclo Do para repeticion del programa. { clrscr();Sentencia para limpiar la pantalla. fil=8; Inicializacion de fila con un valor. j=0; Inicializacion de la posicion j del vector. for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } for(i=1;i<=24;i++)

Proceso para poner borde en la pantalla utilizando lazo for

7


{ gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } Mensajes en la gotoxy(20,2),printf("***CONTAR VOCALES***"); pantalla gotoxy(20,5),printf("Ingrese una cadena : "); flushall(); sentencia para vaciado de memoria gets(vector1); Ingreso de una cadena de caracteres. cadena=strlen(vector1); Asignacion a un vector. for(i=0;i<cadena;i++) { if(vector1[i]=='a') { vector2[j]=vector1[i]; j=j+1; } if(vector1[i]=='e') { vector2[j]=vector1[i]; j=j+1; } if(vector1[i]=='i') Proceso para encontra las vocales en { una cadena de caracteres y pasarlas vector2[j]=vector1[i]; a un vector. j=j+1; } if(vector1[i]=='o') { vector2[j]=vector1[i]; j=j+1; } if(vector1[i]=='u') { vector2[j]=vector1[i]; j=j+1; } } fil=8; for(i=0;i<j;i++) Proceso para imprimir las vocales en { un vector y la incrementacion de fila. gotoxy(19,fil);printf("%c", vector2[i]); fil=fil+1; }

8


for(i=0;i<j;i++) { for(h=0;h<j;h++) { Metodo de burbuja para ordenar las if(vector2[i]<vector2[h]) vocales. { aux=vector2[i]; vector2[i]=vector2[h]; vector2[h]=aux; } } } fil=8; for(i=0;i<j;i++) Proceso para imprimir las vocales { gotoxy(24,fil);printf("%c", vector2[i]); ordenados. fil=fil+1; Incrementacion de fila } gotoxy(25,20);printf("Desea continuar[1] o [0] para finalizar = " );scanf("%d",&op); } while(op==1); getch(); }

Fin de programa

****CORRIDO DEL PROGRAMA****

9

Proceso que repita n veces el programa.


3.- DiseĂąe un programa que me permita leer una cadena de caracteres y encontrar todas aquellas que sean consonantes y pasarlas a un nuevo vector en forma ordenada.

AnĂĄlisis 1.-Declaramos variables de cualesquier tipo que corresponda. 2.-Ingreso de una cadena de caracteres desde teclado 3.-Es necesario inicializar las filas en un valor. 4.- Utilizamos algunos lazos for . 5.-Dentro del lazo for realizamos procesos con el ciclo IF. 6.- Pasamos a los vectores los resultados. 7. Imprimimos los vectores resultantes. 8.- Utilizamos un blanqueado de pantalla. 9.- Utilizamos flushall(); para vaciado de memoria.

10.-Se necesita un nuevo lazo do-while que me permita generar varias veces el programa, utilizando la pregunta Desea Continuar Si o No. 11.- Finalizamos el programa con una llave

Desarrollo del programa #include<stdio.h> #include<conio.h> #include<string.h>

Librerias principales

int cadena,i,fil,col,contador,aux,h,j,op; Declaracion de variables enteros y char. char vector1[20],vector2[20]; void main()Programa principal { do Inicio del ciclo Do para repeticion del programa. { clrscr();Sentencia para limpiar la pantalla. fil=8; Inicializacion de fila con un valor. j=0; Inicializacion de la posicion j del vector.

10


for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); Proceso para poner borde en la gotoxy(i,24);printf("*"); pantalla utilizando lazo for } for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } Mensajes en la gotoxy(20,2),printf("***CONTAR LAS CONSONANTES***"); gotoxy(20,5),printf("Ingrese una cadena : "); pantalla flushall();sentencia para vaciado de memoria gets(vector1); Ingreso de una cadena de caracteres. cadena=strlen(vector1); Asignacion a un vector. for(i=0;i<cadena;i++) { if(vector1[i]!='a'&&vector1[i]!='e'&&vector1[i]!='i'&&vector1[i]!='o'&&vector1[i]!='u') { vector2[j]=vector1[i]; j=j+1; } } Proceso para encontra las fil=8; consonantes en una cadena de for(i=0;i<j;i++) caracteres y pasarlas a un vector. { gotoxy(19,fil);printf("%c", vector2[i]); Proceso para imprimir las vocales en fil=fil+1; un vector y la incrementacion de fila. } for(i=0;i<j;i++) { for(h=0;h<j;h++) { if(vector2[i]<vector2[h]) { aux=vector2[i]; vector2[i]=vector2[h]; vector2[h]=aux; } } }

Metodo de burbuja para ordenar las consonantes.

11


fil=8; for(i=0;i<j;i++) { gotoxy(24,fil);printf("%c", vector2[i]); fil=fil+1; Incrementacion de fila

Proceso para imprimir las consonantes ordenados.

} gotoxy(25,20);printf("Desea continuar[1] o [0] para finalizar = " );scanf("%d",&op); } while(op==1); getch(); }

Fin de programa

****CORRIDO DEL PROGRAMA****

12

Proceso que repita n veces el programa.


4.- Diseñe un programa utilizando funciones que me permita diseñar un menú de opciones con las siguientes alternativas. 1) Cadenas con vocales. 2) Cadenas con consonantes. 3) Salir.

Análisis 1.-Diseñamos el menú. 2.-Declaramos variables globales de cualesquier tipo que corresponda 3.- Utilizamos algunas funciones para realizar el programa como por ejemplo:  void borde() Funcion borde  void vocales ( ) Funcion para el proceso para contar las vocales  void consonantes ( ) Funcion para el proceso para contar las consonantes. 4.-Es necesario inicializar las filas en un valor. 5.- Dentro del las funciones utilizamos algunos ciclos for, también ciclo IF para las condiciones. 6. Imprimimos las cadenas que sean necesarios. 7.- Al utilizar las funciones debemos tener un programa principal para llamar a las funciones.  void main()Programa principal 8.- Utilizamos un blanqueado de pantalla. 9.- Podemos también utilizar un textcolor que permite cambiar el color de la letra. 10.- En el programa principal realizamos un ingresó de opciones al menú. 11.-Tambien utilizamos el ciclo case, dentro del case llamamos a las funciones. 12.-Se necesita un nuevo lazo do-while que me permita generar varias veces el programa, utilizando la pregunta Desea Continuar Si o No. 13. Finalizamos el programa con una llave

13


Desarrollo del programa #include <stdio.h> #include <conio.h>

Librerias principales

int cadena,i,fil,col, i,j ,aux,h,j,op; char vector1[20],vector2[20];

Declaracion de variables enteros y char.

void borde() Funci贸n borde { for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } }

Proceso para poner borde en la pantalla utilizando lazo for

void vocales()Funci贸n para realizar el proceso de la consonantes. { clrscr();Sentencia para limpiar la pantalla. fil=8; Inicializacion de fila con un valor. j=0; Inicializacion de la posicion j del vector. gotoxy(20,2),printf("***CONTAR VOCALES***"); gotoxy(20,5),printf("Ingrese una cadena : "); flushall(); sentencia para vaciado de memoria gets(vector1); Ingreso de una cadena de caracteres. cadena=strlen(vector1); Asignacion a un vector.

14

Mensajes en la pantalla


for(i=0;i<cadena;i++) { if(vector1[i]=='a') { vector2[j]=vector1[i]; j=j+1; } if(vector1[i]=='e') { vector2[j]=vector1[i]; j=j+1; } if(vector1[i]=='i') Proceso para encontra las vocales en { una cadena de caracteres y pasarlas vector2[j]=vector1[i]; a un vector. j=j+1; } if(vector1[i]=='o') { vector2[j]=vector1[i]; j=j+1; } if(vector1[i]=='u') { vector2[j]=vector1[i]; j=j+1; } } fil=8; for(i=0;i<j;i++) Proceso para imprimir las vocales en { un vector y la incrementacion de fila. gotoxy(19,fil);printf("%c", vector2[i]); fil=fil+1; }

for(i=0;i<j;i++) { for(h=0;h<j;h++) { if(vector2[i]<vector2[h]) {

Metodo de burbuja para ordenar las vocales.

15


aux=vector2[i]; vector2[i]=vector2[h]; vector2[h]=aux; } } } fil=8; for(i=0;i<j;i++) { gotoxy(24,fil);printf("%c", vector2[i]); fil=fil+1; Incrementacion de fila }

Proceso para imprimir las vocales ordenados.

} void consonantes() Funcion para realizar el proceso de la consonantes. { clrscr();Sentencia para limpiar la pantalla. fil=8; Inicializacion de fila con un valor. j=0; Inicializacion de la posicion j del vector. gotoxy(20,2),printf("***CONTAR LAS CONSONANTES***"); gotoxy(20,5),printf("Ingrese una cadena : "); flushall();sentencia para vaciado de memoria gets(vector1); Ingreso de una cadena de caracteres. cadena=strlen(vector1); Asignacion a un vector.

Mensajes en la pantalla

for(i=0;i<cadena;i++) { if(vector1[i]!='a'&&vector1[i]!='e'&&vector1[i]!='i'&&vector1[i]!='o'&&vector1[i]!='u') { vector2[j]=vector1[i]; j=j+1; } } Proceso para encontra las fil=8; consonantes en una cadena de for(i=0;i<j;i++) caracteres y pasarlas a un vector. { gotoxy(19,fil);printf("%c", vector2[i]); Proceso para imprimir las vocales en fil=fil+1; un vector y la incrementacion de fila. }

16


for(i=0;i<j;i++) { for(h=0;h<j;h++) { if(vector2[i]<vector2[h]) { aux=vector2[i]; vector2[i]=vector2[h]; vector2[h]=aux; } } }

Metodo de burbuja para ordenar las consonantes.

fil=8; for(i=0;i<j;i++) { gotoxy(24,fil);printf("%c", vector2[i]); fil=fil+1; Incrementacion de fila

Proceso para imprimir las consonantes ordenados.

} } void main()Programa principal { do Inicio del ciclo Do para repeticion del programa. { clrscr(); Sentencia para limpiar la pantalla borde();Llamada de la funcion borde. textcolor(3); sentencia para color de la letra. gotoxy(10,3);printf("***PROGRAMA QUE ME PERMITA ESCOGER LAS SIGUIENTES ALTERNATIVAS ***"); gotoxy(17,4); printf("1.-CADENA DE VOCALES "); Dise単o del menu. gotoxy(17,5); printf("2.-CADENA DE CONSONANTES "); gotoxy(17,6); printf("3.-SALIR "); gotoxy(15,9); printf("Ingrese la opcion que desea ==> ");scanf("%d",&op); Ingreso de la opcion. switch(op) { case 1: Case de vocales. { vocales(); Llamada de la funcion vocales. } break;

17


case 2: Case de consonantes. { consonantes();Llamada de la funcion consonantes. } break; case 3: Case de salida.

{ exit(); Finalización del programa. } break; } gotoxy(30,20);printf("²Desea continuar [1] o [0] para finalizar² = ");scanf("%d",&op); } while(op==1); getch(); }

Fin de programa

****CORRIDO DEL PROGRAMA**** Menú de opciones.

18

Proceso que repita n veces el programa.


1.- Cadenas de vocales.

2.- Cadenas de Consonantes.

19


5.- Diseñe un programa que me permita ingresar n elementos en una matriz cuadrática entre 3 y 35, presente la matriz resultante.

Análisis 1.-Declaramos variables globales de cualesquier tipo que corresponda 2.-Ingreso de un límite entero desde teclado 3.- Utilizamos algunas funciones para realizar el programa como por ejemplo:  void borde()  void ingresar (int limite)  void visualizar (int limite)

Funcion borde Funcion para el ingreso de la matriz. Funcion para vizualisar los datos.

4.-Es necesario inicializar las filas y columnas en un valor. 5.- Dentro del las funciones utilizamos algunos ciclos for. 6.-Dentro del lazo for realizamos procesos. 7. Imprimimos las matrices que sean necesarios, 8.- Al utilizar las funciones debemos tener un programa principal para llamar a las funciones.  void main()Programa principal

9.- Utilizamos un blanqueado de pantalla. 10.- Podemos también utilizar un textcolor que permite cambiar el color de la letra. 11.-Se necesita un nuevo lazo do-while que me permita generar varias veces el programa, utilizando la pregunta Desea Continuar Si o No. 12. Finalizamos el programa con una llave

Desarrollo del programa # include<stdio.h> # include<conio.h>

Librerias principales

int i,j,op,col,fila,limt,matriz[10][10]; Declaracion de variables globales. void borde() Funcion borde

20


{ for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); Proceso para poner borde en la gotoxy(i,24);printf("*"); pantalla utilizando lazo for } for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } void ingresar (int limite) Funcion para el ingreso de la matriz. { fila=10; Inicializacion de columna y fila col=10; gotoxy(5,7);printf("²MATRIZ DE INGRESO²"); Mensajes en la pantalla. for(i=1;i<=limite;i++) Utilizacion de lazo for para posesionamiento de filas { y columnas. for(j=1;j<=limite;j++) { do Comienzo del Do para la validacion de datos en nla matriz. { gotoxy(col,fila);printf(" "); Borra los datos que no cumpla la condicion de while. gotoxy(col,fila);scanf("%d",&matriz[i][j]); Ingreso de los datos de la matriz } while(matriz[i][j]<3 || matriz[i][j]>35); Validación del ingreso de datos de la matriz. col=col+5; } Incremento de columna de fila=fila+1; fila y regreso asu posicion col=10; original la columna } } void visualizar (int limite) Funcion para vizualisar los datos . { fila=10; Inicializacion de columna y fila col=36; gotoxy(30,7);printf("²MATRIZ DE SALIDA²"); for(i=1;i<=limite;i++) Utilizacion de lazo for para posesionamiento de filas { y columnas. for(j=1;j<=limite;j++)

21


{ gotoxy(col,fila);printf("%d",matriz[i][j]); Impresión de la matriz resultante. col=col+5; Incremento de columna de } fila y regreso asu posicion col=36; fila=fila+1; original la columna } }

void main () Programa principal { do Inicio del ciclo Do para repeticion del programa. { clrscr();Sentencia para limpiar la pantalla borde();Llamada de la funcion borde. textcolor(3); Sentencia para cambiar el color de la letra. gotoxy(25,2);printf(" ***MATRICES***"); Mensajes en la pantalla. gotoxy(22,4);printf("Ingresar el limite = ");scanf("%d",&limt); Ingreso de un limite. ingresar(limt);

Llamadas de funciones con parametros. visualizar(limt); gotoxy(25,20);printf("² Desea continuar [1] o [0] para finalizar ² = ");scanf("%d",&op); } while(op==1); getch(); }

Proceso que repita n veces el programa.

Fin de programa

****CORRIDO DEL PROGRAMA****

22


6.- Diseñe un programa utilizando matrices y funciones que me permita generar un matriz de cualquier orden con cualquier factor ingresado desde teclado.

Análisis 1.-Declaramos variables globales de cualesquier tipo que corresponda 2.-Ingreso de un límite desde teclado 3.- Ingreso de un factor desde teclado 4.- Utilizamos algunas funciones para realizar el programa como por ejemplo:  void borde() Funcion borde  void ingresar (int limite, int factor) Funcion para la generacion de los factores.  void visualizar (int limite) Funcion para vizualizar la matriz resultante.

5.-Es necesario inicializar las filas y columnas en un valor. 6.- Dentro del las funciones utilizamos algunos ciclos for para posicionamientos de pantalla. 7.-Dentro del lazo for realizamos procesos. 8. Imprimimos las matrices que sean necesarios, 9.- Al utilizar las funciones debemos tener un programa principal para llamar a las funciones.  void main()Programa principal

10.- Utilizamos un blanqueado de pantalla. 11.- Podemos también utilizar un textcolor que permite cambiar el color de la letra. 12.-Se necesita un nuevo lazo do-while que me permita generar varias veces el programa, utilizando la pregunta Desea Continuar Si o No. 13. Finalizamos el programa con una llave

Desarrollo del programa # include<stdio.h> # include<conio.h>

Librerias principales

int cot,fact,i,j,op,col,fila,limt,matriz[10][10]; Declaracion de variables globales

23


void borde() Funcion borde { for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); Proceso para poner borde en la gotoxy(i,24);printf("*"); pantalla utilizando lazo for } for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } void ingresar (int limite, int factor) Funcion para la generacion de los factores. { fila=10; Inicializacion de columna y fila col=5; cot=0; Inicializacion del contador. gotoxy(8,8);printf("²MATRIZ DE INGRESO²"); Utilizacion de lazo for para posesionamiento de for(i=1;i<=limite;i++) filas y columnas. { for(j=1;j<=limite;j++) { Proceso para generar los cot=cot+1; numeros factores in cluyendo matriz[i][j]=factor*cot;

la impresión. gotoxy(col,fila);printf("%d",matriz[i][j]); col=col+4; } fila=fila+1; col=5;

Incremento de columna de fila y regreso asu posicion original la columna

} } void visualizar (int limite) Funcion para vizualizar la matriz resultante. { fila=10; Inicializacion de columna y fila col=38; gotoxy(35,8);printf("²MATRIZ DE SALIDA²");

24


for(i=1;i<=limite;i++) Utilizacion de lazo for para posesionamiento de { filas y columnas. for(j=1;j<=limite;j++) { gotoxy(col,fila);printf("%d",matriz[i][j]); Impresión de al matriz resultante. col=col+4; Incremento de columna de } fila y regreso asu posicion fila=fila+1; original la columna col=38; } } void main ()Programa principal { do Inicio del ciclo Do para repeticion del programa. { clrscr();Sentencia para limpiar la pantalla

borde();Llamada de la funcion borde. textcolor(3); sentencia para color de la letra. gotoxy(17,2);printf(" ***MATRIZ DE CUALQUIER FACTOR INGRESADO***"); gotoxy(22,4);printf("Ingresar el limite = ");scanf("%d",&limt); Ingreso de un limite. gotoxy(22,6);printf("Ingresar el factor = ");scanf("%d",&fact); Ingreso de un factor. ingresar(limt,fact); Llamadas de funciones con parametros. visualizar(limt); gotoxy(25,20);printf("² Desea continuar [1] o [0] para finalizar ² = ");scanf("%d",&op); } while(op==1); getch(); }

Proceso que repita n veces el programa.

Fin de programa

****CORRIDO DEL PROGRAMA****

25


7.- Diseñe un programa que me permita llenar una matriz de cualquier orden con valores pares.

Análisis 1.-Declaramos variables globales de cualesquier tipo que corresponda 2.-Ingreso de un límite entero desde teclado 3.- Utilizamos algunas funciones para realizar el programa como por ejemplo:  void borde() Funcion borde  void ingresar (int limite) Funcion para la generacion de numeros pares.

void visualizar (int limite) Funcion para vizualizar la matriz resultante.

4.-Es necesario inicializar las filas y columnas en un valor. 5.- Dentro del las funciones utilizamos algunos ciclos for para posicionamientos de pantalla. . 6.-Dentro del lazo for realizamos procesos. 7. Imprimimos las matrices que sean necesarios, 8.- Al utilizar las funciones debemos tener un programa principal para llamar a las funciones.  void main()Programa principal

9.- Utilizamos un blanqueado de pantalla. 10.- Podemos también utilizar un textcolor que permite cambiar el color de la letra. 11.-Se necesita un nuevo lazo do-while que me permita generar varias veces el programa, utilizando la pregunta Desea Continuar Si o No. 12. Finalizamos el programa con una llave

Desarrollo del programa # include<stdio.h> # include<conio.h>

Librerias principales

26


int i,j,op,col,fila,par,limt,matriz[10][10]; Declaracion de variables globales. void borde() Funcion borde. { for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); Proceso para poner borde en la gotoxy(i,24);printf("*"); pantalla utilizando lazo for } for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } void ingresar (int limite) Funcion para la generacion de numeros pares. { fila=10; Inicializacion de columna y fila col=10; par=0; Inicializacion en valor cero la variable par. gotoxy(11,7);printf("²MATRIZ DE INGRESO²"); for(i=1;i<=limite;i++) Utilizacion de lazo for para posesionamiento de filas { y columnas. for(j=1;j<=limite;j++) { Proceso para generar los par=par+2; numeros pares incluyendo la matriz[i][j]=par; impresión. gotoxy(col,fila);printf("%d",matriz[i][j]); col=col+5; } fila=fila+1; col=10;

Incremento de columna de fila y regreso asu posicion original la columna

} } void visualizar (int limite) Funcion para vizualizar la matriz resultante. { fila=10; Inicializacion de columna y fila col=42; gotoxy(43,7);printf("²MATRIZ DE SALIDA²"); for(i=1;i<=limite;i++) Utilizacion de lazo for para posesionamiento de filas { y columnas. for(j=1;j<=limite;j++)

27


{ gotoxy(col,fila);printf("%d",matriz[i][j]); Impresión de al matriz resultante. col=col+5; } col=42; fila=fila+1;

Incremento de columna de fila y regreso asu posicion original la columna

} } void main ()Programa principal { do Inicio del ciclo Do para repeticion del programa. { clrscr();Sentencia para limpiar la pantalla

borde();Llamada de la funcion borde. textcolor(3); sentencia para color de la letra. gotoxy(17,2);printf(" ***MATRICES DE CUALQUIER ORDEN CON VALOR PARES***"); gotoxy(22,4);printf("Ingresar el limite = ");scanf("%d",&limt); Ingreso de un limite. ingresar(limt); visualizar(limt);

Llamadas de funciones con parametros.

gotoxy(25,20);printf("² Desea continuar [1] o [0] para finalizar ² = ");scanf("%d",&op); } while(op==1); getch(); }

Proceso que repita n veces el programa.

Fin de programa

****CORRIDO DEL PROGRAMA****

28


8.- Generar una matriz de cualquier orden con valores ceros, a acepción de la diagonal principal, la misma que se llena con valores unos, recorra la matriz y guarde los datos de la diagonal principal en un vector y presente los datos en forma ordenado.

Análisis 1.-Declaramos variables globales de cualesquier tipo que corresponda 2.-Ingreso de un límite entero desde teclado 3.- Utilizamos algunas funciones para realizar el programa como por ejemplo:  void borde() Funcion borde  void ingresar (int limite) Funcion para el ingreso de la matriz .  void visualizar(int limite) Funcion para vizualizar la diagonal principal.

 void ordenar(int limite) Funcion para ordenar la diagonal principal. 4.-Es necesario inicializar las filas y columnas en un valor. 5.- Dentro del las funciones utilizamos algunos ciclos for, y IF para las condiciones. 6.-Dentro del lazo for realizamos procesos. 7. Imprimimos las matrices que sean necesarios, 8.- Al utilizar las funciones debemos tener un programa principal para llamar a las funciones.  void main()Programa principal

9.- Utilizamos un blanqueado de pantalla. 10.- Podemos también utilizar un textcolor que permite cambiar el color de la letra. 11.-Se necesita un nuevo lazo do-while que me permita generar varias veces el programa, utilizando la pregunta Desea Continuar Si o No. 12. Finalizamos el programa con una llave

Desarrollo del programa #include<stdio.h> #include<conio.h> #include<string.h>

Librerias principales

29


int i,j,x,col,c,h,fil,limt,limite,op,matriz[15][15];vector[15]; Declaracion de variables globales. void borde() Funcion borde { for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); Proceso para poner borde en la } pantalla utilizando lazo for for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } void ingresar (int limite) Funcion para el ingreso de la matriz . { fil=10; Inicializacion de columna y fila col=10; h=1; Inicializacion del contador del vector. gotoxy(8,8);printf("虏MATRIZ DE INGRESO虏"); for(i=1;i<=limite;i++) Utilizacion de lazo for para posesionamiento de filas { y columnas. for(j=1;j<=limite;j++) { if(i==j) Proceso para generar unos en la { diagonal principal incluyendo la c=1; impresi贸n. matriz[i][j]=c; gotoxy(col,fil);printf("%d",matriz[i][j]); col=col+3; Incremento de columna } else { c=0; matriz[i][j]=c; gotoxy(col,fil);printf("%d",matriz[i][j]); col=col+3; Incremento de columna

Proceso para generar ceros en la en la matriz incluyendo la impresi贸n.

} }

30


Incremento de fila y regreso asu fil=fil+2; posicion original la columna col=10; } } void visualizar(int limite) Funcion para vizualizar la diagonal principal. { col=35; fil=10;

Inicializacion de columna y fila for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) {

Utilizacion de lazo for para posesionamiento de filas y columnas.

if(i==j) Condicion de posicion. { vector[h]=matriz[i][j]; Asignacion de una matriz a un vector. h=h+1; Incremento del contador . gotoxy(35,8);printf("²MATRIZ DIAGONAL PRIV²"); gotoxy(col,fil);printf("%d",matriz[i][j]); Impresion de la diagonal principal. col=col+3; fil=fil+2;

Incremento decolumna y fila .

} } } } void ordenar(int limite) Funcion para ordenar la diagonal principal. { col=65; fil=10;

Inicializacion de columna y fila Lazo for para ordenar los datos for(i=1;i<h;i++) { gotoxy(col,fil);printf("%d",vector[i]); Impresion del vector resultante. fil=fil+2; Incremento de fila.

} } void main ( ) Programa principal { do Inicio del ciclo Do para repeticion del programa.

31


{

clrscr();Sentencia para limpiar la pantalla. borde();Llamada de la funcion borde. textcolor(2); sentencia para color de la letra. gotoxy(25,2);printf(" ***MATRICES***"); gotoxy(22,4);printf("Ingresar el limite = ");scanf("%d",&limt); Ingreso de un limite. ingresar(limt); visualizar(limt); Llamadas de funciones con parametros. ordenar(limt); gotoxy(25,20);printf("² Desea continuar [1] o [0] para finalizar ² = ");scanf("%d",&op); } while(op==1); Proceso que repita n getch(); Fin de programa veces el programa. }

****CORRIDO DEL PROGRAMA****

9.- Diseñe un programa utilizando matrices y funciones, que me permita generar una matriz de n elementos con la serie de fibonacci, y la diagonal secundaria se llena con el factorial, guarde los datos de la diagonal secundaria en un vector y presente.

Análisis 1.-Declaramos variables globales de cualesquier tipo que corresponda 2.-Ingreso de un límite entero desde teclado

32


3.- Utilizamos algunas funciones para realizar el programa como por ejemplo: Funcion borde

void borde()

void ingresar (int limite, int factor) Funcion para la generacion. void vector1 (int limite) Funcion para asignar aun vector la d .secun. void ordenar(int limite, int factor) Funcion para ordenar la diagonal secundaria.

4.-Es necesario inicializar las filas y columnas en un valor. 5.- Dentro del las funciones utilizamos algunos ciclos for, y IF para las condiciones. 6.-Dentro del lazo for realizamos procesos. 7. Imprimimos las matrices que sean necesarios, 8.- Al utilizar las funciones debemos tener un programa principal para llamar a las funciones. ď ś void main()Programa principal

9.- Utilizamos un blanqueado de pantalla. 10.- Podemos tambiĂŠn utilizar un textcolor que permite cambiar el color de la letra. 11.-Se necesita un nuevo lazo do-while que me permita generar varias veces el programa, utilizando la pregunta Desea Continuar Si o No. 12. Finalizamos el programa con una llave

Desarrollo del programa # include<stdio.h> Librerias principales # include<conio.h> int d,factorial,fact,c,a,b,i,j,op,ctv,col,fila,limt,matriz[10][10],vector[12],h; void borde() Funcion borde { for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } for(i=1;i<=24;i++)

Proceso para poner borde en la pantalla utilizando lazo for.

33

Declaracion de variables globales


{ gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } void ingresar (int limite, int factor) Funcion para la generacion. { gotoxy(2,8);printf("²MATRIZ DE INGRESO²"); fila=10; Inicializacion de columna y fila col=5; factorial=1; h=1; Inicializacion de la variables a=1; b=0; d=limite; Asignacion a una variable el limite. for(i=1;i<=limite;i++) Utilizacion de lazo for para posesionamiento de filas { y columnas. for(j=1;j<=limite;j++) { if(i==j); Condicion de posiciones. { c=a+b; a=b; Proceso para generar la matriz b=c; de al serie de fibonaci incluyendo matriz[i][j]=c; la impresión. gotoxy(col,fila);printf("%d",matriz[i][j]); } col=col+5; } fila=fila+4; col=5;

Incremento de columna de fila y regreso asu posicion original la columna

} fila=10; Inicializacion de fila d=limite; Asignacion a una variable el limite. for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++)

Utilizacion de lazo for para posesionamiento de filas y columnas.

34


{ if(d==j) Condicion de posiciones. { factorial=factorial*i; matriz[i][j]=factorial; gotoxy(col,fila);printf("%d",matriz[i][j]); delay(900); } col=col+5; } fila=fila+4; d--; col=5;

Proceso para generar el factorial en la diagonal secundaria incluyendo la impresi贸n.

Incremento de columna de fila y regreso asu posicion original la columna

} } void vector1 (int limite) Funcion para asignar aun vector la d .secun. { gotoxy(26,8);printf("虏 DIGONAL SECUNDARIO 虏"); fila=10; Inicializacion de columna y fila col=40; d=limite; for(i=1;i<=limite;i++) Utilizacion de lazo for para posesionamiento de filas { y columnas. for(j=1;j<=limite;j++) { if(d==j) Condicion de posiciones. { vector[h]=matriz[i][j]; Asignacion de una matriz aun vector. h=h+1; Incremento del contador. gotoxy(col,fila);printf("%d",matriz[i][j]); Impresi贸n de la diagonal secundaria. col=col-2; Disminucion de columna y fila=fila+2; incremento de fila . d--; } } } } void ordenar(int limite, int factor) Funcion para ordenar la diagonal secundaria. {

35


gotoxy(54,8);printf("² VECTOR ORDENADO ²"); col=65; Inicializacion de columna y fila fila=10; for(i=1;i<h;i++) Lazo for para ordenar la diagonal secundaria. { gotoxy(col,fila);printf("%d",vector[i]); Impresion de la vector resultante. fila=fila+2; Incremento de fila. } }

void main()Programa principal. { do Inicio del ciclo Do para repeticion del programa. { clrscr();Sentencia para limpiar la pantalla. borde();Llamada de la funcion borde. textcolor(6); sentencia para color de la letra. gotoxy(3,2);printf(" ***GENERACION DE MATRIZ CON FIBONACI YDIAGONAL SECUNDARIA DE FACTORIAL***"); gotoxy(22,4);printf("Ingresar el limite = ");scanf("%d",&limt); Ingreso de un limite. ingresar(limt,fact); Llamadas de funciones con parametros. vector1(limt); ordenar(limt,fact); gotoxy(25,23);printf("² Desea continuar [1] o [0] para finalizar ² = ");scanf("%d",&op); } while(op==1); getch(); }

Proceso que repita n veces el programa.

Fin de programa

****CORRIDO DEL PROGRAMA****

36


10.-Relice un programa utilizando funciones que lea una matriz de enteros de n números de filas y de n números de columnas y se muestre en pantalla la matriz transpuesta.

Análisis 1.-Declaramos variables globales de cualesquier tipo que corresponda 2.-Ingreso de un límite entero de filas desde teclado 3.- -Ingreso de un límite entero de columnas desde teclado 4.- Utilizamos algunas funciones para realizar el programa como por ejemplo: 

void borde()Funcion borde

 

void ingresar (int a,int b) Funcion para el ingreso de la matriz . void traspaso(int a,int b) Funcion para la matriz transpuesta.

5.-Es necesario inicializar las filas y columnas en un valor. 6.- Dentro del las funciones utilizamos algunos ciclos for. 7.-Dentro del lazo for realizamos procesos. 8. Imprimimos las matrices que sean necesarios, 9.- Al utilizar las funciones debemos tener un programa principal para llamar a las funciones.  void main()Programa principal

10.- Utilizamos un blanqueado de pantalla. 11.- Podemos también utilizar un textcolor que permite cambiar el color de la letra. 12.-Se necesita un nuevo lazo do-while que me permita generar varias veces el programa, utilizando la pregunta Desea Continuar Si o No. 13. Finalizamos el programa con una llave

Desarrollo del programa # include<stdio.h> Librerias principales # include<conio.h> int matriz1[10][10],matriz2[10][10],col,fil,i,j,op,fila,colum,a,b; Declaracion de variables globales. void borde()Funcion borde {

37


for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); }

Proceso para poner borde en la pantalla utilizando lazo for

for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } void ingresar (int a,int b) Funcion para el ingreso de la matriz . { gotoxy(2,8);printf("²MATRIZ DE INGRESO²"); fila=10; Inicializacion de columna y fila col=5; for(i=1;i<=a;i++) Utilizacion de lazo for para posesionamiento de filas { y columnas. for(j=1;j<=b;j++) { gotoxy(col,fila);scanf("%d",&matriz1[i][j]); Ingreso de la matriz. matriz2[j][i]=matriz1[i][j]; Asignacion de la matriz1 al amatriz2. col=col+3; Incremento de columna y de fila y } regreso a su posicion original la col=5; columna fila=fila+2; } } void traspaso(int a,int b) Funcion para la matriz transpuesta. { gotoxy(35,8);printf("²MATRIZ TRANSPUESTA²"); fila=10; Inicializacion de columna y fila col=39; for(i=1;i<=b;i++) Utilizacion de lazo for para posesionamiento de filas { y columnas. for(j=1;j<=a;j++) { gotoxy(col,fila);printf("%d",matriz2[i][j]); Impresion de la matriz transpuesta.

38


col=col+3; } fila=fila+2; col=39; }

Incremento de columna y de fila y regreso a su posicion original la columna

} void main ()Programa principal { do Inicio del ciclo Do para repeticion del programa. { clrscr();Sentencia para limpiar la pantalla

borde();Llamada de la funcion borde. textcolor(3); sentencia para color de la letra. gotoxy(25,2);printf(" ***GENERACION DE MATRIZ TRANSPUESTA***"); gotoxy(22,4);printf("Ingresar las filas = ");scanf("%d",&fil); ); Ingreso de filas. gotoxy(22,6);printf("Ingresar las columnas = ");scanf("%d",&colum); ); Ingreso de columnas. ingresar(fil,colum); Llamadas de funciones con parametros. traspaso(fil,colum); gotoxy(25,23);printf("² Desea continuar [1] o [0] para finalizar ² = ");scanf("%d",&op); } while(op==1); getch(); }

Proceso que repita n veces el programa.

Fin de programa

****CORRIDO DEL PROGRAMA****

39


11.- Diseñe un programa utilizando funciones y matrices, que me permita llenar una matriz con valores ceros a acepción los diagonales secundario y primario en la que se llena la serie fibonasi en la diagonal principal y el factorial en la diagonal secundaria, todo los datos se visualiza en la matriz original y se obtiene los datos.

Análisis 1.-Declaramos variables globales de cualesquier tipo que corresponda 2.-Ingreso de un límite entero desde teclado 3.- Utilizamos algunas funciones para realizar el programa como por ejemplo: 

void borde()Funcion borde

   

void fibonaci(int limite) Función para proceso de fibonacia. void factorial(int a) Función para proceso del factorial. void impresionp(int a) Función para la impresión del fibonaci. void impresions(int a) Función para la impresión del factorial.

4.-Es necesario inicializar las filas y columnas en un valor. 5.- Dentro del las funciones utilizamos algunos ciclos for, también If para las condiciones.. 6.-Dentro del lazo for realizamos procesos. 7. Imprimimos las matrices que sean necesarios, 8.- Al utilizar las funciones debemos tener un programa principal para llamar a las funciones.  void main()Programa principal

9.- Utilizamos un blanqueado de pantalla. 10.- Podemos también utilizar un textcolor que permite cambiar el color de la letra. 11.-Se necesita un nuevo lazo do-while que me permita generar varias veces el programa, utilizando la pregunta Desea Continuar Si o No. 12. -Finalizamos el programa con una llave

40


Desarrollo del programa #include<stdio.h> Librerias principales #include<conio.h> int matriz[10][10],a,b,c,d,i,j,p,factor,fila,col,limit,aux,op;

Declaraciones de variables ymatrices

void borde ()Funci贸n borde { for (i=1;i<=80;i++) { gotoxy(i,1); printf("*"); gotoxy(i,24); printf("*"); } Proceso para poner borde en la for (i=1;i<=24;i++) pantalla { gotoxy(1,i); printf("*"); gotoxy(80,i); printf("*"); } } void enceracion(int limite) Funci贸n para enserar a una matriz { for(i=1;i<=limite;i++) Proceso para posesionamiento de filas { y columnas. for(j=1;j<=limite;j++) { p=0; matriz[i][j] = p; Asignacion auna matriz } } } void fibonaci(int limite) Funci贸n para proceso de fibonaci. { a=1; b=0; c=0; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { if (i==j) { c=a+b;

Proceso para realizar la seria de fibonaci y asignacion ala matriz. 41


a=b; b=c; matriz[i][j]=c; } } } } void factorial(int a) Funci贸n para proceso del factorial. { col=5; Valores de fila y columna factor = 1; fila=8; for(j=1;j<=a;j++) { for(d=1;d<=j;d++) { factor = factor * d; } Proceso para realizar el factorial if (a%2!=0) incluyendo las condiciones { if(((a/2)+1)==j) { aux =factor; } else { matriz[j][(a+1)-j] = factor; Asignacion del factor a la matriz } } else { matriz[j][(a+1)-j] = factor; Asignacion del factor a la matriz } factor=1; col=col-5; fila=fila+2; }

Posiciones de fila y columna

} void impresionp(int a) Funci贸n para la impresi贸n del fibonaci.

42


{ col=3; fila=8; if (a%2==0) { for(i=1;i<=a;i++) { for(j=1;j<=a;j++) { gotoxy(col,fila);printf("%d",matriz[i][j]); Impresi贸n de la matriz col=col+6; } Posiciones de fila y columna col=3; fila=fila+2; } } else { for(i=1;i<=a;i++) { for(j=1;j<=a;j++) { if((((a/2)+1)==j) && (((a/2)+1)==i)) Condiciones { gotoxy(col-2,fila);printf("%d %d",matriz[i][j],aux); Impresion de la diagonal principal } else { gotoxy(col,fila);printf("%d",matriz[i][j]); } col=col+6; } Posiciones de fila y columna col=3; fila=fila+2; } } } void impresions(int a) Funci贸n para la impresi贸n del factorial. { col=(-1+(5*a)) + 16; Incrementacion de columna fila=8; if (a%2==0)

43


{ for(i=1;i<=a;i++) { for(j=1;j<=a;j++) { if (matriz[i][j]!=0) { gotoxy(col,fila);printf("%d",matriz[i][j]); } col=col+6; } col=(-1+(5*a)) + 16; Posiciones de fila y columna fila=fila+2; } } else { for(i=1;i<=a;i++) { Lazo for para la impresi贸n de la diagonal for(j=1;j<=a;j++) secundaria { if(((a/2)+1)==j) { if (matriz[i][j]!=0) { gotoxy(col-2,fila);printf("%d %d",matriz[i][j],aux); } Impresion para la diagonal secundaria } else { if (matriz[i][j]!=0) { gotoxy(col,fila);printf("%d",matriz[i][j]); } } col=col+6; } col=(-1+(5*a)) + 16; Posiciones de fila y columna fila=fila+2; } } } void main() Programa principal

44


{ Do Inicio del ciclo Do { clrscr();Sentencia para limpiar la pantalla borde(); Llamada de la funcion borde textcolor(5); gotoxy(8,2);cprintf("***MATRIZ CON DIGONALES DE FIBONACI Y FACTORIAL*** "); gotoxy(10,4); printf(" Ingrese un valor : ");scanf("%d",&limit); Ingreso de un limite. textcolor(4); gotoxy(2,6);cprintf("² MATRIZ PRINCIPAL ²"); Mensaje en la textcolor(4); sentencia para color de la letra. pantalla gotoxy(30,6);cprintf(" ² DIAGONAL PRINCIPAL y SECUANDARIA² "); enceracion(limit); fibonaci(limit); Llamadas de funciones factorial(limit); impresionp(limit); impresions(limit); textcolor(3); gotoxy(25,23);cprintf("² Desea continuar [1] o [0] para finalizar ² = ");scanf("%d",&op); } while(op==1); getch(); Fin de programa

}

Proceso que repita n veces el programa.

****CORRIDO DEL PROGRAMA**** Con valor par

45


Con valor impar

12.- Diseñe un programa utilizando matrices y funciones que me permita generar una matriz con ceros solo las diagonales principal y secundaria y la demás posiciones muestren vacías.

Análisis 1.-Declaramos variables globales de cualesquier tipo que corresponda 2.-Ingreso de un límite entero desde teclado 3.- Utilizamos algunas funciones para realizar el programa como por ejemplo:  void borde()Funcion borde.  void principal(int limite) Funcion para la diagonal principal.  void secundaria (int limite) Funcion para la diagonal secundaria. 4.-Es necesario inicializar las filas y columnas en un valor. 5.- Dentro del las funciones utilizamos algunos ciclos for, también IF para las condiciones. 6.-Dentro del lazo for realizamos procesos. 7. -Imprimimos las matrices que sean necesarios,

46


8.- Al utilizar las funciones debemos tener un programa principal para llamar a las funciones. ď ś void main()Programa principal 9.- Utilizamos un blanqueado de pantalla. 10.- Podemos tambiĂŠn utilizar un textcolor que permite cambiar el color de la letra. 11.-Se necesita un nuevo lazo do-while que me permita generar varias veces el programa, utilizando la pregunta Desea Continuar Si o No. 12. Finalizamos el programa con una llave

Desarrollo del programa #include<conio.h> Librerias principales #include<stdio.h> int i,j,c,limite,fila,limt,col,matriz[15][15],op,d; Declaracion de variables globales. void borde()Funcion borde. { for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); Proceso para poner borde en la } pantalla utilizando lazo for for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } void principal(int limite) Funcion para la diagonal principal. { col=8; Inicializacion de columna y fila fila=10; for(i=1;i<=limite;i++) Utilizacion de lazo for para posesionamiento de { filas y columnas. for(j=1;j<=limite;j++) { if(i==j) Condicion de posicion. Proceso para encerar la diagonal { principal de la matriz, incluyendo c=0; la impresiĂłn. matriz[i][j]=0;

47


gotoxy(col,fila);printf("%d",matriz[i][j]); } col=col+3; } fila=fila+2; col=8;

Incremento de columna y de fila y regreso a su posicion original la columna

} } void secundaria (int limite) Funcion para la diagonal secundaria.

{ fila=10; inicializacion de fila. d=limite; Asignando a una variable el limite. for(i=1;i<=limite;i++) Utilizacion de lazo for para posesionamiento de filas { y columnas. for(j=1;j<=limite;j++) { if(d==j) Condicion de posicion. Proceso para encerar la diagonaL { secundaria de la matriz, c=0; matriz[i][j]=0; incluyendo la impresi贸n. gotoxy(col,fila);printf("%d",matriz[i][j]); } col=col+3; } fila=fila+2; d--; col=8;

Incremento de columna y de fila y regreso a su posicion original la columna

} } void main ()Programa principal { do Inicio del ciclo Do para repeticion del programa. { clrscr();Sentencia para limpiar la pantalla

borde();Llamada de la funcion borde. textcolor(5); sentencia para color de la letra. gotoxy(27,2);cprintf(" ***MATRIZ DE CEROS***"); textcolor(9); sentencia para color de la letra.

48

Mensajes en la pantalla


gotoxy(3,8);cprintf(" ² MATRIZ PRINCIPAL Y DIAGONAL ²"); gotoxy(22,4);printf("Ingresar el limite = ");scanf("%d",&limt); Ingreso de un limite. principal(limt); Llamadas de funciones con parametros. secundaria(limt); textcolor(2); sentencia para color de la letra. gotoxy(27,23);cprintf("² Desea continuar [1] o [0] para finalizar ² = ");scanf("%d",&op); } while(op==1); getch(); }

Proceso que repita n veces el programa.

Fin de programa

****CORRIDO DEL PROGRAMA****

13.- Diseñe un programa que me permita generar una matriz cuadrática de números primos.

Análisis 1.-Declaramos variables globales de cualesquier tipo que corresponda 2.-Ingreso de un límite entero desde teclado 3.- Utilizamos algunas funciones para realizar el programa como por ejemplo:  void borde()Funcion borde.

 void generacion (int limite) Funcion para la generacion de los numeros primos.

49


 void impresion(int limite) Funcion para la impresión de los numeros primos 4.-Es necesario inicializar las filas y columnas en un valor. 5.- Dentro del las funciones utilizamos algunos ciclos for, también IF para las condiciones. 6.-Dentro del lazo for realizamos procesos. 7. -Imprimimos las matrices que sean necesarios, 8.- Al utilizar las funciones debemos tener un programa principal para llamar a las funciones.  void main()Programa principal 9.- Utilizamos un blanqueado de pantalla. 10.- Podemos también utilizar un textcolor que permite cambiar el color de la letra. 11.-Se necesita un nuevo lazo do-while que me permita generar varias veces el programa, utilizando la pregunta Desea Continuar Si o No. 12. Finalizamos el programa con una llave

Desarrollo del programa #include<stdio.h> #include<conio.h>

Librerias principales

int matriz[12][12],i,j,fila,col,op,limit,primo,p,contp,sw; Declaracion de variables globales void borde ()Funcion borde { for (i=1;i<=80;i++) { gotoxy(i,1); printf("*"); gotoxy(i,24);printf("*"); } for (i=1;i<=24;i++) { gotoxy(1,i); printf("*"); gotoxy(80,i);printf("*"); }

Proceso para poner borde en la pantalla utilizando lazo for

} void generacion (int limite) Funcion para la generacion de los numeros primos.

50


{ primo=1; Inicializacion del primo Utilizacion de lazo for para posesionamiento de for(i=1;i<=limite;i++) filas y columnas. { for(j=1;j<=limite;j++) { do Comienzo del Do para generar numero primos { contp=0; Contador de primo sw=0; for(p=1;p<=primo;p++) { if((primo%p)==0) condiciones { contp=contp+1; Incremento de contador de primos } } if(contp<=2) Condicion con contador de primos { matriz[i][j] = primo; Asignacion a un matriz primo=primo+1; Incremento de primos sw=1; } else { sw=0; primo=primo+1; Incremento de primos } } while (sw==0); La condicion del Do_ while } } } void impresion(int limite) Funcion para la impresi贸n de los numeros primos { col=9; Inicializacion de columna y fila fila=9; for(i=1;i<=limite;i++) Utilizacion de lazo for para posesionamiento de { filas y columnas.

51


for(j=1;j<=limite;j++) { gotoxy(col,fila);printf("%d",matriz[i][j]); Impresión de la matriz [i][j] col=col+4; Incremento de columna de } fila y regreso asu posicion col=9; original la columna fila=fila+2; } } void main() Programa principal { Do Inicio del ciclo Do para repeticion del programa { clrscr();Sentencia para limpiar la pantalla borde();Llamada de borde. textcolor(4); gotoxy(20,3);cprintf("*** GENERACION DE MATRIZ CON NUMEROS PRIMO ***"); textcolor(7); sentencia para color de la letra. gotoxy(20,5); cprintf(" Ingrese un numero : ");scanf("%d",&limit); Ingreso de un limite. textcolor(5); sentencia para color de la letra. gotoxy(5,7); cprintf("² MATRIZ DE NUMEROS PRIMOS ²"); Mensaje en la pantalla generacion(limit); impresion(limit); Llamadas de funciones textcolor(10); gotoxy(30,23);cprintf("² Desea continuar [1] o [0] para finalizar ² = ");scanf("%d",&op); } while(op==1); getch(); }

Fin de programa

*****CORRIDO DEL PROGRAMA*****

52

Proceso que repita n veces el programa.


14.- Diseñe un programa que permita ingresar n elementos en una matriz entre 3 y 36 presentar la matriz resultante ordenada en forma ascendente.

Análisis 1.-Declaramos variables globales de cualesquier tipo que corresponda 2.-Ingreso de un límite entero desde teclado 3.- Utilizamos algunas funciones para realizar el programa como por ejemplo: void borde()Funcion borde. void ingresar(int limite) Funcion par ingresar los datos. void ordenacion(int limite) Funcion par ordenar lamatriz void impresion(int limite) Funcion para la impresion de la matriz ascendsente 4.-Es necesario inicializar las filas y columnas en un valor. 5.- Dentro del las funciones utilizamos algunos ciclos for, también IF para las condiciones. 6.-Dentro del lazo for realizamos procesos. 7. -Imprimimos las matrices que sean necesarios, 8.- Al utilizar las funciones debemos tener un programa principal para llamar a las funciones. void main()Programa principal 9.- Utilizamos un blanqueado de pantalla. 10.- Podemos también utilizar un textcolor que permite cambiar el color de la letra. 11.-Se necesita un nuevo lazo do-while que me permita generar varias veces el programa, utilizando la pregunta Desea Continuar Si o No. 12. Finalizamos el programa con una llave

Desarrollo del programa #include<stdio.h> #include<conio.h>

Librerias principales

int matriz[12][12],i,j,h,x,fila,col,limit,aux,op; Declaracion de variables globales void borde ()Funcion borde

53


{ for (i=1;i<=80;i++) { gotoxy(i,1); printf("*"); gotoxy(i,24); printf("*"); } for (i=1;i<=24;i++) { gotoxy(1,i); printf("*"); gotoxy(80,i); printf("*"); } }

Proceso para poner borde en la pantalla utilizando lazo for

void ingresar(int limite) Funcion par ingresar los datos. { col=8; Inicializacion de columna y fila fila=9; for(i=1;i<=limite;i++) Utilizacion de lazo for para posesionamiento de { filas y columnas. for(j=1;j<=limite;j++) { do Comienzo del Do para la validacion del ingreso { gotoxy(col,fila);printf(" "); gotoxy(col,fila);scanf("%d",&matriz[i][j]); Ingreso de los datos } while(matriz[i][j]<3 || matriz[i][j]>36); Validacion del ingreso de datos. col=col+5; } Incremento de columna de col=8; fila y regreso asu posicion fila=fila+3; original la columna } } void ordenacion(int limite) Funcion par ordenar lamatriz { for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) {

Utilizacion de lazo for para posesionamiento de filas y columnas.

for(h=1;h<=limite;h++) {

54


Utilizacion de lazo for para ordenamiento de los datos de la matriz de ingreso

for(x=1;x<=limite;x++) { if(matriz[i][j]<matriz[h][x]) Condicion de las matrices { aux=matriz[i][j]; Asignacion de matrz a un auxiliar matriz[i][j]=matriz[h][x]; matriz[h][x]=aux; } } } } } }

void impresion(int limite) Funcion para la impresion de la matriz ascendsente { col=47; Inicializacion de columna y fila fila=9; for(i=1;i<=limite;i++) Utilizacion de lazo for para posesionamiento de { filas y columnas. for(j=1;j<=limite;j++) { gotoxy(col,fila);printf("%d",matriz[i][j]); Impresión de la matriz ascendente col=col+5; } col=47; Incremento de columna de fila=fila+3; fila y regreso asu posicion } original la columna }

void main() Programa principal { do Inicio del ciclo Do para repeticion del programa { clrscr();Sentencia para limpiar la pantalla borde();Llamada de la funcion borde. Mensajes en la gotoxy(22,2); printf("***ORDENACION DE UNA MATRIZ***"); pantalla gotoxy(7,6); printf("² INGRESO DE MATRIZ²"); gotoxy(45,6); printf("² MATRIZ ORDENADO ²"); gotoxy(22,4); printf(" Ingrese un numero : ");scanf("%d",&limit); Ingreso de un limite. ingresar(limit); ordenacion(limit); impresion(limit);

Llamadas de funciones

gotoxy(30,23);printf("² Desea continuar [1] o [0] para finalizar ² = ");scanf("%d",&op); 55


} while(op==1); getch(); }

Fin de programa Proceso que repita n veces el programa.

***CORRIDO DEL PROGRAMA****

15.-Diseñe un programa utilizando matrices y funciones que me permita ingresar n términos en una matriz entre 5 y 35 encontrar todo los valores impares ingresado en la matriz, pasar los datos a un vector y presentar dicho vector ordenado ascendente y descendente, el proceso se repite n veces.

Análisis 1.-Declaramos variables globales de cualesquier tipo que corresponda 2.-Ingreso de un límite entero desde teclado 3.- Utilizamos algunas funciones para realizar el programa como por ejemplo: void borde()Funcion borde. void ingreso(int limite) Funcion para el ingreso de la matriz. void impar(int limite) Funcion para verificar los impares de la matriz.

56


void asendente(int limite) Funcion para ordenar en forma ascendente. impresion1 (limite) Funcion para imprimir el orden en forma ascendente. void desendente(int limite) Funcion para ordenar en forma descendente. impresion2 (limite) Funcion para imprimir el orden en forma descendente.

4.-Es necesario inicializar las filas y columnas en un valor. 5.- Dentro del las funciones utilizamos algunos ciclos for, tambiĂŠn IF para las condiciones. 6.-Dentro del lazo for realizamos procesos. 7. -Imprimimos las matrices que sean necesarios, 8.- Al utilizar las funciones debemos tener un programa principal para llamar a las funciones. void main()Programa principal 9.- Utilizamos un blanqueado de pantalla. 10.- Podemos tambiĂŠn utilizar un textcolor que permite cambiar el color de la letra. 11.-Se necesita un nuevo lazo do-while que me permita generar varias veces el programa, utilizando la pregunta Desea Continuar Si o No. 12. Finalizamos el programa con una llave

Desarrollo del programa #include<conio.h> Librerias principales #include<stdio.h> int vector[12],matriz[12][12],limit,i,j,op,fila,col,v,aux; Declaracion de variables globales } void borde () Funcion borde. { for (i=1;i<=80;i++) { gotoxy(i,1); printf("*"); gotoxy(i,24);printf("*"); Proceso para poner borde en la } pantalla utilizando lazo for for (i=1;i<=24;i++) { gotoxy(1,i); printf("*"); gotoxy(80,i);printf("*"); }

57


} void ingreso(int limite) Funcion para el ingreso de la matriz. { fila=10; Inicializacion de columna y fila col=9; for(i=1;i<=limite;i++) Utilizacion de lazo for para posesionamiento de filas { y columnas. for(j=1;j<=limite;j++) { do Comienzo del Do para la validacion de datos en la matriz. { gotoxy(col,fila);printf(" "); Borra los datos que no cumpla la condicion de while. gotoxy(col,fila);scanf("%d",&matriz[i][j]);Ingreso de los datos de la matriz } while(matriz[i][j]<5||matriz[i][j]>35); Validaci贸n del ingreso de datos de la matriz. col=col+4; } col=9; fila=fila+2; }

Incremento de columna y de fila y regreso a su posicion original la columna

} void impar(int limite) Funcion para verificar los impares de la matriz. { v=1; Inicializacion del contador del vector. col=35; Inicializacion de columna y fila fila=10; for(i=1;i<=limite;i++) Utilizacion de lazo for para posesionamiento de filas { y columnas. for(j=1;j<=limite;j++) { if(matriz[i][j]%2==1) Condicion par verificar los numeros impares. {

vector[v]=matriz[i][j]; Asignacion de una matriz a un vector. gotoxy(col,fila);printf("%d",vector[v]); Impresion del vector. v=v+1; Incremento del contador . fila=fila+1; } Incremento de columna y fila . col=35; } } } void asendente(int limite) Funcion para ordenar en forma ascendente. {

58


col=55; Inicializacion de columna y fila fila=10; for(i=1;i<v;i++) { for(j=1;j<v;j++) { if(vector[i]<vector[j]) { Metodo de burbuja para ordenar el aux=vector[i]; vector resultante de forma vector[i]=vector[j]; ascendente.. vector[j]=aux; } } } } impresion1 (limite) Funcion para imprimir el orden en forma ascendente. { Proceso para imprimir el vector ordenado for(i=1;i<v;i++) de forma ascendente. { gotoxy(col,fila);printf("%d",vector[i]); fila=fila+1; Incrementacion de fila } } void desendente(int limite) Funcion para ordenar en forma descendente. { col=70; Inicializacion de columna y fila fila=10; for(i=1;i<v;i++) { for(j=1;j<v;j++) { if(vector[i]>vector[j]) { Metodo de burbuja para ordenar el aux=vector[i]; vector resultante de forma vector[i]=vector[j]; descendente. vector[j]=aux; } } } } impresion2 (limite) Funcion para imprimir el orden en forma descendente.

59


{ for(i=1;i<v;i++) Proceso para imprimir el vector ordenado { de forma descendente. gotoxy(col,fila);printf("%d",vector[i]); fila=fila+1; Incrementacion de fila } } void main()Programa principal { do Inicio del ciclo Do para repeticion del programa. { clrscr(); Sentencia para limpiar la pantalla borde();Llamada de la funcion borde. textcolor(4); sentencia para color de la letra. gotoxy(20,3);cprintf("*** ENCONTRAR NUMEROS IMPARES ***"); textcolor(7); sentencia para color de la letra. gotoxy(20,5); cprintf(" Ingrese un numero : ");scanf("%d",&limit); textcolor(5); sentencia para color de la letra. gotoxy(5,7); cprintf("² MATRIZ DE INGRESO ²"); gotoxy(29,7); cprintf("² VECT DESORDEN ²"); Mensajes en la gotoxy(49,7); cprintf("² VECT ASEND ²"); pantalla gotoxy(65,7); cprintf("² VECT DESEN ²"); ingreso(limit); impar(limit); asendente(limit); impresion1(limit); desendente(limit); impresion2(limit);

Llamadas de funciones con parametros.

textcolor(10); sentencia para color de la letra. gotoxy(30,23);cprintf("² Desea continuar [1] o [0] para finalizar ² = ");scanf("%d",&op); } while(op==1); getch(); }

Proceso que repita n veces el programa.

Fin de programa

60


****CORRIDO DEL PROGRAMA****

16.- Diseñe un programa utilizando matrices y funciones que me permita generar una matriz con cualquier factor ingresado desde teclado, recorre la matriz y encontrar todas las posiciones pares ya sea en filas y en columnas y guarde los datos en un vector.

Análisis 1.-Declaramos variables globales de cualesquier tipo que corresponda 2.-Ingreso de un límite entero desde teclado. 3.-Ingreso de un factor desde teclado. 4.- Utilizamos algunas funciones para realizar el programa como por ejemplo: void borde()Funcion borde. void ingresar (int limite, int factor) Funcion para la generacion del factor. void impresion (int limite) Funcion para la impresión.

5.-Es necesario inicializar las filas y columnas en un valor. 6.- Dentro del las funciones utilizamos algunos ciclos for, también IF para las condiciones. 7.-Dentro del lazo for realizamos procesos. 8. -Imprimimos las matrices que sean necesarios,

61


9.- Al utilizar las funciones debemos tener un programa principal para llamar a las funciones. void main()Programa principal 10.- Utilizamos un blanqueado de pantalla. 11.- Podemos tambiĂŠn utilizar un textcolor que permite cambiar el color de la letra. 11.-Se necesita un nuevo lazo do-while que me permita generar varias veces el programa, utilizando la pregunta Desea Continuar Si o No. 13. Finalizamos el programa con una llave

Desarrollo del programa # include<stdio.h> Librerias principales # include<conio.h> int cot,fact,i,j,op,col,fila,limt,matriz[10][10],vector[20],cotvector;

Declaracion de variables globales

void borde()Funcion borde

{ for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); Proceso para poner borde en la } pantalla utilizando lazo for for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } void ingresar (int limite, int factor) Funcion para la generacion del factor. { fila=10; Inicializacion de columna y fila col=5; cot=0; Inicializacion de l contador del factor. cotvector=0; Inicializacion de l contador del vector. gotoxy(8,8);printf("²MATRIZ DE INGRESO²"); for(i=1;i<=limite;i++) Utilizacion de lazo for para posesionamiento de filas { y columnas. for(j=1;j<=limite;j++) { cot=cot+1; Incremento del contador de factor.

62


matriz[i][j]=factor*cot; Asignacion del factor a una matriz. gotoxy(col,fila);printf("%d",matriz[i][j]); Impresion de la matriz. if((i%2==0)|| (j%2==0)) Condicion para verificar las posiciones pares de la matriz. { cotvector=cotvector+1; Incremento del contador de vector. vector[cotvector]=matriz[i][j]; Asignacion de una matriz a un vector.. } col=col+4; } fila=fila+1; col=5;

Incremento de columna de fila y regreso asu posicion original la columna

} } void impresion (int limite) Funcion para la impresión. { fila=10; Inicializacion de columna y fila col=38; gotoxy(35,8);printf("²MATRIZ DE POSICIONES PARES²"); for(i=1;i<=cotvector;i++) Proceso para la impresión del { vector resultante. gotoxy(col,fila);printf("%d",vector[i]); fila=fila+1; Incremento de columna y col=38; fila. } } void main()Programa principal. { do Inicio del ciclo Do para repeticion del programa. { clrscr();Sentencia para limpiar la pantalla. borde();Llamada de la funcion borde. textcolor(7); sentencia para color de la letra. gotoxy(10,2);printf(" ***PROGRAMA PARA ENCONTRAR LAS POSICIONES PARES DE UNA MATRIZ* **"); gotoxy(22,4);printf("Ingresar el limite = ");scanf("%d",&limt); Ingreso de un limite. gotoxy(22,6);printf("Ingresar el factor = ");scanf("%d",&fact); Ingreso de un factor. ingresar(limt,fact); impresion(limt);

Llamadas de funciones con parametros.

gotoxy(30,23);printf("² Desea continuar [1] o [0] para finalizar ² = ");scanf("%d",&op); }

63

Proceso que repita n veces el programa.


while(op==1); getch(); }

Fin de programa

****CORRIDO DEL PROGRAMA****

Análisis 1.-Declaramos variables globales de cualesquier tipo que corresponda 2.-Ingresar un límite entero desde teclado 3.- Utilizamos algunas funciones para realizar el programa como por ejemplo:  void borde()

Funcion borde

 void ingreso1(int limite) Funcion para el ingreso de la matriz 1.  void ingreso2 (int limite) Funcion para el ingreso de la matriz 2.  void producto (int limite) Funcion para realizar el proceso del producto  void impresion (int limite) Funcion para la impresión de matriz resultante

4.-Es necesario inicializar las filas y columnas en un valor. 5.- Dentro del las funciones utilizamos algunos ciclos for, y While para ala validación. 6.-Dentro del lazo for realizamos procesos.

64


7. Imprimimos las matrices que sean necesarios, 8.- Al utilizar las funciones debemos tener un programa principal para llamar a las funciones. ď ś void main()Programa principal 9.- Utilizamos un blanqueado de pantalla. 10.- Podemos tambiĂŠn utilizar un textcolor que permite cambiar el color de la letra. 11.-Se necesita un nuevo lazo do-while que me permita generar varias veces el programa, utilizando la pregunta Desea Continuar Si o No. 12. Finalizamos el programa con una llave

Desarrollo del programa #include<stdio.h> Librerias principales #include<conio.h> int col,fila,m,i,j,op,a,limit,matriz1[12][12],matriz2[12][12],matriz3[12][12]; void borde() Funcion borde Declaracion de variables globales { for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); Proceso para poner borde en la gotoxy(i,24);printf("*"); pantalla utilizando lazo for } for(i=1;i<=23;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } void ingreso1(int limite) Funcion para el ingreso de la matriz 1. { fila=10; Inicializacion de columna y fila col=8; for(i=1;i<=limite;i++) Utilizacion de lazo for para posesionamiento de { filas y columnas. for(j=1;j<=limite;j++) {

65


do Comienzo del Do para la validacion del ingreso 1 { gotoxy(col,fila);printf(" "); Borra los datos que no cumpla la condicion de while. gotoxy(col,fila);scanf("%d",&matriz1[i][j]); Ingreso de los datos de la matriz1 } while(matriz1[i][j]<1 || matriz1[i][j]>23);Validaci贸n del ingreso de datos de la atriz1. col=col+4; Incremento de columna de } fila y regreso asu posicion col=8; original la columna fila=fila+2; } } void ingreso2 (int limite) Funcion para el ingreso de la matriz 2. { fila=10; Inicializacion de columna y fila col=34; for(i=1;i<=limite;i++) Utilizacion de lazo for para posesionamiento de { filas y columnas. for(j=1;j<=limite;j++) { do Comienzo del Do para la validacion del ingreso 2 { gotoxy(col,fila);printf(" "); Borra los datos que no cumpla la condicion de while. gotoxy(col,fila);scanf("%d",&matriz2[i][j]);Ingreso de los datos de la matriz2 } while(matriz2[i][j]<1||matriz2[i][j]>23);Validaci贸n del ingreso de datos de la matriz2. col=col+4; } Incremento de columna de fila y regreso asu posicion col=34; fila=fila+2; original la columna } } void producto (int limite) Funcion para realizar el proceso del producto { fila=10; Inicializacion de columna y fila col=60; for(i=1;i<=limite;i++) Utilizacion de lazo for para posesionamiento de { filas y columnas. for(j=1;j<=limite;j++) { 66


matriz3[i][j]=0; Asignacion de cero a la matriz 3 for(m=0;m<=limite;m++) Lazo for para posesionamiento con la variable m. { matriz3[i][j]=matriz3[i][j]+matriz1[i][m]*matriz2[m][j]; Proceso para el producto algebraico. } } } } void impresion (int limite) Funcion para la impresión de matriz resultante { for(i=1;i<=limite;i++) Utilizacion de lazo for para posesionamiento de { filas y columnas. for(m=1;m<=limite;m++) { gotoxy(col,fila);printf("%d",matriz3[i][m]); Impresión de la matriz3 del producto. col=col+4; Incremento de columna de } fila y regreso asu posicion col=60; fila=fila+2; original la columna } } void main()Programa principal { Do Inicio del ciclo Do para repeticion del programa. { clrscr();Sentencia para limpiar la pantalla borde();Llamada de la funcion borde. textcolor(4); sentencia para color de la letra. gotoxy(24,2);cprintf("***PRODUCTO ALGEBRAICO DE MATRICES***"); textcolor(5); sentencia para color de la letra. Mensajes en la gotoxy(3,7);cprintf("² MATRIZ DE INGRESO 1 ²"); pantalla gotoxy(28,7);cprintf("² MATRIZ DE INGRESO 2 ²"); gotoxy(54,7);cprintf("² PRODUCTO DE MATRICES ²"); gotoxy(24,4);printf("Ingrese un numero : ");scanf("%d",&limit); Ingreso de un limite. ingreso1(limit); ingreso2(limit); Llamadas de funciones con parametros. producto(limit); impresion(limit);

67


textcolor(7); gotoxy(30,23);cprintf("² Desea continuar [1] o [0] para finalizar ² = );scanf("%d",&op); } while(op==1); getch(); }

Fin de programa

****CORRIDO DEL PROGRAMA*****

Bibliografía: http://www.esi2.us.es/~vivas/fi1ii/Practicas/Prac_FI_08.pdf http://fccea.unicauca.edu.co/old/matrices.htm http://www.zator.com/Cpp/E4_3.htm http://www.atc.us.es/asignaturas/fi/curso_de_c/Array_bidimensional_o_matriz.html http://msdn.microsoft.com/es-es/library/aa288453%28v=vs.71%29.aspx

68

Proceso que repita n veces el programa.

programacion 2012  

matrices y ejercicios

Read more
Read more
Similar to
Popular now
Just for you