Ir ao conteúdo
  • Cadastre-se

VisualG Erro no Visualg, não consigo detectar


Posts recomendados

Bom dia, estou começando na linguagem de Portugol e meu Visualg está dando um erro um tanto quanto estranho.

Escreva("Informe 3 numeros:")
leia(a,b,c)
SE (a>b e b>c) então
   ESCREVA("ORDEM: ", a, b, c)
   FIMSE
SE (a>b e b<c) então
   ESCREVA("ORDEM: ", a, c, b )
   FIMSE
SE (b>a e a>c) então
   ESCREVA("ORDEM: ", b, a, c)
   FIMSE
SE (b>a e a<c) então
   ESCREVA("ORDEM: ", b, c, a)
   FIMSE
SE (c>a e a>b) então
   ESCREVA("ORDEM: ", c, a, b )
   FIMSE
SE (c>a e a<b) então
   ESCREVA("ORDEM: "), c, b, a)
   FIMSE

 

Quando eu executo o Visualg afirma que esta faltando um então na primeira linha, mas não está, queria saber o porque.

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

  • Membro VIP

@Gabriel Pancaldi, aquele seu primeiro código é o completo, ou só parte?

 

Para adiantar:

- cada expressão do se é separada por colchetes "()", ex.:

se (a>b) e (b>c) ENTÃO

 

 

 

- é necessário declarar o nome do programa e as variáveis que você está utilizando, ex.:

algoritmo "Nome do meu algoritmo" //nome do algoritmo
var
   a,b,c :inteiro //é necessário declarar as variáveis que serão usadas
inicio





fimalgoritmo

O seu código fica entre o "inicio" e "fimalgoritmo".

 

***

 

Tente fazer as correções e poste seu código completo e onde está com dúvidas.

 

No aguardo.

 

 

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

6 horas atrás, Simon Viegas disse:

@Gabriel Pancaldi, aquele seu primeiro código é o completo, ou só parte?

 

Para adiantar:

- cada expressão do se é separada por colchetes "()", ex.:


se (a>b) e (b>c) ENTÃO

 

 

 

- é necessário declarar o nome do programa e as variáveis que você está utilizando, ex.:


algoritmo "Nome do meu algoritmo" //nome do algoritmo
var
   a,b,c :inteiro //é necessário declarar as variáveis que serão usadas
inicio





fimalgoritmo

O seu código fica entre o "inicio" e "fimalgoritmo".

 

***

 

Tente fazer as correções e poste seu código completo e onde está com dúvidas.

 

No aguardo.

 

 

 

 

adicionado 7 minutos depois

Consegui fazer, era só separar meso por () cada condição e agora é só colocar na ordem crescente

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

  • Membro VIP

Olá @Gabriel Pancaldi.

 

42 minutos atrás, Gabriel Pancaldi disse:

Consegui fazer, era só separar meso por () cada condição e agora é só colocar na ordem crescente

 

Pronto!

 

Agora fica faltando implementar o se/então/senão... pois são condições mutuamente excludentes, ou seja, se for uma, não pode mais ser alguma depois, e esse tipo de condições pede o senão.

 

Por favor, caso queira implementar, por favor, poste seu código completo aqui ou onde está com dúvidas.

 

No aguardo.

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

1 hora atrás, Simon Viegas disse:

Olá @Gabriel Pancaldi.

 

 

Pronto!

 

Agora fica faltando implementar o se/então/senão... pois são condições mutuamente excludentes, ou seja, se for uma, não pode mais ser alguma depois, e esse tipo de condições pede o senão.

 

Por favor, caso queira implementar, por favor, poste seu código completo aqui ou onde está com dúvidas.

 

No aguardo.

 

No momento acho que vou continuar assim, pois acho que com o senão eu iria ficar confuso no código e no jeito que está funcionou, mas obrigado pela ajuda.

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

  • Membro VIP
12 minutos atrás, Gabriel Pancaldi disse:

No momento acho que vou continuar assim, pois acho que com o senão eu iria ficar confuso no código e no jeito que está funcionou, mas obrigado pela ajuda.

Faz uma cópia do código atual... a mudança não é difícil... aproveita para revisar o assunto... dá uma pesquisada na sintaxe do se/então/senão, vê exemplos e adapta o seu código...

 

No aguardo.

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

Eu entendi agora, vou postar o código corrigido abaixo, está funcionando certinho.

 

var
a, b, c: inteiro
inicio
// Seção de Comandos
Escreva("Informe 3 numeros:")
leia(a,b,c)

SE (a>b) e (b>c) então

   ESCREVA("ORDEM: ", c, b, a)
   FIMSE

SE (a>b) e (b<c) então

   ESCREVA("ORDEM: ", b, c, a)
   FIMSE
   
SE (b>a) e (a>c) então

   ESCREVA("ORDEM: ", c, a, b)
   FIMSE

SE (b>a) e (a<c) então

   ESCREVA("ORDEM: ", a, c, b)
   FIMSE

SE (c>a) e (a>b) então

   ESCREVA("ORDEM: ", b, a, c)
   FIMSE

SE (c>a) e (a<b) então

   ESCREVA("ORDEM: "), a, b, c)
   FIMSE
   
fimalgoritmo

 

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

  • Membro VIP

Olá @Gabriel Pancaldi.

 

12 horas atrás, Gabriel Pancaldi disse:

Eu entendi agora, vou postar o código corrigido abaixo, está funcionando certinho.

Seu código está bom, mas ainda não está pronto, ou seja, não está 'funcionando certinho' ainda. Tem alguns pontos que precisam ser verificados e corrigidos.

 

São 2 pontos principais:

 

1) VERIFICAÇÃO DAS POSSIBILIDADES

Para saber se de fato o código está funcionando ou não, você precisa meio que garantir que todas as possibilidades estejam sendo atendidas corretamente... uma boa forma é fazer testes de mesa. Existem várias formas, abaixo um exemplo:

 

- Pegue todas as possibilidades (no sentido de categorias), e anote no papel (ou bloco de notas, ou Excel) as respectivas respostas. Após, execute o programa e verifique se os resultados estão batendo com o esperado, ex.:

 

image.png

 

Só preencher também os que faltam, e testar... lembrando que todas as possibilidades devem ser verificadas...

 

 

obs.: claro que com nem sempre será necessário efetuar esses tipos de "testes exaustivos", pois com a prática acaba refinando os testes ou mesmo, a depender do contexto, fazendo de cabeça.

 

 

 

2) TIPOS DE "DESVIO CONDICIONAL" (ou "ESTRUTURA DE SELEÇÃO")

Observação inicial: O mais importante por enquanto é o item 1. Primeiro tente ajustar ele, pois, como verás ao fazer os testes, que algumas das saídas não estarão correspondendo ao desejado. Logo, precisará analisar e corrigir ou implementar outra lógica.

 

 

Então, como citado, esses se do seu código possuem:

16 horas atrás, Simon Viegas disse:

condições mutuamente excludentes

 

Ou seja, se for uma opção (tiver algum desvio), não poderá ser mais uma outra, logo não fazendo necessário continuar verificando os posteriores.. O "senão" meio que servirá para isso. Nesses caso, é necessário (no sentido da lógica) utilizar a estrutura do se/então/senão, em vez de utilizar vários se/então isolados entre si.

 

Tente corrigir o item 1 primeiro, se desejar, explicamos como mudar de "se/então" para "se/então/senão". É relativamente simples.

 

 

***

 

No aguardo.

 

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!