# Exercici 13 matriu simetrica # Cerca canĂ²nica # variables # m : matriu en estudi # i : index per a recorrer les files # j : index per a recorrer les columnes # funcions escriuMatriu <- function (m){ cat("\n") for (i in 1 : nrow(m)){ cat(m[i, ]) cat("\n") } cat("\n") } esSimetricaCanonica <- function(m){ nf <- nrow(m) nc <- ncol(m) if (nf != nc){ return (FALSE) }else{ i <- 2 j <- 1 while ( !(m[i,j] != m[j,i]) && i <= nf && j < nc){ j <- j + 1 if (j > i){ i <- i + 1 j <- 1 } } return (m[i, j] == m[j, i]) } } # programa principal m <- matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow = 3, ncol = 3) escriuMatriu(m) cat("Es simetrica? : ", esSimetricaCanonica(m), "\n") m <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 2, ncol = 3) escriuMatriu(m) cat("Es simetrica? : ", esSimetricaCanonica(m), "\n") m <- matrix(c(1, 2, 3, 2, 2, 4, 3, 4, 3), nrow = 3, ncol = 3) escriuMatriu(m) cat("Es simetrica? : ", esSimetricaCanonica(m), "\n")