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.

264 Capítulo 12. Arrays<br />

En el sigui<strong>en</strong>te ejemplo, que calcula el producto de dos matrices reales, se utilizan<br />

las operaciones permitidas a los arrays, haci<strong>en</strong>do uso del hecho de que las<br />

matrices se pued<strong>en</strong> pasar como parámetros <strong>en</strong> funciones y procedimi<strong>en</strong>tos. En<br />

un primer nivel de diseño se ti<strong>en</strong>e:<br />

Leer matrices a y b<br />

Multiplicar matrices a y b, hallando la matriz producto prod<br />

Mostrar la matriz prod<br />

Dada la simplicidad y familiaridad de los subprogramas a implem<strong>en</strong>tar, no<br />

se considera necesario un nivel inferior de diseño, razón por la cual se pres<strong>en</strong>ta<br />

directam<strong>en</strong>te la codificación <strong>en</strong> <strong>Pascal</strong>:<br />

Program MultiplicacionDeMatrices (input,output);<br />

{El programa lee dos matrices cuadradas de dim<strong>en</strong>sión N y de<br />

compon<strong>en</strong>tes reales y las multiplica, mostrando la matriz<br />

producto <strong>en</strong> la pantalla}<br />

const<br />

N = 10;<br />

type<br />

tMatriz = array[1..N, 1..N] of real;<br />

var<br />

a, b, prod: tMatriz;<br />

procedure LeerMatriz(var mat : tMatriz);<br />

{Efecto: Este procedimi<strong>en</strong>to lee del input una matriz<br />

cuadrada mat ∈ MN ( IR), compon<strong>en</strong>te a compon<strong>en</strong>te}<br />

var<br />

fil, col: 1..N;<br />

begin<br />

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

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

Write(’Introduzca la compon<strong>en</strong>te ’, fil, ’,’, col,<br />

’ de la matriz: ’);<br />

ReadLn(mat[fil,col])<br />

<strong>en</strong>d<br />

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

procedure MultiplicarMat(m1, m2: tMatriz; var resul: tMatriz);<br />

{Efecto: resul:= m1 * m2}<br />

var<br />

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

{i recorre las filas de m1 y de resul, j recorre las columnas<br />

de m1 y las filas de m2 y k recorre las columnas de m2 y las<br />

de resul}

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

Saved successfully!

Ooh no, something went wrong!