Ir ao conteúdo
  • Cadastre-se

Portugol O que esta errado neste codigo simples que criei?


Posts recomendados

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?

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

 

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

 

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.

Link para o comentário
Compartilhar em outros sites

@Simon Viegas

1 minuto atrás, 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)

 

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

 

3 minutos atrás, 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:

no caso do portugol, é da forma que ele colocou

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

 

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

  • Membro VIP
Em 13/07/2023 às 16:40, extremedll disse:

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

 

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 16:40, extremedll disse:

no caso do portugol, é da forma que ele colocou

 

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:

 

11 minutos atrás, Simon Viegas disse:

Sobre:

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

 

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

 

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

 

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!