jueves, 8 de diciembre de 2011

Ejercicio 13(Arrays)

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




2 comentarios:

  1. Ese no es exactamente el que piden:

    PROGRAM 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.

    ResponderEliminar
  2. 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
    BEGIN
    iniciar;
    END.

    jaja si quieres te lo paso y le echas un vistazo

    ResponderEliminar

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | GreenGeeks Review