Ir ao conteúdo

Posts recomendados

Postado
programa
{
	
	funcao inicio()
	{
		inteiro idade

		escreva ("Digite uma idade: ")
		leia (idade)

		se (idade < 5 ou idade > 60) {
			escreva ("Passagem gratuita")
			senao {
				escreva ("Passagem obrigatória")
			}
		}
	}
}


Eu recebo este erro do portugol studio: " Esta expressão espera um comando. Insira um comando ou inicie um novo escopo utilizando os caracteres { e } "

O que esta errado?

Postado

@Lucas Andrade Cunha senao(else) fica fora/na sequência do se(if)

 

programa
{
	funcao inicio()
	{
		inteiro idade

		escreva ("Digite uma idade: ")
		leia (idade)

		se (idade < 5 ou idade > 60) {
			escreva ("Passagem gratuita")
		}
		senao {
			escreva ("Passagem obrigatória")
		}
	}
}

 

  • Curtir 1
  • Membro VIP
Postado

 

  Em 07/07/2023 às 20:24, Lucas Andrade Cunha disse:
se (idade < 5 ou idade > 60) {
Expandir  

 

Talvez ali seja >= 60, pois seria algo como "maior de 60 anos", ou seja, quem tem 60 já teria direito. Na prática, quem tem 60, "têm mais de 60 anos". Após aniversário, passaram 1s, 2s, 1 mês etc.... Saca? Do jeito que está, apenas pessoas com 61 anos teriam gratuidade. (Se esse for o caso, está certo :D)

 

Adendo: 

A depender da linguagem de programação, pode dar problema essa não separação das instruções do se. Sugeriria algo assim:

 

se ((idade < 5) ou (idade > 60)) {

 

Acho que também fica mais claro... eliminando a ideia de pensar em algo como "5 ou idade". 😄

 

ou assim:

 

se (idade < 5) ou (idade > 60) {

Obs.: talvez esse acima não funcione, pois o compilador pode exigir os "()" externos.

Postado

@Simon Viegas

  Em 13/07/2023 às 19:34, Simon Viegas disse:

Talvez ali seja >= 60, pois seria algo como "maior de 60 anos". Só que na prática, quem tem 60, tem mais de 60 anos. (Passou 1s, 2s, 1 mês etc.)... Saca? Do jeito que está, apenas pessoas com 61 anos teria gratuidade. (Se esse for o caso, está certo :D)

Expandir  

 

pensei nisso, mas como ele não colocou o enunciado, respondi apenas com a informação solicitada.

 

  Em 13/07/2023 às 19:34, Simon Viegas disse:

A depender da linguagem de programação, pode dar problema essa não separação das instruções do se. Sugeriria algo assim:

Expandir  

no caso do portugol, é da forma que ele colocou

se (condição ou condição_2 ou etc)

 

  • Obrigado 1
  • Membro VIP
Postado
  Em 13/07/2023 às 19:40, extremedll disse:

pensei nisso, mas como ele não colocou o enunciado, respondi apenas com a informação solicitada.

Expandir  

 

Perfeito! Também segui a mesma lógica e mantive como foi apresentado. A ideia seria citar o @Lucas Andrade Cunha, mas acabei citando do seu código... foi mal!! 🙂. Corrigi a citação.

 

A sugestão em si fica: entendo que quem tem 60 já tem direito, e não 61 em diante.

 

 

 

  Em 13/07/2023 às 19:40, extremedll disse:

no caso do portugol, é da forma que ele colocou

Expandir  

 

Acho que meio que seria um "poderia ser também assim". Funciona das duas formas. Na prática, a sugestão seria evitar tudo junto. Isso pode dar problema em outros linguagem e no próprio Portugol Studio. Acabei de ver um problema parecido no VisualG (que também é em Portugol). Vejam:

 

  Em 20/07/2023 às 13:32, Simon Viegas disse:

Sobre:

  Em 15/07/2023 às 22:33, kgin disse:
Se (não (operacao = "S") OU (operacao = "C") OU (operacao = "T")) então
Expandir  

 

Esta expressão está incompleta. A negação seria da expressão toda, e não só da sentença ao lado.

 

A linha acima seria, tecnicamente, igual a:

se ((não (operacao = "S")) OU (operacao = "C") OU (operacao = "T")) então
Expandir  

 

Ou seja: na primeira linha, estaria negando apenas a sentença à direita, mas o VisualG meio que está negando todas as expressões... Algo muito estranho (mas tá certamente* bugado)... Seguindo uma "formalidade maior", evitaria essa possibilidade de bug*, ou seja, para esse caso, deu o que o programador queria, mas se não desse? Fiz testes na versão 3.6.0.5 do VisualG, mas se em outra tiver um comportamento diferente?

 

Lá na postagem tem outros detalhes... a depender podem até complementar ou corrigir. 

  • Amei 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

Mostrar 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

Mostrar mais  
×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!