P_86_E-02

=Matriz: ver si todos positivos o algún cero debajo matriz principal=

Escribir un programa que lea una matriz M de 10 x 10 elementos como máximo.

Ver si todos los elementos de M son positivos.

Existe algún elemento situado a la derecha de la diagonal principal que es distinto de cero.

code format="pascal" PROGRAM ArraysBidimensionales_2 ;

CONST iMAX_DIMENSION = 10 ; TYPE taiMatrices = ARRAY [1..iMAX_DIMENSION, 1..iMAX_DIMENSION] OF Integer ;

PROCEDURE LeerMatriz (VAR aiMatriz : taiMatrices ; iDimension: Integer) ; VAR i, j : Integer ; BEGIN FOR i := 1 TO iDimension DO      BEGIN Writeln ; Writeln ('Introduce la fila ', i) ; FOR j := 1 TO iDimension DO         BEGIN Write ('[', i, ', ', j, ']: ') ; ReadLn (aiMatriz [i, j]) ; END ; END ; END ;

PROCEDURE MostrarMatriz (CONST aiMatriz : taiMatrices ; iDimension: Integer) ; VAR i, j : Integer ; BEGIN FOR i := 1 TO iDimension DO      BEGIN FOR j := 1 TO iDimension DO         Write (aiMatriz [i, j]:8) ;

Writeln ; END ; END ;

FUNCTION fnboSonTodosPositivos (CONST  aiMatriz: taiMatrices ;                                      iDimension: Integer)  : Boolean  ; VAR i, j : Integer ; boTodosPositivos : Boolean ; BEGIN boTodosPositivos := TRUE ; FOR i := 1 TO iDimension DO      FOR j := 1 TO iDimension DO            IF aiMatriz [i, j] < 0 THEN boTodosPositivos := FALSE ;

fnboSonTodosPositivos := boTodosPositivos ; END ;

FUNCTION fnboExisteAlgunCero (CONST  aiMatriz: taiMatrices ;                                      iDimension: Integer)  : Boolean  ; VAR i, j : Integer ; boAlgunCero : Boolean ; BEGIN boAlgunCero := FALSE ; FOR i := 1 TO iDimension DO      FOR j := i + 1 TO iDimension DO            IF aiMatriz [i, j] = 0 THEN boAlgunCero := TRUE ;

fnboExisteAlgunCero := boAlgunCero ; END ;

VAR aiMatriz : taiMatrices ; iDimension: Integer ;

BEGIN {--- Programa Principal -- }

Writeln ; REPEAT Write ('Dimension de la matriz (1..', iMAX_DIMENSION, '): ') ; ReadLn (iDimension) ; UNTIL (1 <= iDimension) AND (iDimension <= iMAX_DIMENSION) ;

LeerMatriz (aiMatriz, iDimension) ;

Writeln ; Writeln ('Matriz leida:') ; MostrarMatriz (aiMatriz, iDimension) ;

Writeln ; Write ('Todos sus elementos son positivos: ' : 55) ; IF fnboSonTodosPositivos (aiMatriz, iDimension) THEN Writeln ('SI') ELSE Writeln ('NO') ; Writeln ;

Write ('Existe algun 0 por encima de la diagonal principal: ' : 55) ; IF fnboExisteAlgunCero (aiMatriz, iDimension) THEN Writeln ('SI') ELSE Writeln ('NO') ;

WriteLn ; ReadLn ; END. code