Plantee e implemente un programa en PASCAL que permita introducir apropiadamente una matriz NxN de números enteros (0<N<10), la visualice apropiadamente por pantalla (formato matricial) y muestre el elemento mayor y el elemento menor de dicha matriz y sus posiciones.
PROGRAM matrices(input,output);
CONST
limitefilas = 10;
limitecolumnas = 10;
TYPE
Tabla = ARRAY[1..limitefilas, 1..limitecolumnas] OF integer;
VAR
matriz:Tabla;
fila,columna:integer;
a:integer;
(*******************************************************************************)
PROCEDURE leer;
VAR
I,L,numero:integer;
BEGIN
write('Escriba el numero de filas de la matriz: ');
read(fila);
write('Escriba el numero de columnas de la matriz: ');
read(columna);
FOR I:=1 TO fila DO
BEGIN
FOR L:=1 TO columna DO
BEGIN
write('Escriba el numero del elemento fila: ',I:2,' columna: ',L:2,' :');
read(numero);
matriz[I,L]:= numero;
END;
END;
END;
(*******************************************************************************)
PROCEDURE Imprimir_Matriz;
VAR
I,L: integer;
BEGIN
FOR I:=1 TO fila DO
BEGIN
writeln;
FOR L:=1 TO columna DO
BEGIN
write(matriz[I,L]:8);
write(' ');
END;
END;
writeln;
END;
(*******************************************************************************)
BEGIN
leer;
Imprimir_Matriz;
read(a);
END.
Ejemplo de ejecucion
Suscribirse a:
Enviar comentarios (Atom)
Ese no es exactamente el que piden:
ResponderEliminarPROGRAM matriz_max_min (input, output);
CONST
nfilas = 10;
ncolumnas = 10;
TYPE
ttabla = ARRAY[1..nfilas, 1..ncolumnas] OF integer;
VAR
matriz:ttabla;
fila,columna:integer;
a:integer;
(*******************************************************************************)
PROCEDURE leer;
VAR
i,j,numero:integer;
BEGIN
write('Escriba el numero de filas de la matriz: ');
read(fila);
write('Escriba el numero de columnas de la matriz: ');
read(columna);
FOR i:=1 TO fila DO
BEGIN
FOR j:=1 TO columna DO
BEGIN
write('Escriba el numero del elemento fila: ',i:2,' columna: ',j:2,' :');
read(numero);
matriz[i,j]:= numero;
END;
END;
END;
(*******************************************************************************)
PROCEDURE buscar_datos;
VAR
i,j: integer;
max: integer VALUE -maxint;
min: integer VALUE maxint;
ipos_max, jpos_max, ipos_min, jpos_min: integer VALUE 0;
BEGIN
FOR i:=1 TO fila DO
BEGIN
writeln;
FOR j:=1 TO columna DO
BEGIN
IF matriz[i,j]>max THEN
BEGIN
max:=matriz[i,j];
ipos_max:=i;
jpos_max:=j;
END;
IF matriz[i,j]<min THEN
BEGIN
min:=matriz[i,j];
ipos_min:=i;
jpos_min:=j
END;
END;
END;
write('El maximo es: ', max:1,' ,esta en la posicion (',ipos_max:1,',',jpos_max:1,') y el minimo es: ', min:1, ' ;esta en la posicion (',ipos_min:1,',',jpos_min:1,')');
END;
(*******************************************************************************)
BEGIN
leer;
buscar_datos;
readln;
END.
Dani, tiene razón, yo también lo tengo hecho y busca el máximo y el mínimo de la matriz, en un par de procedimientos cortos se hace. Mi código tiene 90 líneas más el procedimiento iniciar que simplemente hace más estético el programa principal que solo es
ResponderEliminarBEGIN
iniciar;
END.
jaja si quieres te lo paso y le echas un vistazo