lunes, 12 de diciembre de 2011

Ejercicio 18(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 la posición de un elemento punto de silla, si existe. Una matriz presenta un punto de silla si alguna posición de la misma es al mismo tiempo el menor valor de su fila y el mayor valor de su columna.


PROGRAM operaciones(input,output);
(*Programa que permita introducir matrices hasta de orden 10 por pantalla y haga la suma resta y multiplicacion de matrices*)
CONST
     maximofilas = 10;
     maximocolumnas = 10;
TYPE
    Tabla = ARRAY[1..maximofilas, 1..maximocolumnas] OF integer;
VAR
   matriz1:Tabla;
   filas,columnas:integer;
   a:integer;

(******************************************************************************************************************************)
PROCEDURE leer1;
VAR
   I,L:integer;
BEGIN
     write('Introduzca el maximo de filas que tiene que contener la matriz 1: ');
     read(filas);
     write('Introduzca el maximo de columnas que tiene que contener la matriz 1: ');
     read(columnas);
     FOR I:=1 TO filas DO
     BEGIN
         FOR L:=1 TO columnas DO
         BEGIN
         write('Escriba el elemento que se situa en la fila: ',I:2,' ,columna: ',L:2,':');
         read(matriz1[I,L]);
         END;
      END;
      writeln;
END;
(*******************************************************************************************************************************)
PROCEDURE escribir1;
VAR
   I,L:integer;
BEGIN
FOR I:=1 TO filas DO
     BEGIN
         FOR L:=1 TO columnas DO
         BEGIN
         write(matriz1[I,L]:5);
         END;
         writeln;
         writeln;
      END;
END;
(*****************************************************************************************************************************)
PROCEDURE comprobar;
VAR
   I,L,n:integer;
BEGIN
FOR I:=1 TO filas DO
     BEGIN
         FOR L:=1 TO columnas DO
         BEGIN
         IF I = 1 THEN
            BEGIN
            FOR n:=1 TO columnas DO
            IF ((matriz1[I,L] < matriz1[I,L+n])AND(matriz1[I,L] >matriz1[I+n,L]))THEN writeln('La matriz presenta un punto de silla');
            END;
         END;
      END;
END;
(*****************************************************************************************************************************)
BEGIN
writeln('Bienvenido al programa para determinar si una matriz presenta un punto de silla');
leer1;
escribir1;
comprobar;
read(a);
END.

Ejemplo de ejecución




4 comentarios:

  1. warra,estaba trabajando y acabando el programita este para subirlo xd

    ResponderEliminar
  2. jajaja pues yo lo acabe ya a las 3 xD

    ResponderEliminar
  3. pero no se muestra donde esta el punto de silla

    ResponderEliminar
  4. donde esta el punto silla? no se indica!!!

    ResponderEliminar

Twitter Delicious Facebook Digg Stumbleupon Favorites More

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