Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

vinitf

Sistema de notas básico

Recommended Posts

Olá, queria colocar a quantidade de alunos num input html (não gosto de prompt) e em seguida dar a nota de cada um, e no fim mostrar na tela a maior e a menor nota de todas. Como faço o loop pra ir armazenando as notas até chegar a quantidade final de alunos que selecionei? E para imprimir depois? Estou até agora assim

<input placeholder = "Quantidade de alunos" id = "alunos"/>
  <input placeholder = "Nota do aluno" id = "nota"/>
    <button id= "gerar"> Ok</button> <div>
 </div>
Citar

var alunos = document.GetElementById("alunos"); 
var nota = document.GetElementById("nota");
var maior;
var menor; 
menor = maior;
function notas(){
for (var i = 0; i < n; i++) {
  //nota = +prompt('Digite a nota do aluno');
  if (nota > maior) { 
    maior = nota;
  } else { 
      if (nota < menor) {
        menor = nota;
      }
  }
}

alert("Maior nota: "+ maior); 
alert("Menor nota: "+ menor);
document.getElementById("gerar").addEventListener("click", notas);

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

já não me recordo bem de JS e neste momento não estou com muito tempo. Mas pesquise por arrays.

Terá que guardar os dados num array e depois ordenar da maneira que quiser esse array. A vantagem de ter num array é que consegue fazer o que quiser com os dados nele inseridos.

 

Após isso é fazer as chamadas via html/js para mostrar os dados que quiser tendo em conta os dados que estão armazenados no array.

 

Lembro que dessa maneira, quando o user fechar a aplicação vai perder toda a info. Talvez o que precise é de uma ligação a uma base de dados. mysql, por exemplo! Mas mesmo assim a solução pode passar por JS. Talvez comece a ponderar uma solução em php, caso tenha um servidor e queira disponibilizar a página via um servidor, por exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 minutos atrás, codercss disse:

já não me recordo bem de JS e neste momento não estou com muito tempo. Mas pesquise por arrays.

Terá que guardar os dados num array e depois ordenar da maneira que quiser esse array. A vantagem de ter num array é que consegue fazer o que quiser com os dados nele inseridos.

 

Após isso é fazer as chamadas via html/js para mostrar os dados que quiser tendo em conta os dados que estão armazenados no array.

 

Lembro que dessa maneira, quando o user fechar a aplicação vai perder toda a info. Talvez o que precise é de uma ligação a uma base de dados. mysql, por exemplo! Mas mesmo assim a solução pode passar por JS. Talvez comece a ponderar uma solução em php, caso tenha um servidor e queira disponibilizar a página via um servidor, por exemplo.

à princípio isso é só um teste para mostrar na tela, não é necessário banco de dados. Eu só queria simplesmente dar uma quantidade de alunos, depois dar a nota de cada um e no final mostrar qual foi a maior e a menor nota.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguindo a lógica do codercss, vê se ajuda:

 

window.onload = function() 
{
  document.getElementById("gerar").onclick = notas;
}

function notas() 
{
  var qtdAlunos = document.getElementById("alunos").value;
  var notas = document.getElementById("nota").value.split(" ");
  console.log(qtdAlunos, notas);
  var maior = notas[0];
  var menor = notas[0];

  for (var i = 0; i < qtdAlunos; i++) 
  {
    //nota = +prompt('Digite a nota do aluno');
    if (parseInt(notas[i]) > maior) 
    {
      maior = parseInt(notas[i]);
    } 
    else if (parseInt(notas[i]) < menor) 
    {
        menor = parseInt(notas[i]);
    }
  }
  alert("Maior nota: " + maior);
  alert("Menor nota: " + menor);
}

Exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Peguei uma ideia do seu, @wootzor, mas resolvi ficar com o prompt mesmo. Só mais uma coisa, como ficaria se fosse adicionar parâmetros à função? Eu teria que tirar o prompt para poder chamar a função, certo? Prefiro que fique sem ele, como faço isso?

function notas() {
  var notas;
  var maior = notas[0];
  var menor = notas[0];
  menor = maior;
  n = +prompt("Número de alunos:");
  for (var i = 0; i < n; i++) {
    nota = +prompt("Nota do aluno " + [i + 1]);
    if (parseInt(notas[i]) > maior) {
      maior = parseInt(notas[i]);
    } else if (parseInt(notas[i]) < menor) {
      menor = parseInt(notas[i]);
    }
  }
  /* OU 
  menor = maior;
  maior = nota;
  nota = maior;
  if (nota > maior) {
    maior = nota;
  } else {
    if (nota < menor) {
      menor = nota;
    }
  }*/
}
alert("Maior nota: " + maior);
alert("Menor nota: " + menor);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz esse Script pelo celular espero não está errado.

<!DOCTYPE html>
<html>
    <body>


<form name="form" onsubmit="return notas();">
<input type="text" placeholder="coloque o nome do aluno" name="alunos">
<input type="number" name="nota" placeholder="coloque a nota">
<input type="submit">
<div class="aluno">
<input type="text" name="aluno" >
</div>
</form>
        <script> 
            
    function notas() {
        if(form.nota.value >=11) {
        alert("A nota maxima e 10");
        form.nota.focus();
        return false;    
            } else if(form.nota.value=="") {
                alert("E necessario colocar a nota");
form.nota.focus();
return false;
}
if(form.alunos.value=="") {
    alert("E obrigatorio colocar o nome"); 
form.alunos.focus();
return false;
    }
    if(form.nota.value >=7) {
alert("O aluno passou");

alert("nome do aluno");
            alert(form.aluno.value = form.alunos.value);
    form.aluno.style.display = "block";
    return false;
return false;
        } else {
            alert("O aluno nao passou");
            alert("nome do aluno");
            alert(form.aluno.value = form.alunos.value);
    form.aluno.style.display = "block";
    return false;
            }
        }
        </script>
        <style>
        .aluno {
            display:none;
            }
        </style>
    </body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 14/04/2017 at 20:02, AndréJs disse:

Eu fiz esse Script pelo celular espero não está errado.

<!DOCTYPE html>
<html>
    <body>


<form name="form" onsubmit="return notas();">
<input type="text" placeholder="coloque o nome do aluno" name="alunos">
<input type="number" name="nota" placeholder="coloque a nota">
<input type="submit">
<div class="aluno">
<input type="text" name="aluno" >
</div>
</form>
        <script> 
            
    function notas() {
        if(form.nota.value >=11) {
        alert("A nota maxima e 10");
        form.nota.focus();
        return false;    
            } else if(form.nota.value=="") {
                alert("E necessario colocar a nota");
form.nota.focus();
return false;
}
if(form.alunos.value=="") {
    alert("E obrigatorio colocar o nome"); 
form.alunos.focus();
return false;
    }
    if(form.nota.value >=7) {
alert("O aluno passou");

alert("nome do aluno");
            alert(form.aluno.value = form.alunos.value);
    form.aluno.style.display = "block";
    return false;
return false;
        } else {
            alert("O aluno nao passou");
            alert("nome do aluno");
            alert(form.aluno.value = form.alunos.value);
    form.aluno.style.display = "block";
    return false;
            }
        }
        </script>
        <style>
        .aluno {
            display:none;
            }
        </style>
    </body>
</html>

Amigo, eu até saquei o que você quis dizer mas a minha ideia era não usar html, queria somente uma função com parâmetros para mostrar as notas (já chamadas no codigo ou não) qual é a maior e a menor entre elas, não necessita de formulário ou dizer o nome do aluno

Compartilhar este post


Link para o post
Compartilhar em outros sites

Espero te Respondido a Sua pergunta com esse Script.

<!DOCTYPE HTML>
<html lang="pt-br">
<head>
<meta charset="utf-8">
</head>
<body>
  <script>
     function nota() {
var notaum = 7;
var notadois = 5;
if(notaum > notadois) {
document.write("A variavel notaum È maior do que a 'Variavel notadois.'" + "<br><br>");

if(notadois < notaum) {
document.write("A 'Variavel notadois' È menor do que a 'Variavel notaum.'" + "<br><br>");
}
document.write("Valor Da Variavel 'notaum è' "  + " " + notaum + "<br><br>");

document.write("Valor Da Variavel 'notadois è' "  + " " + notadois );

}
var notas =nota();
window.onload =  notas;

  </script>
</body>
</html>

 

 

Se não for assim foi mal eu sou meio leigo para entender as coisas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Tem jeito menos 'complicados' de se fazer isso.

Para 'imprimir depois' precisa de uma fonte de dados, nem que essa fonte seja um arquivo txt, csv ou json.

 

1 - Faça o formulário com o input da nota.

 

2 - Use um evento jQuery pra mandar uma requisição ajax para um arquivo php.

 

3 - Armazene na fonte de dados.

 

4 - Faça com o php que ele leia a fonte de dados, pegue as notas e calcule quais notas são a maior e a menor.

 

5 - Pegue esse retorno e exiba em uma elemento html.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
10 horas atrás, AnthraxisBR disse:

 

Tem jeito menos 'complicados' de se fazer isso.

Para 'imprimir depois' precisa de uma fonte de dados, nem que essa fonte seja um arquivo txt, csv ou json.

 

1 - Faça o formulário com o input da nota.

 

2 - Use um evento jQuery pra mandar uma requisição ajax para um arquivo php.

 

3 - Armazene na fonte de dados.

 

4 - Faça com o php que ele leia a fonte de dados, pegue as notas e calcule quais notas são a maior e a menor.

 

5 - Pegue esse retorno e exiba em uma elemento html.

 

Sei que há várias outras formas de se fazer, amigo. Mas estou numa série de questões para aprender a utilizar parâmetros em javascript exclusivamente, e queria encontrar uma forma de fazer isso por enquanto somente através desse método. No momento não quero introduzir html, php ou outra linguagem além de js

Compartilhar este post


Link para o post
Compartilhar em outros sites
8 horas atrás, vinitf disse:

No momento não quero introduzir html

Isso aqui é HTML meu amigo...

<input placeholder = "Quantidade de alunos" id = "alunos"/>
  <input placeholder = "Nota do aluno" id = "nota"/>
    <button id= "gerar"> Ok</button> <div>
 </div>

Fiz um passo a passo para quem gostaria de entrar no mundo de JS

Da uma olhadinha:

https://github.com/gabrieldarezzo/helpjs-ravi/blob/master/README.md#exercicios-em-javascript

 

Outra dica...

Fiz um exemplo bem parecido com a sua necessidade (apenas o uso de prompt)

https://forum.imasters.com.br/topic/557622-resolvido-objetos-json/?do=findComment&comment=2225215

 

 

Recomendo fortemente dar uma olhada nos videos do Rodrigo Branas:
https://www.youtube.com/watch?v=093dIOCNeIc&list=PLQCmSnNFVYnT1-oeDOSBnt164802rkegc

Compartilhar este post


Link para o post
Compartilhar em outros sites
16 minutos atrás, gabrieldarezzo disse:

Isso aqui é HTML meu amigo...



 

Sim, sei disso. Mas isso foi no início, me foi orientado depois que deveria fazer somente com javascript.

 

18 minutos atrás, gabrieldarezzo disse:

Outra dica...

Fiz um exemplo bem parecido com a sua necessidade (apenas o uso de prompt)

https://forum.imasters.com.br/topic/557622-resolvido-objetos-json/?do=findComment&comment=2225215

Já utilizei prompt e deu certo, mas assim como o colega desse tópico, eu estou precisando fazer por meio de funções, como me foi ordenado, para poder me aprofundar mais nesse método. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acabei de colocar uma resposta lá extamente sobre funções

https://forum.imasters.com.br/topic/557622-resolvido-objetos-json/?do=findComment&comment=2225614

 

As dicas então valem pra ti tmb.

Eu to ficando meio puto já q ninguem abriu o canal do cara no youtube...

https://www.youtube.com/watch?v=OqR0hE-DQn4&list=PLQCmSnNFVYnT1-oeDOSBnt164802rkegc&index=7

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe, eu estou no trabalho e aqui o youtube é bloqueado. Só em casa mesmo que vou poder ver. Realmente o problema dele é o mesmo que o meu, e coincidentemente também estou usando uma lista de objetos e é isso que estamos nos complicando. No momento estou assim:

var alunos = [{
  Aluno: "Jamil",
  Nota: 8
}, {
  Aluno: "Joãozinho",
  Nota: 5
}, {
  Aluno: "Maria",
  Nota: 7
}];
function vernotas(maior, menor) {
  var notas = [];
  var maior = 100;
  var menor = 0;
  var nota = 0;
  menor = maior;
  //var n = +prompt("Número de alunos:");
  for (var i = 0; i < maior.length; i++) {
    //var nota = +prompt("Nota do aluno:" + [i + 1]);
    if (menor[i].Nota === maior) {
      menor = maior;
      maior = nota;
      nota = maior;
      notas.push(nota);
    }
    else if (nota > maior) {
      notas.push(maior);
      maior = nota;
    } else if (nota < menor) {
        notas.push(menor);
        menor = nota;
      }
    }
  console.log(vernotas(alunos("Maior nota: " + maior + "/ Menor nota: " + menor)));

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.

      Estou com uma pequena dúvida se é possível ser realizado.

      Preciso passar 2 IDs para o Sistema executar a função, estou utilizando desta forma e gostaria de saber como faço via JS para passar os parâmetro que preciso.

      Observação:
      Dentro da TABELA utilizei 2 Forms, para passar os IDS que preciso, funcionou conforme código abaixo.
      <div class="card-body"> <table id="tab_clie" class="table table-bordered table-hover"> <thead> <tr> <th style="text-align:center; width:10%;">Pedido Nº</th> <th style="text-align:center; width:10%;">Data Pedido</th> <th style="text-align:center; width:32%;">Fornecedor</th> <th style="text-align:center; width:10%;">Status</th> <th style="text-align:center; width:5%;">Ação</th> </tr> </thead> <tbody> <?php foreach ($results as $r) { $dta_ped = date(('d/m/Y'), strtotime($r->dataPedido)); switch ($r->pd_status) { case '1': $status = '&nbsp;&nbsp;Aberto&nbsp;&nbsp;'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#000000'; //Cor: Preta break; case '2': $status = 'Atendido Total'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#086108'; //Cor: Verde break; case '3': $status = 'Atendido Parcial'; $txt = '#000000'; //Cor: Branco $cor = '#FEA118'; //Cor: Amarelo break; default: $status = 'Cancelado'; $txt = '#FFFFFF'; //Cor: Branco $cor = '#D20101'; //Cor: Vermelho break; } echo '<tr>'; echo '<td width="10%" height="10" style="text-align:center;">'.$r->pd_numero.'</td>'; echo '<td width="10%" height="10" style="text-align:center;">'.$dta_ped.'</td>'; echo '<td width="32%" height="10" style="text-align:left;">'.$r->nome.'</td>'; echo '<td width="10%" height="10" style="text-align:left;"><span class="badge" style="color:'.$txt.'; background-color:'.$cor.'; border-color:'.$cor.'">'.$status.'</span></td>'; echo '<td width="5%" style="text-align:center;">'; ?> <div class="row"> <?php if($this->permission->checkPermission($this->session->userdata('permissao'), 'vPedido')){ ?> <form action="<?= base_url() ?>compras/pedidos/visualizar" method="POST" > <input type="hidden" name="idPedido" value="<?php echo $r->idPedidos; ?>"> <input type="hidden" name="nrPedido" value="<?php echo $r->pd_numero; ?>"> <button class="btn btn-warning" title="Visualizar" style="margin-left:50%; padding: 1px 3px;"><i class="fa fa-search icon-white"></i></button> </form> <?php } if($this->permission->checkPermission($this->session->userdata('permissao'), 'ePedido')){ ?> <form action="<?= base_url() ?>compras/pedidos/editar" method="POST" > <input type="hidden" name="idPedido" value="<?php echo $r->idPedidos; ?>"> <input type="hidden" name="nrPedido" value="<?php echo $r->pd_numero; ?>"> <button class="btn btn-primary" title="Editar" style="margin-left:50%; padding: 1px 3px;"><i class="fa fa-edit icon-white"></i></button> </form> <?php } ?> </div> <?php echo '</td>'; echo '</tr>'; } ?> </tbody> </table> </div>
      Grato,

      Cesar.
    • Por belann
      Olá!
       
      Estou usando o editor quill em uma página html, sem fazer a instalação com npm, mas usando as api´s via internet com http, no entanto não consigo fazer a tecla enter funcionar para mudança de linha, tentei essa configuração abaixo, mas não funcionou.
       
      modules: {       syntax: true,       toolbar: '#toolbar-container',       keyboard: {         bindings: {           enter: {             key: 13,             handler: function(range, context) {                       quill.formatLine(range.index, range.length, { 'align': '' });             }           }  
       
    • Por violin101
      Caros amigos, saudações.
       
      Gostaria de poder tirar uma dúvida com os amigos.
       
      Como faço uma função para Comparar a Data Digitada pelo o Usuário com a Data Atual ?

      Data Digitada:  01/09/2024
       
      Exemplo:
      25/09/2024 é menor que DATA Atual  ====> mensagem: informe uma data válida.
      25/09/2024 é igual DATA Atual ===> o sistema libera os INPUT's.
       
      Como faço uma comparação com a Data Atual, para não Deixar Gravar Data retroativa a data Atual.
       
      Grato,
       
      Cesar
    • Por Rafael Castelhano
      Olá, quero preencher um dict dinamicamente onde a chave é uma string multidimencional no dict, ex:
      var dict = {} var path = 'a.b.c' dict[path] = 55 // isso faz dict ficar desta forma {'a.b.c': 55} // mais quero que fique assim {a: {b: {c: 55}}} Como consigo alterar desta forma? 
    • Por violin101
      Caros amigos, saudações.
       
      Estou com um problema de cálculo que não estou conseguindo resolver.
       
      Tenho uma rotina em Javascript que faz o seguinte cálculo qtde x vrUnit = total.
       
      qtde   x  vrUnit    =    total
      1,23   x  1,00       =    1,23    << até aqui tudo bem.
       
      o problema seria fazer o arredondamento para cima para impedir de fazer este cálculo:
      0,01 x 0,01 = 0,0001
       
      para digitar o valor estou utilizando esta função:
       
      /*Esta função quando o usuário digitar o valor aparece * 1,23 */ function formataDigitacao(i) { //Adiciona os dados para a másrcara var decimais = 2; var separador_milhar = '.'; var separador_decimal = ','; var decimais_ele = Math.pow(10, decimais); var thousand_separator = '$1'+separador_milhar; var v = i.value.replace(/\D/g,''); v = (v/decimais_ele).toFixed(decimais) + ''; var splits = v.split("."); var p_parte = splits[0].toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, thousand_separator); (typeof splits[1] === "undefined") ? i.value = p_parte : i.value = p_parte+separador_decimal+splits[1]; } /*Esta função faz a multiplicação entre Valor Unitário X Quantidade *faz a multiplicação correta */ function calcProd(){ //Obter valor digitado do produto var prod_qtde = document.getElementById("qtde").value; //Remover ponto e trocar a virgula por ponto while (prod_qtde.indexOf(".") >= 0) { prod_qtde = prod_qtde.replace(".", ""); } prod_qtde = prod_qtde.replace(",","."); //Obter valor digitado do produto var valor_unit = document.getElementById("vlrunit").value; //Remover ponto e trocar a virgula por ponto while (valor_unit.indexOf(".") >= 0) { valor_unit = valor_unit.replace(".", ""); } valor_unit = valor_unit.replace(",","."); //Calcula o Valor do Desconto if (valor_unit > 0 && prod_qtde > 0) { calc_total_produto = (parseFloat(valor_unit) * parseFloat(prod_qtde)); var numero = calc_total_produto.toFixed(2).split('.'); //<<== aqui faço o arredondamento das casas decimais de 1,234 p/ 1,23 numero[0] = numero[0].split(/(?=(?:...)*$)/).join('.'); document.getElementById("vlrtotal").value = numero.join(','); } else { if (valor_unit > 0) { document.getElementById("vlrtotal").value = document.getElementById("vlrunit").value; } else { document.getElementById("vlrtotal").value = "0,00"; } } } Grato,
       
      Cesar
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.