Ir ao conteúdo

Posts recomendados

Postado

Eu aprendi Procedimento só o básico para usar como um 'atalho' e vi que tem uma tipo 

Procedimento(var:a : inteiro): inteiro

Neste exato momento estou vendo uma aula de funçoes vocês acham que eu tenho que voltar para aprender a usar isto depois ver função novamente ? , sinceramente eu estou entendendo muito bem a parte das funçoes e so essa parte da 'var'  que aparece dentro dela que esta me dando uma certa duvida  

  • Membro VIP
Postado
13 horas atrás, Semnet disse:

Eu aprendi Procedimento só o básico para usar como um 'atalho' e vi que tem uma tipo 


Procedimento(var:a : inteiro): inteiro

Neste exato momento estou vendo uma aula de funçoes vocês acham que eu tenho que voltar para aprender a usar isto depois ver função novamente ? , sinceramente eu estou entendendo muito bem a parte das funçoes e so essa parte da 'var'  que aparece dentro dela que esta me dando uma certa duvida  

 

Procedimento e Função (ou procedure e function no Pascal) são essencialmente a mesma coisa!!! Apenas muda que no segundo, necessariamente, vai ser retornado algo "nele mesmo" (como se fosse uma "variável especial"), e no primeiro não retorna algo. Tanto é a "mesma cosia", que outra linguagens, como Java, C#, C/C++ etc, não existe distinção.. as funções são como no VisualG, mas os procedimentos são apenas uma função que é definida para "retornar um void" (ou seja: que não vai retornar algo). Se o VisualG seguisse a lógica das principais linguagens, uma função ficaria assim:

funcao nomeDaFuncao (x :inteiro):VAZIO
  inicio
  
  fimFuncao

Aí dentro NÃO teria o retorne.

 

Já em relação ao uso do "var", ou não, ali dentro dos parâmetros (que é algo distinto)... está relacionado a definição se será um "parâmetro passado como valor" ou se será um "parâmetro passado como referência". Quando não tem o var, o VisualG vai entender que você está passando apenas um valor, ou seja: será como a variável que está na função irá receber uma "cópia do valor que foi passado ao chamar essa função". Ex.

algoritmo "FCdH"

var
  num :inteiro

procedimento parametroPorValor (x :inteiro)
inicio
  x <- x * 2
  escreval("Valor dentro da funcao ", x:1)
fimProcedimento

inicio
  num <- 3
  parametroPorValor(num)
  escreval("Valor fora da funcao ", num:1)

fimAlgoritmo

O valor de num fica inalterado, pois x apenas recebeu uma cópia do valor.

 

Já em:

algoritmo "FCdH"

var
  num :inteiro

procedimento parametroPorReferencia (var x :inteiro)
inicio
  x <- x * 2
  escreval("Valor dentro da funcao ", x:1)

fimProcedimento
inicio
  num <- 3
  parametroPorReferencia(num)
  escreval("Valor fora da funcao ", num:1)

fimAlgoritmo

Aqui num vai ficar com o valor final de x, ou seja: aqui o x funciona como um "ponteiro" (uma referência a variável externa), onde tudo que está fazendo nele, na verdade está fazendo na própria variável que foi passada por parâmetro. É como estivesse utilizando o próprio num dentro do procedimento. "Ah! e porque não retirar o parâmetro e utilizar o próprio num no lugar do x ?"... isso depende do contexto, ao utilizar uma parâmetro, esse mesmo procedimento poderá ser utilizado para outras variáveis no mesmo código... daí simplesmente passar a variável que quer por parâmetro, e o procedimento vai fazer o que tem que fazer, independente de qual variável foi passada (apenas precisa ser de tipo compatíveis, ou seja: basta ser do tipo inteiro)

 

Obs.: procedimento x função é uma coisa. Passagem por parâmetro ou passagem por valor é outra totalmente diferente.

  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!