Ir ao conteúdo
  • Cadastre-se

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


Ir à solução Resolvido por Simon Viegas,

Posts recomendados

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

Link para o comentário
Compartilhar em outros sites

@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
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
  • Solução

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