Uma rede de cinemas quer implementar um sistema para controlar a entrada nas suas salas. Os clientes, antes de entrar na sala, devem apresentar o RG em uma câmera. A câmera seria capaz de ler a data de nascimento do cliente e, caso ele não tenha idade suficiente para assistir a sessão, o acesso dele não seria autorizado. Um dos programadores já fez uma função que calcula a idade com base na data de nascimento. Ela recebe como parâmetro uma data de nascimento no formato dd/mm/aaaa (dia com dois dígitos, mês com dois dígitos e ano com quatro dígitos) e retorna idade da pessoa hoje. Precisamos agora que você escreva a função deixaEntrar(dataNascimento, censura). A função deve receber dois parâmetros: O primeiro deve representar a data de nascimento do cliente no formato dd/mm/aaaa O segundo deve representar a censura da sessão, ou seja, a idade mínima do cliente para que ele possa acessar a sala. A função deve retornar true caso o cliente tenha idade maior ou igual a censura e false caso contrário.
// A função a seguir (calculaIdade) não precisa ser alterada
// A sua função deve ser escrita logo abaixo desta
function calcularIdadeB(dataDeNascimento) {
if(!/^\d{2}\/\d{2}\/\d{4}$/.test(dataDeNascimento)) throw("Formato de data inválido");
var [dia, mes, ano] = dataDeNascimento.split('/');
var d = new Date();
var anoAtual = d.getFullYear();
var mesAtual = d.getMonth() + 1;
var diaAtual = d.getDate();
ano = +ano; mes = +mes; dia = +dia;
var quantosAnos = anoAtual - ano;
if (mesAtual < mes || mesAtual == mes && diaAtual < dia) {
quantosAnos--;
}
return quantosAnos < 0 ? 0 : quantosAnos;
}
function deixaEntrar(dataDeNascimento, censura){
return calcularIdade(dataDeNascimento) >= censura
}
Porem, mesmo assim, aparece a mensagem de 4 erros, que ao meu ver, não fazem sentido.
// Escreva aqui sua função
function deixaEntrar(dataDeNascimento, censura){
return (calcularIdade(dataDeNascimento) >= censura)
}
Soluções para a tarefa
Resposta:
// A função a seguir (calculaIdade) não precisa ser alterada
// A sua função deve ser escrita logo abaixo desta
function calcularIdadeB(dataDeNascimento) {
if(!/^\d{2}\/\d{2}\/\d{4}$/.test(dataDeNascimento)) throw("Formato de data inválido");
var [dia, mes, ano] = dataDeNascimento.split('/');
var d = new Date();
var anoAtual = d.getFullYear();
var mesAtual = d.getMonth() + 1;
var diaAtual = d.getDate();
ano = +ano; mes = +mes; dia = +dia;
var quantosAnos = anoAtual - ano;
if (mesAtual < mes || mesAtual == mes && diaAtual < dia) {
quantosAnos--;
}
return quantosAnos < 0 ? 0 : quantosAnos;
}
function deixaEntrar(dataNascimento, censura)
{
return (calcularIdade != 0 && calcularIdade > censura);
}
Explicação:
Caso a idade recebida pela função deixaEntrar seja 0, isso significa que o cálculo de quantosAnos deu um valor negativo que é um inválido. Caso quantosAnos seja positivo, é possível realizar a operação para comparar a idade com o valor da censura, retornando true ou false.
// Escreva aqui sua função
function deixaEntrar(dataDeNascimento, censura){
return (calcularIdade(dataDeNascimento) >= censura)
}
Segue a função deixaEntrar(dataNascimento, censura):
function deixaEntrar(dataDeNascimento, censura){
var idade = calcularIdade(dataDeNascimento)
return (idade > censura)
}
Função em programação
- Uma função (como a apresentada acima), na linguagem de programação, consiste em um conjunto de comandos que servem para a realização de uma dada tarefa.
- Chamamos (ou seja, referenciamos) uma função pelo nome dado/ atribuído a ela.
- A respeito dos parâmetros, como os apresentados na questão, também o chamamos de argumentos, e agem como uma espécie de interface de comunicação entre a função e o programa.
Mais sobre funções (linguagem Python): https://brainly.com.br/tarefa/47294993
Bons estudos!