Ir ao conteúdo
  • Cadastre-se

VisualG Tem algum bug no Visualg?


Ir à solução Resolvido por devair1010,

Posts recomendados

Eu tenho que fazer um código para fazer uma ordenação.

Depois de pesquisar cheguei a esta rotina, mas o Visualg não roda pois emite uma mensagem que é esperado o "então, mas o comando esta lá.

A variável cartas está no escopo global como vetor de 1..6

Esta foi a rotina que escrevi

procedimento "ordena_as_cartas" (n:inteiro)
var
   i, j, aux:inteiro

inicio
   para j de 6 ate 0 passo -1 faca
      para i de 0 ate j-1 passo 1 faca
         se cartas[i] > cartas[i+1] então
            aux <- cartas[i]
            cartas[i] <- cartas[i+1]
            cartas[i+1] <- aux
         fimse
      fimpara
   fimpara
fimprocedimento

 

Se alguém puder ajudar ou corrigir agradeço.

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Solução

@Fabricio Benedito Rogado    o visualG  da versão 3.0 .6.5 não tem bug  ,  porém ele precisa  de melhorias ,  pois ele nem sempre  informa  o erro exato ,  mas diz apenas que foi encontrado um erro , e o usuário é que precisa descobrir qual erro realmente existe , e nesse caso o erro é por que não existe uma posição zero nesse seu vetor cartas , pois ele foi declarado com 6 posições e que começam a partir de 1 , e  outra coisa é que no visualG as palavras chaves dos comados não podem tem acentuação ,  e seu código pode ser modificado  para algumas coisa parecido com esse aqui :

Algoritmo "não bug"
// Data atual  : 10/01/2023
Var
  cartas     : vetor[1..6] de inteiro
  contador,i : inteiro
procedimento ordena_as_cartas ( n : inteiro )
var
  i , j , aux : inteiro
inicio
  escreval("Valor De N  = " , n )
  para j de 6 ate 1 passo -1 faca
    para i de 1 ate j-1 passo 1 faca
      se cartas[i]   >  cartas[i+1] então
         aux         <-   cartas[i]
         cartas[i]   <- cartas[i+1]
         cartas[i+1] <-         aux
      fimse
    fimpara
  fimpara
fimprocedimento
Inicio
  escreval("Antes Da Ordenação")
  escreval
  repita
    contador := contador + 1
    cartas[contador] := randi( 100 )
    escreval("posição ",contador," = ", cartas[contador] )
  ate contador > 5
  ordena_as_cartas( 6 )
  escreval
  escreval("Depois Da Ordenação")      
  para i de 1 ate 6 faca
    escreval("posição ",i," = ", cartas[i] )
  fimpara
Fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

@devair1010 Muito obrigado, só foi corrigir o vetor colocando 1 no lugar do zero que funcionou direitinho.

Eu ja tinha escrito então, então, então, de todas as formas. É coisa de principiante, criar um vetor na posição um e querer que a rotina comece na posição 0.

Obrigado novamente

 

  • Curtir 1
  • Obrigado 1
Link para o comentário
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...

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!