Ir ao conteúdo

Posts recomendados

Postado

//Uma empresa quer verificar se um empregado está qualificado para a aposentadoria ou não. Para
//estar em condições de se aposentar, um dos seguintes requisitos deve ser satisfeito:
//- Ter no mínimo 65 anos de idade.
//- Ter trabalhado no mínimo 30 anos.
//- Ter no mínimo 60 anos e ter trabalhado no mínimo 25 anos.
//Com base nas informações acima, faça um algoritmo que leia: o nome do empregado, o ano
//de seu nascimento e o ano de admissão na empresa.
//O algoritmo deverá escrever a idade e o tempo
//de trabalho do empregado e a mensagem 'Requerer aposentadoria' ou 'Não requerer'.

 

Alguém poderia me ajudar no meu código que está  dando erro
 

 

 

function Calcular() {
    if (document.getElementById('txtNome').value.trim() == '') {
        alert('Campo nome é obrigatório');
        return false;
    }
    if (document.getElementById('txtNome').value.trim().length <= 7) {
        alert('Nome digitado é muito curto');
        return false;

    }
    if (document.getElementById('txtAnoNascimento').value == '') {
        alert('Campo data de nascimento é obrigatório');
        return false;
    }

    if (document.getElementById('txtAnoEmpresa').value == '') {
        alert('Campo do ano da admissão na empresa é obrigatório');
        return false;
    }

    if (document.getElementById('txtAnoAtual').value == '') {
        alert('Campo do ano atual é obrigatório');
        return false;
    }

    let nome;
    let AnoNascimento;
    let AnoAdmissao;
    let AnoAtual;
    let Idade;
    let TempoDeTrabalho;
    let PodeAposentar;

    Idade = AnoAtual - AnoNascimento
    TempoDeTrabalho = AnoAtual - AnoAdmissao

    if (Idade >= 65) {

        PodeAposentar = Verdadeiro

    }
    else if (TempoDeTrabalho >= 30) {
        PodeAposentar = Verdadeiro
    }
    else if (Idade >= 60 && TempoDeTrabalho >= 25) {
        PodeAposentar = Verdadeiro

    }
    else {
        PodeAposentar=Falso
    }

    // obtendo os valores dos campos do formulário
    nome = document.getElementById('txtNome').value;
    AnoNascimento = parseInt(document.getElementById('txtAnoNascimento').value);
    AnoAdmissao = parseInt(document.getElementById('txtAnoEmpresa').value);
    AnoAtual = parseInt(document.getElementById('txtAnoAtual').value);


    Idade = AnoAtual - AnoNascimento
    TempoDeTrabalho = AnoAtual - AnoAdmissao

        //escrever os resultados nos campos

    document.getElementById('txtResultNome').value = nome;
    document.getElementById('txtIdade').value = Idade;
    document.getElementById('txtTempoTrabalho').value = TempoDeTrabalho;
    document.getElementById('txtSituacao').value = TempoDeTrabalho;

    if (PodeAposentar = Verdadeiro) {
        document.write(" APOSENTADORIA")

        PodeAposentar = Verdadeiro

    }
    else {
        document.write("NÃO APOSENTADORIA")

        }
    }

 

 

 


 

Postado
12 horas atrás, lucassaculsantos disse:

//Uma empresa quer verificar se um empregado está qualificado para a aposentadoria ou não. Para
//estar em condições de se aposentar, um dos seguintes requisitos deve ser satisfeito:
//- Ter no mínimo 65 anos de idade.
//- Ter trabalhado no mínimo 30 anos.
//- Ter no mínimo 60 anos e ter trabalhado no mínimo 25 anos.
//Com base nas informações acima, faça um algoritmo que leia: o nome do empregado, o ano
//de seu nascimento e o ano de admissão na empresa.
//O algoritmo deverá escrever a idade e o tempo
//de trabalho do empregado e a mensagem 'Requerer aposentadoria' ou 'Não requerer'.

 

Alguém poderia me ajudar no meu código que está  dando erro
 

 

 


function Calcular() {
    if (document.getElementById('txtNome').value.trim() == '') {
        alert('Campo nome é obrigatório');
        return false;
    }
    if (document.getElementById('txtNome').value.trim().length <= 7) {
        alert('Nome digitado é muito curto');
        return false;

    }
    if (document.getElementById('txtAnoNascimento').value == '') {
        alert('Campo data de nascimento é obrigatório');
        return false;
    }

    if (document.getElementById('txtAnoEmpresa').value == '') {
        alert('Campo do ano da admissão na empresa é obrigatório');
        return false;
    }

    if (document.getElementById('txtAnoAtual').value == '') {
        alert('Campo do ano atual é obrigatório');
        return false;
    }

    let nome;
    let AnoNascimento;
    let AnoAdmissao;
    let AnoAtual;
    let Idade;
    let TempoDeTrabalho;
    let PodeAposentar;

    Idade = AnoAtual - AnoNascimento
    TempoDeTrabalho = AnoAtual - AnoAdmissao

    if (Idade >= 65) {

        PodeAposentar = Verdadeiro

    }
    else if (TempoDeTrabalho >= 30) {
        PodeAposentar = Verdadeiro
    }
    else if (Idade >= 60 && TempoDeTrabalho >= 25) {
        PodeAposentar = Verdadeiro

    }
    else {
        PodeAposentar=Falso
    }

    // obtendo os valores dos campos do formulário
    nome = document.getElementById('txtNome').value;
    AnoNascimento = parseInt(document.getElementById('txtAnoNascimento').value);
    AnoAdmissao = parseInt(document.getElementById('txtAnoEmpresa').value);
    AnoAtual = parseInt(document.getElementById('txtAnoAtual').value);


    Idade = AnoAtual - AnoNascimento
    TempoDeTrabalho = AnoAtual - AnoAdmissao

        //escrever os resultados nos campos

    document.getElementById('txtResultNome').value = nome;
    document.getElementById('txtIdade').value = Idade;
    document.getElementById('txtTempoTrabalho').value = TempoDeTrabalho;
    document.getElementById('txtSituacao').value = TempoDeTrabalho;

    if (PodeAposentar = Verdadeiro) {
        document.write(" APOSENTADORIA")

        PodeAposentar = Verdadeiro

    }
    else {
        document.write("NÃO APOSENTADORIA")

        }
    }

 

 

 


 

Na parte da lógica do if e else eu não vi nenhum erro. Seria interessante você postar o html para ver se pode ser algum erro no nome dos objetos, porque este sistema usado para pegar os dados dos objetos (inputs) é meio chatinho e qualquer detalhe dá errado.

Postado

@lucassaculsantos Olá colega.
Como sugestão, organize melhor o seu código. Pegue por exemplo, os dados dos inputs logo no início, armazene em uma variável e use essa variável para tudo ao longo do código todo.


Vou dar um exemplo abaixo, mas a parte com os if´s de consistência vou deixar para você, se não perde a graça:

 

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sem título</title>
</head>

<body>

<form>
  <p>Nome</p>
  <input type="text" id="txtNome" name="txtNome">
  
  <p>Ano Nascimento</p>
  <input type="number" id="txtAnoNascimento" name="txtAnoNascimento">
  
  <p>Ano Empresa</p>
  <input type="number" id="txtAnoEmpresa" name="txtAnoEmpresa">
  
  <p>Ano Atual</p>
  <input type="number" id="txtAnoAtual" name="txtAnoAtual">
  <br>
  
  <input type="submit" value="Calcular" onclick="calcula()">
</form>

<script>
function calcula() {    
    var ano_nascimento = document.getElementById('txtAnoNascimento').value;
    var ano_admissao   = document.getElementById('txtAnoEmpresa').value;
    var ano_atual      = document.getElementById('txtAnoAtual').value; 
    var nome           = document.getElementById('txtNome').value;
    
    if (nome.trim() == '') {
        alert('Campo nome é obrigatório');
        return false;
    }
    if (nome.trim().length <= 7) {
        alert('Nome digitado é muito curto');
        return false;

    }
    if (ano_nascimento == "") {
        alert('Campo data de nascimento é obrigatório');
        return false;
    }

    if (ano_admissao == "") {
        alert('Campo do ano da admissão na empresa é obrigatório');
        return false;
    }

    if (ano_atual == "") {
        alert('Campo do ano atual é obrigatório');
        return false;
    }    
    
    var idade = parseInt(ano_atual) - parseInt(ano_nascimento);
    var tempo = parseInt(ano_atual) - parseInt(ano_admissao);
        
    alert(idade);
    alert(tempo);
    
    /* Falta fazer os if´s abaixo*/
    
}
</script>


</body>
</html>

 

Abraços colega.

Postado

Era bom você colocar também o seu código HTML, pra gente vê os types das inputs que você tá usando. No nascimento, você captura um type: date? um number ?  uma string ? 

Se for só o ano de nascimento, então provavelmente é um type 'number'. O que você pode fazer, pra reduzir esse teu código, e não enche-lo de ifs,  seria trabalhar com operadores ternários diretos nas variáveis, já fazendo o papel dos ifs .

Um exemplo, imagina que essas constantes são os valores que você captura das sua inputs pelo o DOM, e que existe um fulano chamado Fiódor Dostoiévsk que quer ver se pode se aposentar ou não ... Ai segue o código


      

const nome = "Fiódor Dostoiévisk"

      const anoDenascimento = 1821;

      const anoCorrente = 2021;

      const tempoDetrabalho = 40;

      let  calcularAno = anoCorrente - anoDenascimento   

      const resposta = 
      calcularAno > 64 ? "Requerer aposentadoria" : "'Não requerer aposentadoria" || tempoDetrabalho > 29 ?"Requerer aposentadoria":
      "Não requerer" || calcularAno > 59 && tempoDetrabalho > 24 ? "Requerer aposentadoria" :"Não requerer aposentadoria"



      console.log(resposta)
     //irá retorna requerer aposentadoria

 

Outra hipótese com o mesmo código.

Já aqui, no caso do "Menino Moço", não irá retornar  a aposentadoria 

const nome = "Menino Moço";

      const anoDenascimento = 2001;

      const anoCorrente = 2021;

      const tempoDetrabalho = 5;


      let  calcularAno = anoCorrent - anoDenascimento   

      const resposta = 
      calcularAno > 64 ? "Requerer aposentadoria" : "Não requerer aposentadoria" || tempoDetrabalho > 29 ? "Requerer aposentadoria":
 "Não requerer aposentadoria" || calcularAno > 59 && tempoDetrabalho > 24 ? "Requerer aposentadoria" : "'Não requerer aposentadoria"

      console.log(resposta)
     //irá retorna não requerer aposentadoria

 

 Notei que em seu código você retornava um false e um true nos resultados das condicionais. 

Você pode fazer isso com esse código também. É só substituir o "Requerer aposentadoria" , por true , e o "Não requerer aposentadoria" , por false

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!