Suma y resta de matrices en pascal

En este ejemplo sumaremos dos matrices y cada matriz podrá almacenar 8 valores.

Paso 1. Para sumar dos matrices a la primera le llamaremos a y a la segunda b. Para sumarlas primero tendríamos que leer las dos matrices, para después sumarlas, y para leer cada una, tendríamos que usar dos ciclos para cada una así:

For i:=1 to 4  do
for j:=1 to 2 do
readln(a[i,j]);        {Leyendo matriz a}

For i:=1 to 4  do
for j:=1 to 2 do
readln(b[i,j]);      {Leyendo matriz b}

Paso 2. Ya leímos las dos matrices, ahora queremos sumar la matriz a de posición 1,1—–> a[1,1] con la matriz b de posición 1,1—–> b[1,1]  y esta suma ocupamos guardarla en otra matriz que llamaremos r de posición 1,1 ——> r[1,1 ]  y luego a[1,2] + b[1,2]=r[1,2] y después a[2,1] + b[2,1]=r[2,1]. Y así sucesivamente hasta sumar las 8 posiciones de las matrices.

Y para hacer la suma y guardar el resultado ocupamos dos ciclos y quedaría así:

For i:=1 to 4  do
for j:=1 to 2 do
r[i,j]:=a[i,j] + b[i,j];

{Sumando matriz a con matriz b y  guardando el  resultado en matriz r}

{Primero i vale 1 y j vale 1 aquí estamos diciendo que la matriz r de posición 1,1 —-> r[1,1] es igual a la suma de la matriz a en posición 1,1 ——>a[1,1] con la matriz b en posición 1,1 —-> b[1,1]. Y luego las de posición 1,2 – 2,1 – 2,2 – 3,1  – 3,2 – 4,1 y 4,2.

Paso 3. Ya que tenemos los valores resultantes guardados en la matriz r solo falta imprimirlos y para esto ocupamos otros dos ciclos

For i:=1 to 4  do
for j:=1 to 2 do
writeln(r[i,j]);     {Imprimiendo matriz r}

Y para la Resta es lo mismo, solo cambien el operador en el paso 2.

Resta

For i:=1 to 4  do
for j:=1 to 2 do
r[i,j]:=a[i,j] - b[i,j];

Código fuente de programa en pascal:

program matrices;
uses
crt;
type
matriz=array[1..4,1..2] of integer;
var
a,b,r:matriz; i,j:integer;
begin
clrscr;
For i:=1 to 4  do
for j:=1 to 2 do
readln(a[i,j]); {Leyendo matriz a}

For i:=1 to 4  do
for j:=1 to 2 do
readln(b[i,j]); {Leyendo matriz b}

For i:=1 to 4  do
for j:=1 to 2 do
r[i,j]:=a[i,j] + b[i,j];     {Sumando matriz a con matriz b
y guardar el resultado en matriz r}

clrscr;

For i:=1 to 4  do
for j:=1 to 2 do
writeln(r[i,j]);            {Imprimiendo matriz r}
readkey;
End.