Está en la página 1de 3

Fundamentos de Informtica.

Primer Curso de Ingenieros Industriales

Prctica 8
Programacin con Matrices en Lenguaje C
1

Introduccin
El objeto de la presente prctica es permitir al alumno ensayar y familiarizarse con los
conceptos de programacin de matrices en lenguaje C que se han desarrollado en las clases
tericas de la asignatura.
Para ello se har uso del compilador Dev-C++, que permitir editar, compilar y montar
programas desarrollados en el lenguaje de programacin C.

Desarrollo de la Prctica
Para ilustrar los conceptos de programacin de matrices en C antes mencionados, esta
prctica propone la realizacin y anlisis de un programa concreto.
El alumno deber desarrollar un programa que permita obtener el producto de dos matrices,
representando ste en la pantalla del ordenador, respetando el formato de filas y columnas de
la matriz resultado.

Pasos a seguir para el desarrollo de la prctica


1. Preparacin del programa de edicin y compilacin
Para entrar en el entorno de edicin del programa de Dev-C++, no tenemos ms que
hacer click sobre el icono de acceso directo a Dev-C++, que a este efecto debe estar
presente en el escritorio de Windows.
Para comenzar la edicin o escritura del nuevo programa, pulsaremos en men
desplegable Archivo->nuevo->Fichero fuente o bien pulsaremos la combinacin de
teclas Ctrl.+N

2. Escritura del Programa de multiplicacin de matrices.


Se proporciona a continuacin una plantilla para la escritura del programa de
multiplicacin de matrices, en la que se define lo siguiente:
1. El tamao en filas y columnas de las matrices a mutiplicar: FIL1,COL1 y FIL2,COL2
2. El nombre de las variables en las que estn almacenadas las matrices: mat1 y mat2.
3. Inicializacin del valor numrico de los elementos de dichas matrices.
4. El prototipo de la funcin de multiplicacin de matrices: multiplica
5. Funcin de entrada al programa void main(void)

Prctica 8.doc

Fundamentos de Informtica. Primer Curso de Ingenieros Industriales

6. Variables para los ndices de los bucles de clculo del producto matricial (i,j,k) y
una variable auxiliar (escalar).

PLANTILLA
#include <stdio.h>
#include <stdlib.h>
#define
#define
#define
#define

FIL1
COL1
COL2
FIL2

2
3
2
COL1 /* FIL2 debe ser igual a COL1 para poder multiplicar

void multiplica(double mat1[][COL1],double mat2[][COL2]);


main()
{
double mat1[FIL1][COL1]={{1,2,1},{3,2,4}};
double mat2[FIL2][COL2]={{5,6},{7,8},{-1,2}};
printf("Resultado de la multiplicacion\n");
.
.
(Completar el cdigo en este espacio)
.
system(PAUSE);
}
void multiplica(double mat1[][COL1],double mat2[][COL2])
{
int i,j,k;
double escalar;
.
.
.
(Completar el cdigo en este espacio)
.
}

El alumno deber completar el cdigo anterior para obtener un programa que multiplique
(usando la funcin multiplica) las matrices mat1 y mat2, declaradas e inicializadas en
main().

El resultado de dicho producto deber mostrarse por pantalla respetando el formato de


filas y columnas del resultado, es decir, debern aparecer filas y columnas correctamente
alineadas. Para ello se sugiere el empleo de la siguiente funcin para la salida de datos,
la cual garantiza una longitud fija (3 espacios para la parte entera y redondeo a 2
espacios decimales) del nmero que se imprima por pantalla.
printf("%3.2f

",escalar);

Se recuerda asimismo, que el programa deber incluir el correspondiente retorno de


carro ( printf(\n); ) al final de la impresin de cada fila, para que stas aparezcan
alineadas una sobre otra como corresponde.
Recordemos que la expresin del producto de dos matrices viene dada por:

Prctica 8.doc

Fundamentos de Informtica. Primer Curso de Ingenieros Industriales

C ij = Aik Bkj
k

El programa deber constar, por tanto, de tres bucles anidados: el ms interno de ellos
(con ndice k) deber encargarse de efectuar el producto escalar de la fila i de A (o mat1)
por la columna j de B (o mat2), acumulando el resultado en la variable auxiliar escalar,
que se proporciona en la plantilla.
Los dos bucles externos, con ndices i , j; debern recorrer todas las filas de A y todas
las columnas de B respectivamente, para completar el producto.
3. Resultado de la ejecucin del programa
Antes de pasar a ver el funcionamiento del programa tecleado, es conveniente guardarlo.
Puede almacenar su cdigo fuente en cualquier directorio de la unidad local C:.
Se recuerda que para que el programa sea apropiadamente compilado como
cdigo C, es necesario guardarlo con extensin .C, es decir en la ventana que se le
abrir al guardar el archivo, seleccione C source files (*.c)
Para comprobar que el cdigo funciona correctamente generaremos un fichero ejecutable
a partir de nuestro fichero fuente empleando la opcin Compilar (Ctrl.+F9) del men
desplegable Ejecutar de Dev-C++.
Esto generar, si el cdigo no contiene errores, un fichero ejecutable llamado
multiplica.exe
Para ejecutarlo acudiremos de nuevo al men Ejecutar-> Ejecutar.
El resultado debe ser el producto de las matrices arriba mencionadas.
4. Sugerencia final
Aquellos alumnos que terminen satisfactoriamente el programa anterior, pueden como
ejercicio, tratar de modificar el mismo para permitir la entrada por teclado de los
elementos de las matrices.

Prctica 8.doc

También podría gustarte