Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Tobias Rosa

VisualG Problema Esperava então (VisuALG)

Recommended Posts

Olá, estou com dificuldades ao usar a função "se" em algumas soluções, é só em alguns exercícios que acabo me deparando com a mensagem "esperava encontrar então na linha x"

 

Aqui está o código

algoritmo "Preços"
// Função : Calcular e classificar novos preços de produtos.
// Autor : Tobias Oliveira Rosa
// Data : 21/03/2018
var
produto_atual,produto_novo:real
inicio
escreva("Digite o valor atual do produto:")
leia(produto_atual)
se(produto_atual<=50)então
produto_novo<-produto_atual+produto_atual*0,05
fimse
se(50<produto_atual<=100)então
produto_novo<-produto_atual+produto_atual*0,10
fimse
se(100<produto_atual)então
produto_novo<-produto_atual+produto_atual*0,15
fimse
se(produto_atual<=80)então
escreva(produto_atual+"Barato")
fimse
se(80<produto_atual<=120)então
escreva(produto_atual+"Normal")
fimse
se(120<produto_atual<=200)então
escreva(produto_atual+"Caro")
fimse
se(200<produto_atual)então
escreva(produto_atual+"Muito Caro")
fimse
fimalgoritmo

E é bem na parte do "se(50<produto_atual<=100)então" que ocorre o problema, dizendo que esperava encontrar um então ali :/

Screenshot_24.png

Screenshot_25.png

Screenshot_26.png

Editado por Tobias Rosa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá. Seja bem vindo ao Fórum do Clube do Hardware.

 

12 minutos atrás, Tobias Rosa disse:

Olá, estou com dificuldades ao usar a função "se" em algumas soluções, é só em alguns exercícios que acabo me deparando com a mensagem "esperava encontrar então na linha x"

 

Sobre:

13 minutos atrás, Tobias Rosa disse:

se (50<produto_atual<=100) ENTÃO

 

As sub-expressões devem ficar separadas... ex.:

se (produto_atual>50) E (produto_atual<=100) ENTÃO

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Simon Viegas Valeu, esse erro não está dando mais, porém estou com dificuldade em fazer o cálculo funcionar. Meu código está assim:

var
produto_atual,produto_novo:real
inicio
escreva("Digite o valor atual do produto:")
leia(produto_atual)
se(produto_atual<=50)então
produto_novo<-produto_atual+produto_atual*0,05
fimse
se(50<produto_atual) e (produto_atual<=100)então
produto_novo<-produto_atual+produto_atual*0,10
fimse
se(100<produto_atual)então
produto_novo<-produto_atual+produto_atual*0,15
fimse
se(produto_novo<=80)então
escreval(produto_novo)
escreva("Barato")
fimse
se(80<produto_novo)e(produto_novo<=120)então
escreval(produto_novo)
escreva("Normal")
fimse
se(120<produto_novo)e(produto_novo<=200)então
escreval(produto_novo)
escreva("Caro")
fimse
se(200<produto_novo)então
escreval(produto_novo)
escreva("Muito Caro")
fimse
fimalgoritmo

E no resultado, quando eu coloco o número, sai o mesmo número sem passar pelas operações que coloquei no começo.

Screenshot_27.png

Screenshot_28.png

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os números devem ser utilizado no padrão imperial, ou seja, usam-se ".", no lugar da ",".

Ex.:

       produto_novo<-produto_atual+produto_atual*0.05

 

adicionado 3 minutos depois

outra coisa, como são condições mutuamente excludentes, precisam-se usar senão nos se.

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Corrigiu os se? tem que usar senão neles...


Após, posta o código aqui para analisarmos.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim tem que usar senao? Quando eu nao quero fazer nada com o senao, ou passar pra outra condição e assim sucessivamente, o que devo fazer?

adicionado 4 minutos depois
var
   produto_atual,produto_novo:real
inicio
   escreva("Digite o valor atual do produto:")
   leia(produto_atual)
   se(produto_atual<=50)então
      produto_novo<-produto_atual+produto_atual*0.05
   fimse
   se(50<produto_atual) e (produto_atual<=100)então
      produto_novo<-produto_atual+produto_atual*0.10
   fimse
   se(100<produto_atual)então
      produto_novo<-produto_atual+produto_atual*0.15
   fimse
   se(produto_novo<=80)então
      escreval(produto_novo)
      escreva("Barato")
   fimse
   se(80<produto_novo)e(produto_novo<=120)então
      escreval(produto_novo)
      escreva("Normal")
   fimse
   se(120<produto_novo)e(produto_novo<=200)então
      escreval(produto_novo)
      escreva("Caro")
   fimse
   se(200<produto_novo)então
      escreval(produto_novo)
      escreva("Muito Caro")
   fimse
fimalgoritmo

Assim que ficou meu algoritmo, e está funcionando igual eu queria...

 

[Conteúdo off-topic removido pela moderação]

 

 

 

Editado por Simon Viegas
Remoção de conteúdo off-topo. Por favor, para um novo "problema" crie uma novo tópico
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
38 minutos atrás, Tobias Rosa disse:

Como assim tem que usar senao?

É um requisito técnico/didático, ou seja, se tiver dúvidas, dê uma pesquisada sobre o se e o se/senão. Mais abaixo vou complementando....

 

 

 

38 minutos atrás, Tobias Rosa disse:

Quando eu nao quero fazer nada com o senao

Nesse sentido seria "não precisar", ou seja, se "precisa", teria que usar! A "necessidade" do senão surge do contexto, ou seja, basicamente ele ajuda o programa a evitar fazer verificações desnecessárias.

 

 

 

38 minutos atrás, Tobias Rosa disse:

 ou passar pra outra condição e assim sucessivamente, o que devo fazer?

Uma coisa não exclui a outra.. na verdade precisa dos dois. Vai usar o senão (por que se for uma condição, não poderá ser mais uma outra posterior)   E   vai usar outros se (por que são várias condições)

 

 

 

38 minutos atrás, Tobias Rosa disse:

Assim que ficou meu algoritmo, e está funcionando igual eu queria...

OK. Apesar de está dando uma resposta correta, ainda sim precisa do senão nos se, ou seja, não é só o resultado que importa (fim), mas também o mecanismo para chegar a ele (meio). Isso claro supondo que já "aprendeu" sobre se/senão.

 

 

RESUMINDO

Como seu código já está bastante encaminhado, vou inserir os senão para demonstrar como deveria ficar.

algoritmo "FCdH"
var
   produto_atual,produto_novo:real
inicio
   escreva("Digite o valor atual do produto:")
   leia(produto_atual)
   se (produto_atual<=50) ENTÃO
      produto_novo<-produto_atual+produto_atual*0.05
   senao
      se (50<produto_atual) e (produto_atual<=100)ENTÃO
         produto_novo<-produto_atual+produto_atual*0.10
      senao
         se(100<produto_atual)ENTÃO
            produto_novo<-produto_atual+produto_atual*0.15
         fimse
      fimse
   fimse

   se(produto_novo<=80)ENTÃO
      escreval(produto_novo)
      escreva("Barato")
   senao
      se(80<produto_novo)e(produto_novo<=120)ENTÃO
         escreval(produto_novo)
         escreva("Normal")
      senao
         se(120<produto_novo)e(produto_novo<=200)ENTÃO
            escreval(produto_novo)
            escreva("Caro")
         senao
            se(200<produto_novo)ENTÃO
               escreval(produto_novo)
               escreva("Muito Caro")
            fimse
         fimse
      fimse
   fimse
fimalgoritmo

 

***

 

Para tentar entender na prática a diferença, pegue seu código e vá pressionando F8... daí o Visualg vai executando linha por linha. Perceba que ao entrar no se, o programa vai continuar verificando os outros...    tipo, se um produto é menor ou igual a 50, faz algum sentido ainda perguntar se ele é maior que 50 e menor que ou igual a 100?

 

Agora, faça esse mesmo teste com esse código acima. Verás que ao entrar num se, os outros que estão "amarrados pelo senão" não serão verificados... vai pular para próxima estrutura...

 

 

Qualquer dúvida só pergunta.

 

 

PS:

44 minutos atrás, Tobias Rosa disse:

Agora tem outro exercício que ta dando o mesmo problema

Outra problema = novo tópico!

 

 

No aguardo.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado, agora eu entendi como fazer uso do senao nesse caso

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
5 minutos atrás, Tobias Rosa disse:

Muito obrigado, agora eu entendi como fazer uso do senao nesse caso

 

Massa!

 

Para o outro código, por favor, crie uma nova postagem... (para não misturar os assuntos)

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×