ejercicios_arreglos

Anuncio
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
Descargar