1
resposta

Desafio - Projeto Ingresso online

1 -

function comprar() {
    // Obter os elementos do DOM
    let tipoElemento = document.getElementById('tipo-ingresso');
    let qtdElemento = document.getElementById('qtd');

    // Verificar se os elementos existem
    if (!tipoElemento || !qtdElemento) {
        alert('Elementos de entrada não encontrados.');
        return;
    }

    let tipo = tipoElemento.value; // Pega o valor diretamente
    let qtd = parseInt(qtdElemento.value); // Converte a quantidade para inteiro

    // Validação básica para quantidade
    if (isNaN(qtd) || qtd <= 0) {
        alert('Por favor, insira uma quantidade válida.');
        return;
    }

    // Verifica o tipo de ingresso e chama a função correspondente
    if (tipo === 'pista') {
        comprarPista(qtd);
    } else if (tipo === 'superior') {
        comprarSuperior(qtd);
    } else if (tipo === 'inferior') {
        comprarInferior(qtd); 
    }
}

function comprarPista(qtd) {
    let qtdPistaElement = document.getElementById('qtd-pista');
    let qtdDisponivel = parseInt(qtdPistaElement.textContent); // Pega a quantidade disponível de Pista

    if (qtd > qtdDisponivel) {
        alert('Quantidade indisponível para o tipo Pista');
    } else {
        qtdDisponivel -= qtd; // Subtração da quantidade comprada
        qtdPistaElement.textContent = qtdDisponivel; // Atualiza a quantidade disponível
        alert('Compra realizada com sucesso para Pista!');
    }
}

function comprarSuperior(qtd) {
    let qtdSuperiorElement = document.getElementById('qtd-superior');
    let qtdDisponivel = parseInt(qtdSuperiorElement.textContent); // Pega a quantidade disponível de Superior

    if (qtd > qtdDisponivel) {
        alert('Quantidade indisponível para o tipo Superior');
    } else {
        qtdDisponivel -= qtd; // Subtração da quantidade comprada
        qtdSuperiorElement.textContent = qtdDisponivel; // Atualiza a quantidade disponível
        alert('Compra realizada com sucesso para o Superior!');
    }
}

function comprarInferior(qtd) {
    let qtdInferiorElement = document.getElementById('qtd-inferior');
    let qtdDisponivel = parseInt(qtdInferiorElement.textContent); // Pega a quantidade disponível de Inferior

    if (qtd > qtdDisponivel) {
        alert('Quantidade indisponível para o tipo Cadeira inferior');
    } else {
        qtdDisponivel -= qtd; // Subtração da quantidade comprada
        qtdInferiorElement.textContent = qtdDisponivel; // Atualiza a quantidade disponível
        alert('Compra realizada com sucesso para a Cadeira Inferior!');
    }
}

2 -

function converterStringEmInteiro(string) {
    return parseInt(string);
}

//Exemplo de uso
let valorString = "1789";
console.log(converterStringEmInteiro(valorString)); 

3 -

function adição(a, b){
    return a + b;
}

function subtracao(a, b){
    return a - b;
}

function multiplicacao(a, b){
    return a * b;
}

function divisao(a, b) {
    if (b !== 0) {
        return a / b;
    } else {
        return "Erro: divisão por zero.";
    }
}

function calculadora (operacao, a, b){
    switch(operacao){
        case "adicao":
            return adição(a, b);
            break;
            case "subtracao":
            return subtracao(a, b);
            break;
            case "multiplicacao":
            return multiplicacao(a, b);
            break;
            case "divisao":
            return divisao(a, b);
            break;
            default:
                return "Erro: operação inválida.";
    }
}


let resultado1 = calculadora("adicao", 10, 25);
console.log(resultado1);

let resultado2 = calculadora("subtracao", 20, 13);
console.log(resultado2);

let resultado3 = calculadora("multiplicacao", 8, 7);
console.log(resultado3);

let resultado4 = calculadora("divisao", 40, 5);
console.log(resultado4);

4 -

function parOuImpar(num) {
    num % 2 === 0 ? console.log(num + " é par") : console.log(num + " é ímpar");
}


//Teste a função com alguns números
let numero = 59;
parOuImpar(numero);

5 -

function converterTemperatura(valor, escala) {
    if (escala.toLowerCase () === 'celsius') {
        return (valor * 9/5) + 32; //Celsius para Fahrenheit
        } else if (escala.toLowerCase () === 'fahrenheit') {
            return (valor - 32) * 5/9; //Fahrenheit para Celsius
    } else{
        return "Escala inválida. Por favor, insira 'celsius' ou 'fahrenheit'.";
    }

}

//Exemplo de uso
let temperaturaCelsius = 25;
let temperaturaFahrenheit = converterTemperatura(temperaturaCelsius, 'celsius');
console.log(temperaturaFahrenheit); 
1 resposta

Oi, Estudante! Como vai?

Vi que você estruturou muito bem as funções para controlar a compra de ingressos e fez um uso correto da manipulação do DOM para atualizar as quantidades disponíveis. Também curti a organização das funções auxiliares para operações matemáticas e a função de conversão de temperatura.

Uma dica interessante para o futuro é usar o método toFixed() para controlar a quantidade de casas decimais em operações que envolvem números de ponto flutuante. Por exemplo:


let preco = 19.9999;
console.log(preco.toFixed(2)); // Saída: 20.00

Esse método retorna uma string com o número formatado com o número de casas decimais desejado, útil para exibir preços ou resultados arredondados.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!