09.05.2013 Views

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

12.3. Matrices 265<br />

begin<br />

for i:= 1 to N do<br />

for k:= 1 to N do begin<br />

resul[i,k]:= 0;<br />

for j:= 1 to N do<br />

resul[i,k]:= resul[i,k] + m1[i,j] * m2[j,k]<br />

<strong>en</strong>d {for k}<br />

<strong>en</strong>d; {MultiplicarMat}<br />

procedure EscribirMatProd(m: tMatriz);<br />

{Efecto: escribe <strong>en</strong> la pantalla los elem<strong>en</strong>tos de la matriz m}<br />

var<br />

i, j: 1..N;<br />

begin<br />

for i:= 1 to N do<br />

for j:= 1 to N do<br />

{Escribe mij}<br />

WriteLn(’m(’, i, ’,’, j, ’) = ’, m[i,j]);<br />

<strong>en</strong>d; {EscribirMatProd}<br />

begin<br />

WriteLn(’Lectura de la matriz A’);<br />

LeerMatriz(a);<br />

WriteLn(’Lectura de la matriz B’);<br />

LeerMatriz(b);<br />

MultiplicarMat(a,b,prod);<br />

EscribirMatProd(prod)<br />

<strong>en</strong>d. {MultiplicacionDeMatrices}<br />

Un ejemplo completo<br />

El sigui<strong>en</strong>te ejemplo utiliza todos los tipos de datos definidos por el programador<br />

vistos hasta ahora, es decir, los tipos <strong>en</strong>umerado, subrango y array.<br />

Se trata de construir un almanaque del siglo xx, asignando <strong>en</strong> una matriz<br />

con tres índices correspondi<strong>en</strong>tes a los días del mes (1 al 31), meses (<strong>en</strong>e, feb,<br />

etc.), y años desde el 1901 al 2000, los días de la semana.<br />

El punto de partida es el día 31 de diciembre de 1900 que fue lunes. A<br />

partir de esta fecha se van recorri<strong>en</strong>do consecutivam<strong>en</strong>te todos los días del siglo<br />

asignándoles el día de la semana correspondi<strong>en</strong>te, t<strong>en</strong>i<strong>en</strong>do especial cuidado <strong>en</strong><br />

determinar cuántos días ti<strong>en</strong>e cada mes, para lo cual se ha de comprobar si el año<br />

es bisiesto. En un primer nivel de refinami<strong>en</strong>to podríamos escribir el sigui<strong>en</strong>te<br />

seudocódigo:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!