Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Aula 6, parte 12 resolvida!!

Na aula 6, parte 12, o professor deixa como resolucao um programa incorreto, que nao diz corretamente o que foi programado para dizer. Nessa questao, o programa foi feito para dizer se as pessoas podem ou nao dirigir, mas na resolucao deixada pelo professor, a resposta sera sempre a mesma.

<meta charset="UTF-8">

<script>
    function pulaLinha() {
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }

    var idade = parseInt(prompt("Qual é sua idade"));
    var temCarteira = prompt("Tem carteira? Responda S ou N");

    if( idade >= 18 && temCarteira == "S") {
        mostra("Pode dirigir");
    } else {
        mostra("Não pode dirigir");
    }
</script>

Se eu estiver equivocado, por gentileza me ajudar a entender o programa em questão.

2 respostas

Para dirigir, duas condições devem ser verdadeiras: ter 18 anos ou mais , e ter carteira de motorista

Se as duas condições são verdadeiras, o programa mostra "Pode dirigir", em qualquer outro caso, mostra "Não pode dirigir".

if( idade >= 18 && temCarteira == "S") {
        mostra("Pode dirigir");
    } else {
        mostra("Não pode dirigir");

Na hora de ingressar os dados, lembra que se tem carteira, "S" vai em maiúscula! Isso pode afetar a resposta do programa ..

solução!

João Victor, boa noite! É importante você analisar este trecho do código:

var idade = parseInt(prompt("Qual é sua idade"));
var temCarteira = prompt("Tem carteira? Responda S ou N");

    if( idade >= 18 && temCarteira == "S") {
        mostra("Pode dirigir");
    } else {
        mostra("Não pode dirigir");
    }

Veja que na primeira linha o usuário digita a idade, neste caso pode ser qualquer valor (18, 17, 25, 50...). Na segunda linha o usuário digita uma resposta que pode ser 'S' ou 'N'. Os valores digitados são armazenados nas variáveis idade e temCarteira, respectivamente.

Em seguida o programa testa os valores dessas variáveis para chegar em uma conclusão:

if( idade >= 18 && temCarteira == "S") 

Por exemplo, suponha que o usuário digitou que tem 20 anos e que possui carteira ("S"). Neste caso, o programa testa 20 >= 18 = VERDADEIRO "S" == "S" = VERDADEIRO De acordo com a tabela verdade do operador AND, temos que VERDADEIRO AND VERDADEIRO = VERDADEIRO, ou seja, o programa irá executar a linha:

mostra("Pode dirigir");

Entretanto, se considerar que o usuário digitou que tem 20 anos mas que não possui carteira ("N"), então temos: 20 >= 18 = VERDADEIRO "N" == "S" = FALSO De acordo com a tabela verdade VERDADEIRO AND FALSO = FALSO, dessa maneira a linha executada é a que está dentro do bloco "else" (senão):

mostra("Não pode dirigir");

Resumindo, se o resultado for VERDADEIRO o programa executa o que está no bloco imediatamente abaixo do if. Se o resultado das comparações for FALSO o programa executa o que está no bloco "else".

É importante observar também que a função "mostra" recebe um argumento "frase" e que as frases passadas como parâmetros nos dois blocos: "if" e "else" são diferentes.

Espero ter ajudado.