Ir ao conteúdo
  • Cadastre-se

VisualG Atribuir Função em Visualg


Posts recomendados

Fiz um exercício com vetores e agora queria introduzir uma função ou procedimento nele. Não estou a conseguir. Alguém pode ajudar? O código é este:

 

Var
   // Seção de Declarações das variáveis
   n,i,dif,maior,posant,pospos:inteiro
   vet: vetor[1..10] de inteiro

Inicio
   // Seção de Comandos, procedimento, funções, operadores, etc...
   Escreva("Indique o comprimento do vetor :")
   leia (n)
   para i de 1 ate n faca
      Escreva("Indique o",i,"º número :")
      leia(vet[i])
   fimpara
   para i de 1 ate n-1 faca
      se vet[i]<vet[i+1] entao
         dif<-vet[i+1]-vet[i]
      senao
         dif<- vet[i]-vet[i+1]
      fimse
      se maior < dif entao
         maior <- dif
         posant<-vet[i]
         pospos<-vet[i+1]
      fimse
   fimpara
   Escreva("A maior diferença é: ", maior, " entre ",posant, " e ", pospos)
Fimalgoritmo

 

Eu queria arranjar uma maneira de introduzir uma função ou procedimento ou os 2 até. Como fosse melhor.

Link para o post
Compartilhar em outros sites
  • Moderador
1 hora atrás, r00ki3 disse:

Esqueci-me de colocar, desculpa. O enunciado é: Dado um vector de N elementos determine a maior
diferença entre dois elementos consecutivos e em que posição.

 

beleza.

 

 

5 horas atrás, r00ki3 disse:

Eu queria arranjar uma maneira de introduzir uma função ou procedimento ou os 2 até. Como fosse melhor.

 

Você fazer um procedimento ou função para qualquer coisa... Por exemplo, crie um procedimento para preencher o vetor.

Depois, crie um procedimento para calcular e exibir a maior diferença entre dois elementos consecutivos e em que posição, desse vetor etc.

 

Adendo: creio que o enunciado deve está se referindo a "elementos em posições consecutivas", pois "elementos consecutivo seriam outra coisa". Creio que números consecutivos seja algo como "1, 2, 3, 4, 5"... ou seja: a diferença seria sempre 1... "68 é consecutivo ao 67"... por aí vai.

 

Link para o post
Compartilhar em outros sites
procedimento principal(a:inteiro)
var
   dif,maior,posant,pospos:inteiro
Inicio
   para i de 1 ate n-1 faca
      se vet[i]<vet[i+1] entao
         dif<-vet[i+1]-vet[i]
      senao
         dif<- vet[i]-vet[i+1]
      fimse
      se maior < dif entao
         maior <- dif
         posant<-vet[i]
         pospos<-vet[i+1]
      fimse
   fimpara
   Escreva("A maior diferença é: ", maior, " entre ",posant, " e ", pospos)
Fimprocedimento


var
   n,i:inteiro
   vet: vetor[1..10] de inteiro
Inicio
   // Seção de Comandos, procedimento, funções, operadores, etc...
   Escreva("Indique o comprimento do vetor :")
   leia (n)
   para i de 1 ate n faca
      Escreva("Indique o",i,"º número :")
      leia(vet[i])
   fimpara
   principal(n)


Fimalgoritmo

 

 

Assim parece bem? Ele corre bem.

  • Curtir 1
Link para o post
Compartilhar em outros sites
  • Moderador

Um exemplo de código:

 

algoritmo "Maior diferença entre números números de índices consecutivos"

funcao posicaoMaiorDiferenca(tamVetor: inteiro; var maiorDiferenca: inteiro): inteiro
var
   diferenca, posicao: inteiro
   i: inteiro
inicio
   maiorDiferenca <- 0

   para i de 1 ate tamVetor-1 faca
      diferenca <- Abs(vet[i]-vet[i+1])

      se (diferenca > maiorDiferenca) entao
         posicao <- i
         maiorDiferenca <- diferenca
      fimSe
   fimPara

   retorne posicao
fimFuncao

var
   n, i: inteiro
   vet: vetor[1..100] de inteiro
   p: inteiro
   md: inteiro
inicio
   escreva ("Indique o comprimento do vetor: ")
   leia(n)

   ALEATORIO 1, 30
   para i de 1 ate n faca
      escreva ("Indique o ", i:1, "º número: ")
      leia(vet[i])
   fimPara
   ALEATORIO off
   
   p <- posicaoMaiorDiferenca(n, md)

   escreval("")
   escreva ("A maior diferença é ", md:1, ", entre a ", p:1, "ª e ", p+1:1, "ª posições")
fimAlgoritmo

 

  • Obrigado 1
Link para o post
Compartilhar em outros sites

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...

Aprenda a ler resistores e capacitores

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!