Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

snowstormdelivery

Como usar função nesse código?

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.