Ir ao conteúdo

VisualG Exercício VisualG: logica de programação


Ir à solução Resolvido por Simon Viegas,

Posts recomendados

Postado

Olá. Fiz uma prova de lógica de programação, na seguinte questão marquei a opção "B". Alguém poderia confirmar se essa opção é realmente a resposta correta?

(O enunciado esta disponível em anexo, Segue as alternativas.)

 

A :

IMC <- PESO / ALTURA/ ALTURA
se IMC < 16 E IMC > 60 entao
   escreval(IMC)
fimse

 

B:

IMC <- PESO / (ALTURA * ALTURA)
se IMC < 16 OU  IMC > 40 entao
   escreval(IMC)
fimse

 

C :

IMC <- PESO / ALTURA * ALTURA
se IMC < 16 E IMC > 40 entao
   escreval(IMC)
fimse

 

D :

IMC <- PESO / ALTURA / ALTURA
se IMC < 16 OU IMC > 40 entao
   escreval(IMC)
fimse

 

E :

IMC <- PESO / (ALTURA * ALTURA)
se IMC < 16 E IMC > 40 entao
   escreval(IMC)
fimse

 

 

Anexo:

tarefa.png

Postado

@Guilherme candido      para efeito de lógica de programação  a formula que calcula o imc realmente confere com essa :

imc <- peso / (altura * altura)

pois ali tem se a variável que recebe o resultado do cálculo ,   sendo que o peso é dividido pela altura ao Quadrado , e os parênteses servem para isso pois garante que a altura seja multiplicada pela mesma altura e só depois o peso será dividido pelo resultado dessa multiplicação ,   mas dependendo de qual compilador esteja usando , o comando se que decide  se escreve ou não o imc na Tela , talvez não funcione , por erro de sintaxe , por exemplo no VisualG 3.0 , não funcionaria pois precisaria ser reorganizado dessa Forma  :

se ( imc < 16 ) ou ( im c > 40 ) então

com parênteses separando o operador Lógico , ou , e também se fosse o   , e ,  e também o nao ,   mas creio que esta seja o mais adequada de ToDas essas Opções apresentadas  .

  • Obrigado 1
  • Membro VIP
  • Solução
Postado

Olá. Só complementando:

 

Sobre:

5 horas atrás, devair1010 disse:

[...] o comando se que decide se escreve ou não o imc na Tela, talvez não funcione, por erro de sintaxe, por exemplo no VisualG 3.0, não funcionaria pois precisaria ser reorganizado dessa Forma:


se (imc < 16) ou (imc > 40) entao

 

 

Creio que a maioria das linguagens de programação o uso de "()" NÃO é obrigatório... entretanto, pode haver diferenças de sintaxes entre uma "linguagem de programação" e outra. Por exemplo: no Portugol Studio, que usa um "Portugol", não precisa usar "()" e iria funcionar corretamente. Já no Pascal, que é o "pai" do VisualG", também não é obrigatório usar o "()", mas a lógica não iria funcionar porque a comparação seria feita de outra forma e daria erro de incompatibilidade de variáveis, ou seja: o uso de "()" no Pascal seria para ajustar a lógica, não porque é "obrigatório". Já no VisualG, independentemente da lógica é obrigatório o uso de "()", isso ocorre, creio eu, por uma limitação da linguagem (o desenvolvedor não implementou ainda para funcionar). No C# também sei que não é obrigatório o "()" para separar as sentenças, mas não sei como se comporta... pode ser de uma outra outra forma (teria que ver a documentação ou fazer testar).

 

RESUMINDO:

Na dúvida, use o "()" como citado pelo @devair1010.

 

Outra forma seria assim:

se ((imc < 16) ou (imc > 40)) entao //esses "()" mais externos NÃO são obrigatórios no VisualG, mas
                                    //em outras "linguagens" costumam ser... como no caso do Portugol Studio

 

 

 

Vamos ao enunciado... lá tem algo como: 

Citação

Das expressões abaixo [...] para (calcular) e (imprimir) o (IMC dos casos extremos)

 

Ou seja: ele quer a expressão que faça as duas coisas: calcular e imprimir, e quer apenas os casos extremos da tabela (primeiro e último caso)... Se observar, todos calculam, daí precisa "apenas" ver a que calcula corretamente... existem 3 (três) formas de calcular no exercício e delas duas dão o mesmo resultado, portanto servem para calcular o IMC...

 

Esta serve:

9 horas atrás, Guilherme candido disse:

IMC <- PESO / ALTURA / ALTURA

 

 

e esta serve:

9 horas atrás, Guilherme candido disse:

IMC <- PESO / (ALTURA * ALTURA)

 

 

 

Já esta NÃO serve:

9 horas atrás, Guilherme candido disse:

IMC <- PESO / ALTURA * ALTURA

 

 

ADENDO 1: o VisualG meio que segue a regra do "PEMDAS". Daí, cada uma dessas 3 fórmulas efetuará um cálculo diferente, entretanto a primeira e a segunda são equivalentes.

 

Entretanto, essa segunda que serve, é a que fica mais "semântica", ou seja: fica uma representação mais próxima da fórmula geral do IMC.

 

Pronto, sobraram apenas as opções B e E, daí, para dar o resultado desejado ("apenas casos extremos"), o valor precisa ser OU menor que 16 OU maior que 40, logo seria a letra B.

 

ADENDO 2: ainda complementando, não poderia ser a E, pois para a condição ser verdadeira, uma mesma variável teria que ter 2 valores ao mesmo tempo, o que torna a verificação uma contradição (nunca será verdadeiro, já que "nunca" terá 2 valores, logo "nunca" sendo maior e menor ao mesmo tempo).

 

 

 

Apenas para demonstração...

 

Vejam o ocorre no VisualG 3.6.0.5 (considerável a versão mais estável):

image.png.e134c42375982cb922d1afc0d59e4a

 

 

Testei no VisualG 2.5 também:

image.png.a4940277cc66c8180f71837dd21aa8

 

 

Já no Portugol Studio funciona de boa:

 

image.png

 

Falou

  • Curtir 1
  • Obrigado 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

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!