(*<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><> 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.