PDF

Anuncio
(*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
Programa:
SUMAMATRICES02
Problema:
Sumar dos matrices cuadradas
Elaborado por:
DR. BERNARDO HERNÁNDEZ MORALES
Fecha:
Abril 2013
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>*)
PROGRAM SUMAMATRICES02; (* Nombre del programa *)
(* Permitir el uso de rutinas del monitor y entrada/salida *)
USES
Crt, SysUtils;
(* Definicion de variables y su tipo *)
TYPE
matrix = array [ 1..3, 1..3] of real;
VAR
a,b,c: matrix;
i,j,n: integer;
(* <><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> *)
BEGIN (* Inicio del programa principal *)
ClrScr; (* Iniciar con pantalla nueva *)
(* Creditos *)
WRITELN('
PROGRAMA: SUMAMATRICES01');
WRITELN;
WRITELN('
(Dos matrices de 3 x 3)');
WRITELN;
WRITELN;
WRITELN('
Dr. Bernardo Hernández Morales');
WRITELN;
WRITELN;
WRITELN('
Abril 2013');
WRITELN;
WRITELN('=========================================');
(* Número de renglones y de columnas (FIJO) *)
n:=3;
(* Ciclo con REALIZAR MIENTRAS para los renglones *)
i:=1; (* Inicializar el contador de los renglones de la matriz *)
WHILE i <= n DO (* MIENTRAS i <= n REALIZAR *)
BEGIN (* Inicializar las acciones a realizar (por renglón) *)
(* Ciclo con REALIZAR MIENTRAS para las columnas *)
j:=1; (* Inicializar el contador de las columnas de la matriz *)
WHILE j <= n DO (* MIENTRAS j <= n REALIZAR *)
BEGIN (* Inicializar las acciones a realizar (por columna) *)
(* Lectura de datos*)
WRITELN;
WRITELN('Favor de ingresar el componente ',i,',',j,' de la matriz a');
READLN(a[i,j]);
WRITELN;
WRITELN('Favor de ingresar el componente ',i,',',j,' de la matriz b');
READLN(b[i,j]);
(* Suma *)
c[i,j]:=a[i,j] + b[i,j];
j:=j+1; (* Actualizar el contador de las columnas *)
END; (* Finalizar las acciones a realizar (por columna) y regresar *)
i:=i+1; (* Actualizar el contador de los renglones *)
END; (* Finalizar las acciones a realizar (por renglón) y regresar *)
(* Impresión de datos *)
WRITELN;
WRITELN('Los datos introducidos son:');
WRITELN;
WRITELN('Matriz [a]:');
(* Ciclo con REALIZAR MIENTRAS para los renglones *)
i:=1; (* Re-inicializar el contador de los renglones de la matriz *)
WHILE i <= n DO (* MIENTRAS i <= n REALIZAR *)
BEGIN (* Inicializar las acciones a realizar (por renglón) *)
j:=1; (* Re-inicializar el contador de las columnas de la matriz *)
WHILE j <= n DO (* MIENTRAS j <= n REALIZAR *)
BEGIN (* Inicializar las acciones a realizar (por columna)*)
Write(a[i,j]:0:2,' '); (* Se ha utilizado formato de impresión *)
j:=j+1; (* Actualizar el contador de las columnas *)
END; (* Finalizar las acciones a realizar (por columna) y regresar *)
WRITELN;
i:=i+1; (* Actualizar el contador de los renglones *)
END; (* Finalizar las acciones a realizar (por renglón) y regresar *)
WRITELN;
WRITELN('Matriz [b]:');
(* Ciclo con REALIZAR MIENTRAS para los renglones *)
i:=1; (* Re-inicializar el contador de los renglones de la matriz *)
WHILE i <= n DO (* MIENTRAS i <= n REALIZAR *)
BEGIN (* Inicializar las acciones a realizar (por renglón) *)
j:=1; (* Re-inicializar el contador de las columnas de la matriz *)
WHILE j <= n DO (* MIENTRAS j <= n REALIZAR *)
BEGIN (* Inicializar las acciones a realizar (por columna)*)
Write(b[i,j],' '); (* No se ha utilizado formato de impresión *)
j:=j+1; (* Actualizar el contador de las columnas *)
END; (* Finalizar las acciones a realizar (por columna) y regresar *)
WRITELN;
i:=i+1; (* Actualizar el contador de los renglones *)
END; (* Finalizar las acciones a realizar (por renglón) y regresar *)
(* Impresión de resultados *)
WRITELN;
WRITELN('Los componentes de la matriz [c] son:');
WRITELN;
(* Ciclo con REALIZAR MIENTRAS para los renglones *)
i:=1; (* Re-inicializar el contador de los renglones de la matriz *)
WHILE i <= n DO (* MIENTRAS i <= n REALIZAR *)
BEGIN (* Re-nicializar las acciones a realizar (por renglón) *)
(* Ciclo con REALIZAR MIENTRAS para las columnas *)
j:=1; (* Re-inicializar el contador de las columnas de la matriz *)
WHILE j <= n DO (* MIENTRAS j <= n REALIZAR *)
BEGIN (* Inicializar las acciones a realizar (por columna)*)
WRITE(c[i,j],' '); (* No se ha utilizado formato de impresión *)
j:=j+1; (* Actualizar el contador de las columnas *)
END; (* Finalizar las acciones a realizar (por columna) y regresar *)
WRITELN;
i:=i+1; (* Actualizar el contador de los renglones *)
END; (* Finalizar las acciones a realizar (por renglón) y regresar *)
(* Terminar la ejecución del programa *)
WRITELN;
WRITE('Para terminar, presione ENTER');
READKEY;
END.
Descargar