Suma de Matrices #include <stdio.h> #include <stdlib.h> #define FIL 2 #define COL 2 /* * Arreglos bidimensionales * Suma de matrices cuadradas */ int main(int argc, char *argv[]) { // Declaración de variables int ma[FIL][COL], mb[FIL][COL], mc[FIL][COL]; int fil; // subíndice para filas int col; // subíndice para columas // Asignación de valores a la matriz A ma[0][0] = 5; // fila 0 columna 0 ma[0][1] = 3; // fila 0 columna 1 ma[1][0] = 1; // fila 1 columna 0 ma[1][1] = 2; // fila 1 columna 1 // Ingreso de valores en la matriz B for (fil=0; fil < FIL; fil++) { for (col=0; col < COL; col++) { printf("Introducir elemento mb[%i][%i]: ",fil,col); scanf("%i", &mb[fil][col]); } } // Cálculo de la suma de matrices for (fil=0; fil < FIL; fil++) { for (col=0; col < COL; col++) { mc[fil][col] = ma[fil][col] + mb[fil][col]; printf("\n elemento mc[%i][%i] = %i",fil,col, mc[fil][col]); } } printf("\n"); getch(); system("PAUSE"); return 0; } Producto de Matrices #include <stdio.h> #include <stdlib.h> #define FIL 2 #define COL 2 /* * Arreglos bidimensionales * Producto de matrices cuadradas */ int main(int argc, char *argv[]) { // Declaración de variables int ma[FIL][COL], mb[FIL][COL], mc[FIL][COL]; int fil; // subíndice para filas int k; // subíndice de apoyo para producto fila-columna int col; // subíndice para columas int valor; // variable para acumular parciales del producto // Asignación de valores a la matriz A ma[0][0] = 5; // fila 0 columna 0 ma[0][1] = 3; // fila 0 columna 1 ma[1][0] = 1; // fila 1 columna 0 ma[1][1] = 2; // fila 1 columna 1 // Ingreso de valores en la matriz B for (fil=0; fil < FIL; fil++) { for (col=0; col < COL; col++) { printf("Introducir elemento mb[%i][%i]: ",fil,col); scanf("%i", &mb[fil][col]); } } // Cálculo del producto de matrices for (fil=0; fil < FIL; fil++) { for (col=0; col < COL; col++) { valor = 0; for (k=0; k < COL; k++) { valor = valor + ma[fil][k] * mb[k][col]; mc[fil][col] = valor; } } } // Impresión de resultados for (fil=0; fil < FIL; fil++) { for (col=0; col < COL; col++) { printf("\n elemento mc[%i][%i] = %i",fil,col, mc[fil][col]); } } printf("\n"); getch(); system("PAUSE"); return 0; } Implementación tablero de ajedrez #include <stdio.h> #include <stdlib.h> /* * Implemtentación del juego de ajedrez * * Fichas blancas con minúsculas - Filas 0 y 1 * Fichas negras con mayúsculas - Filas 6 y 7 * P,p=peón C,c=caballo A,a=alfil T,t=torre Q,q=reina R,r=rey */ int main(int argc, char *argv[]) { // Declaración variables char ajedrez[8][8]; // Tablero de 8 x 8 = 64 cuadros int col; // Colocación de peones en el tablero for (col=0; col < 8; col++) { ajedrez[1][col] = 'p'; // peón blanco ajedrez[6][col] = 'P'; // peón negro } // Piezas negras ajedrez[0][0] = 't'; ajedrez[0][1] = 'c'; ajedrez[0][2] = 'a'; ajedrez[0][3] = 'r'; ajedrez[0][4] = 'q'; ajedrez[0][5] = 'a'; ajedrez[0][6] = 'c'; ajedrez[0][7] = 't'; // // // // // // // // torre caballo alfil rey izquierda de la reina reina alfil caballo torre // Piezas blancas ajedrez[0][0] = 't'; ajedrez[0][1] = 'c'; ajedrez[0][2] = 'a'; ajedrez[0][3] = 'Q'; ajedrez[0][4] = 'R'; ajedrez[0][5] = 'a'; ajedrez[0][6] = 'c'; ajedrez[0][7] = 't'; // // // // // // // // torre caballo alfil reina rey derecha de la reina alfil caballo torre // Alfil blanco ajedrez[5][2] = ajedrez[1][6] = ajedrez[1][6] = ajedrez[5][2] = a peón negro // posición alfil blanco // posición peón negro // alfil come al peón - peón se va // se pone en blanco casilla del alfil system("PAUSE"); return 0; come 'a'; 'P'; 'a'; ''; } Ejemplo de jugada: Se utiliza un arreglo bidimensional para representar un tablero de ajedrez. ¿Cuál es la secuencia de posiciones o movimientos necesarios para que el caballo (C) se “coma” al alfil (A)?. Debe representar los movimientos o posiciones con el arreglo y los subíndices (tip: los valores de los subíndices del arreglo comienzan desde la esquina superior izquierda) A C Solución: Se debe definir un arreglo bidimensional de char: char ajedrez[8][8] Las piezas se colocan desde la posición ajedrez[0][0] en la esquina superior izquierda El caballo se encuentra en la posición ajedrez[7][2]; es decir, octava fila y tercera columna. El alfil se encuentra en la posición ajedrez[0][6]; es decir, primera y séptima columna. Estas movidas dan una posible solución: o ajedrez[0][6] = ‘A’ // posición inicial alfil o ajedrez[7][2] = ‘c’ // posición inicial caballo o ajedrez[6][4] = ‘c’ // caballo se desplaza a fila 6 columna 4 o ajedrez[7][2] = ‘’ // hay que poner en blanco la posición de dónde salió o ajedrez[4][5] = ‘c’ // movimiento caballo o ajedrez[6][4] = ‘’ o ajedrez[2][6] = ‘c’ o ajedrez[4][5] = ‘’ o ajedrez[1][4] = ‘c’ o ajedrez[2][6] = ‘’ o ajedrez[0][6] = ‘c’ o ajedrez[1][4] = ‘’ // movimiento caballo // movimiento caballo // caballo se come al alfil