Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eu criei este código, mas me deu vontade de usar função para as partes de soma, poupando memória.
Eu estou confuso quando ao uso deste recurso (função), no VisuAlg. Por isso, podem me explicar como eu usaria a função neste caso?
algoritmo "Soma Linha e Coluna"
var
Lin, Col, SomaLin, SomaCol, C:inteiro
M: vetor [1..5,1..5] de inteiro
SL: vetor [1..5] de inteiro
SC: vetor [1..5] de inteiro
inicio
//Soma linha, por linha.
Para Lin := 1 ate 5 faca
Para Col := 1 ate 5 faca
Leia (M[Lin, Col])
SomaLin := SomaLin + M[Lin, Col]
FimPara
SL[Lin] := SomaLin
SomaLin := 0
FimPara
//Soma coluna, por coluna.
Para Lin := 1 ate 5 faca
Para Col := 1 ate 5 faca
SomaCol := SomaCol + M[Col,Lin]
FimPara
SC[Lin] := SomaCol
SomaCol := 0
FimPara
//Limpa a tela e escreve a matriz completa.
LimpaTela
Para Lin := 1 ate 5 faca
Para Col := 1 ate 5 faca
Escreva (M[Lin,Col]:4)
FimPara
EscrevaL ()
FimPara
//Pula uma linha e escreve a soma de cada linha da matriz.
EscrevaL ()
Para C := 1 ate 5 faca
EscrevaL ("A soma da linha",C," é igual a",SL[C],".")
FimPara
//Pula uma linha e escreve a soma de cada coluna da matriz.
EscrevaL ()
Para C := 1 ate 5 faca
EscrevaL ("A soma da coluna",C," é igual a",SC[C],".")
FimPara
fimalgoritmo
>
Basicamente você pode manter a mesma estrutura e criar uma outra rotina para não repetir a soma:
Procedimento Soma (real a, b)
retorne a+b
fimprocedimento
E chame aonde você tem que somar. Existe outro meio que seria você refatorar tudo para usar uma unica variável, mas não ganharia muito em performance.
Se eu quisesse fazer que a estrutura de soma de colunas e linhas, virassem função, seria e possível? Se fosse, teoricamente eu ganharia performance?
A soma de colunas e linhas é uma soma normal, você pode implementar uma lógica específica dentro do bloco de código normalmente.
Não acho que uma função de soma basica ganharia muita performance, é sempre bom dividir em procedimentos para melhor leitura de código, mas nem sempre você tem um ganho significativo de performance.
Basicamente você pode manter a mesma estrutura e criar uma outra rotina para não repetir a soma:
Procedimento Soma (real a, b)
retorne a+b
fimprocedimento
E chame aonde você tem que somar. Existe outro meio que seria você refatorar tudo para usar uma unica variável, mas não ganharia muito em performance.