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

[Dúvida] Duvida de algumas solicitações

1 - Crie uma função que calcule o índice de massa corporal (IMC) de uma pessoa, a partir de sua altura, em metros, e peso, em quilogramas, que serão recebidos como parâmetro.

let altura = parseFloat(prompt('Digite sua altura em metros:'));
let kilo = parseFloat(prompt('Digite o seu peso em kilogramas:'))

let resultadoImc = imc(altura,kilo);
console.log(`O seu IMC é de ${resultadoImc}`);

function imc(altura,kilo) {
    let indiceImc = (kilo/(altura*altura));
    return indiceImc;
    
}

// 2 - Crie uma função que calcule o valor do fatorial de um número passado como parâmetro.

let fatorial = parseInt(prompt('Digite um número e calcule o seu fatorial'));

function calculoFatorial(fatorial) {

    if(fatorial < 0){
        return " Não existe fatorial de números negativos"
    }

    if(fatorial === 0){
        return 1;
    }

    return fatorial * calculoFatorial(fatorial -1);

}

let resultadoFatorial = calculoFatorial(fatorial);
console.log(`O fatorial do número ${fatorial} é: ${resultadoFatorial}`);

// 3 - Crie uma função que converte um valor em dólar, passado como parâmetro, e retorna o valor equivalente em reais. Para isso, considere a cotação do dólar igual a R$4,80.

let valorEmReais = parseFloat(prompt('Digite quantos reais você tem para converter em US$:'))

function conversaoDolar(reais) {

    let conversao = reais*4.80;
    return conversao;
    
}1

let conversaoFinal = conversaoDolar(valorEmReais);
let palavraDolar = conversaoFinal > 1 ? 'Dolares' : 'Dolar';
let palavraReal = valorEmReais > 1 ? 'Reais' : 'Real';
console.log(` R$ ${valorEmReais} ${palavraReal} em Dolar da US$ ${conversaoFinal} ${palavraDolar}`);

// 4 - Crie uma função que mostre na tela a área e o perímetro de uma sala retangular, utilizando altura e largura que serão dadas como parâmetro.

let comprimento = parseFloat(prompt('Digite o perímetro em metros:'));

let largura = parseFloat(prompt('Digite a largura em metros:'));

function area(comprimento, largura) {
    let areaRetangular = comprimento*largura;
    return areaRetangular
}

function perimetro(comprimento, largura) {
    let perimetroRetangulo = 2* (comprimento + largura);
    return perimetroRetangulo;
    
}

let areaDoRetangulo = area(comprimento, largura);
let perimetroRetangulo = perimetro(comprimento, largura);

function exibirAreaMaisretangulo(areaDoRetangulo,perimetroRetangulo) {

    alert(`A Area da sala de comprimento ${comprimento} m e largura ${largura} m é de ${areaDoRetangulo} m²`);
    alert(`O Perimetro da sala de comprimeto ${comprimento} m e largura ${largura} m é de ${perimetroRetangulo} m`);
    
}

exibirAreaMaisretangulo(areaDoRetangulo,perimetroRetangulo);

// 5 - Crie uma função que mostre na tela a área e o perímetro de uma sala circular, utilizando seu raio que será fornecido como parâmetro. Considere Pi = 3,14.

let raio = parseFloat(prompt('Digite o Raio da sala em metros:'));

function area(raio) {
    let pi = 3.14;
    let areaSala = pi*(raio*raio);
    return areaSala
}

function perimetro(raio) {
    let pi = 3.14;
    let perimetroSala = 2*pi*raio;
    return perimetroSala;
    
}


let areaDaSala = area(raio);
let perimetroDaSala= perimetro(raio);

function exibirAreaMaisretangulo(areaDaSala,perimetroDaSala) {

    alert(`A Área da sala de raio ${raio}m é de ${areaDaSala}m²`);
    alert(`O Perimetro da sala de raio ${raio}m é de ${perimetroDaSala}m`);
    
}

exibirAreaMaisretangulo(areaDaSala,perimetroDaSala);


// 6 - Crie uma função que mostre na tela a tabuada de um número dado como parâmetro.

let numero = parseInt(prompt('Digite um número e descubra sua tabuada'));

function tabuada(numero) {

    if(numero <=0 ){
        alert('Digite um número válido');
    }

    for (let i = 0; i<=10; i++ ){
        alert(`A tabiada de ${numero} X ${i} = ${numero*i}`);
    }


   
}

// tabuada(numero)

let i = 0;
function tabuada2(numero) {
    while(i<=10){
        let resultado = numero*i;
        alert(`A tabuada de ${numero} X ${i} = ${resultado}`);
        i++
    }

    
}

tabuada2(numero)
3 respostas


// Dúvida da solicitação 1
// Aqui se eu quiser que o usuário forneça os dados de Altura e Kilogramas e depois seja colocado na tela um popap (alerta) indicando o IMC da pessoa, como eu faria ?

// Dúvida da solicitação 2
// Poderia explicar melhor como seria feito a questão do fatorial
// eu pensei em:

/*
    let resultado = 0;
    if(fatorial > 0){
        let resultado = fatorial;
        let resultadoFatorial = resultado * fatorial;
        return resultadoFatorial; 
    }
        fatorial --;

    Aqui eu pensei em receber o fatorial, depois começar a multiplicação dele por ele mesmo e com o decremento o valor que estivesse salvo na variável "fatorial" fosse baixando até chegar a zero, depois disso iria sair do if com o resultado final do fatorial, porém não deu certo.
*/

// Dúvida da solicitação 6
// como faço para mostrar a tabuada inteira.

7x1 = 7
7x2 = 14
.
.
.
// Ainda sobre a solicitação 6: Pq o incremento " i++ " do while deve ficar dentro e não fora do loop ?



Foi ensinado o for ????

solução!

Dúvida 1

alert('sua mensagem');

Dúvida 2 - A resposta que vc mostrou tá usando recursividade, uma função que chama ela mesma. Outra forma de fazer seria usando um laço de repetição. Sua lógica tá no caminho certo, mas precisa estar dentro de uma estrutura de repetição.

Dúvida 6 - para exibir tudo de uma vez você precisa salvar o resultado em uma variavel e só no final exibir. Veja, no seu código você exibe um alert a cada iteração do laço.

let i = 0;
function tabuada2(numero) {
    while(i<=10){
        let resultado = numero*i;
        alert(`A tabuada de ${numero} X ${i} = ${resultado}`);
        i++
    }
}

Para mostrar tudo de uma vez você precisa tirar o alert do laço. E salvar a msg em uma variável, e a da iteração juntar essa msg com as outras

let i = 0;
let msg = ''; //variavel para armazer a tabuada
function tabuada2(numero) {
    while(i<=10){
        let resultado = numero*i;
        msg += `${numero} X ${i} = ${resultado} \n`;
        i++
    }
    alert(msg);
}

msg += ${numero} X ${i} = ${resultado} \n;+= é para concatenar a msg anterior com a seguinte; /n é para pular linha; E no final, fora da repetição, eu exibo a msg no alert

O i++ dentro do laço é o controle da repetição. O while repete alguma coisa enquanto a condição for verdadeira, ou seja, enquanto (i <= 10), então eu tenho que manipular a variável i dentro do while para que em algum momento ele se torne maior que 10, pois desse modo a repetição vai para pq a condição se tornou falsa. Se eu não controlar o i dentro da repetição ela nunca vai parar.