Como comparar qual pseudocódigo foi melhor construído?
Estou estudando algoritmos e lógica de programação, logo, sempre tento comparar meu código com o do professor, para aprimorar minha aprendizagem. Analisando quantidade de linhas, lógica usada, rotinas, entre outros... Para definir onde posso melhorar ou não.
Vocês experientes (ou não) podem me falar quais critérios devo levar em conta, ao comparar dois pseudocódigos e se isso é uma ação válida, isto é, vai acrescentar na minha vida?
Abaixo segue o código do professor e o meu.
Meu código:
algoritmo "Dissecando Matrizes"
var
opcao, L, C:inteiro
M: vetor [1..4, 1..4] de inteiro
Procedimento Menu()
inicio
EscrevaL ("")
EscrevaL ("======================")
EscrevaL ("MENU DE OPÇÕES")
EscrevaL ("======================")
EscrevaL ("[1] Mostrar a Matriz")
EscrevaL ("[2] Diagonal Principal")
EscrevaL ("[3] Triângulo Superior")
EscrevaL ("[4] Triângulo Inferior")
EscrevaL ("[5] Sair")
Escreva ("===== OPÇAO: ")
Leia (opcao)
FimProcedimento
inicio
Para L <- 1 ate 4 faca
Para C <- 1 ate 4 faca
Escreva ("Digite o valor para posição [ ",L,", ",C,"]: ")
Leia (M[L,C])
FimPara
FimPara
LimpaTela
Repita
Menu()
Repita
Escolha opcao
Caso 1
LimpaTela
Para L <- 1 ate 4 faca
Para C <- 1 ate 4 faca
Escreva (M[L,C]:2)
Fimpara
EscrevaL ()
FimPara
Menu()
Caso 2
LimpaTela
Para L <- 1 ate 4 faca
Para C <- 1 ate 4 faca
Se (L = C) entao
Escreva (M[L,C]:2)
Senao
Escreva (" ":2)
FimSe
Fimpara
EscrevaL()
FimPara
Menu()
Caso 3
LimpaTela
Para L <- 1 ate 4 faca
Para C <- 1 ate 4 faca
Se(L = C - 1) ou (L = c - 2) ou (L = C - 3) entao
Escreva (M[L,C]:2)
Senao
Escreva (" ":2)
FimSe
FimPara
EscrevaL ()
FimPara
Menu()
Caso 4
LimpaTela
Para L <- 1 ate 4 faca
Para C <- 1 ate 4 faca
Se (L = C + 1) ou (L = c + 2) ou (L = C + 3) entao
Escreva (M[L,C]:2)
Senao
Escreva (" ":4)
FimSe
FimPara
EscrevaL ()
FimPara
Menu()
Caso 5
LimpaTela
Escreva ("SAINDO...")
FimEscolha
Ate (opcao = 5)
Ate (opcao = 5)
LimpaTela
Escreva ("SAINDO...")
fimalgoritmo
Código do professor:
var
m: vetor[1..4, 1..4] de Inteiro
l, c, op: Inteiro
Procedimento MostraMatriz()
inicio
Para l <- 1 ate 4 faca
Para c <- 1 ate 4 faca
Escreva(m[l,c]:4)
FimPara
EscrevaL()
FimPara
FimProcedimento
Procedimento DiagonalPrincipal()
var t: inteiro
inicio
Para l <- 1 ate 4 faca
EscrevaL(m[l,l]:4)
Para t <- 1 ate l faca
Escreva(" ")
FimPara
FimPara
FimProcedimento
Procedimento TrianguloSuperior()
var t: Inteiro
inicio
Para l <- 1 ate 3 faca
Escreva(" ")
Para c <- l+1 ate 4 faca
Escreva(m[l,c]:4)
FimPara
EscrevaL()
Para t <- 1 ate l faca
Escreva(" ")
FimPara
FimPara
EscrevaL()
FimProcedimento
Procedimento TrianguloInferior()
inicio
Para l <- 2 ate 4 faca
EscrevaL()
Para c <- 1 ate l-1 faca
Escreva(m[l,c]:4)
FimPara
FimPara
EscrevaL()
FimProcedimento
inicio
Para l <- 1 ate 4 faca
Para c <- 1 ate 4 faca
Escreva("Digite valor para a posicao [", l, ",", c, "]: ")
Leia(m[l,c])
FimPara
FimPara
LimpaTela
Repita
EscrevaL()
EscrevaL("MENU DE OPCOES")
EscrevaL("====================")
EscrevaL("[1] Mostrar a Matriz")
EscrevaL("[2] Diagonal Principal")
EscrevaL("[3] Triangulo Superior")
EscrevaL("[4] Triangulo Inferior")
EscrevaL("[5] Sair")
Repita
EscrevaL("===== OPCAO: ")
Leia(op)
Ate (op >=1) e (op <=5)
LimpaTela
Escolha op
Caso 1
MostraMatriz()
Caso 2
DiagonalPrincipal()
Caso 3
TrianguloSuperior()
Caso 4
TrianguloInferior()
Caso 5
EscrevaL("ENCERRANDO...")
FimEscolha
Ate (op = 5)
fimalgoritmo
Em minha análise amadora, entendo que o meu foi melhor construído que o do professor, o que acham?
Discussão (3)
Carregando comentários...