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 Giovanird
      Olá a todos!
      Tenho uma pagina que possui uma DIV onde coloquei uma pagina PHP.
      Uso a função setInterval para atualizar a pagina inclusa dentro da DIV.
      O problema é que ao acessar o site , a DIV só me mostra a pagina inclusa somente quando completo o primeiro minuto.
      Preciso que a pagina inclusa já inicie carregada
       
      Meu código JavaScript e a DIV com a pagina PHP
       
      <script> function atualiza(){ var url = 'direita.php'; $.get(url, function(dataReturn) { $('#direita').html(dataReturn); }); } setInterval("atualiza()",60000); </script> <div> <span id="direita"></span> </div>  
    • Por Thiago Duarte
      Oi, gostaria de arrastar imagem e ao soltar formar bloco html, meu bloco de html ficaria com nome, content-1.html, content-2.html, etc
       
      Alguem pode me ajudar?
    • Por belann
      Olá!
       
      Estou fazendo o upload de arquivos com fetch dessa forma
      fetch(url, {
              method: 'POST',
              headers: {'Content-Type': 'multipart/form-data',},
              body: formData 
          }).catch((error) => (console.log("Problemas com o Upload"), error));
       
      estou usando input type=file
      e criando uma const formData = new FormData(); 
      mas não faz e não dá nenhum erro.
      estou fazendo o upload com a url="http://localhost/dashboard/dados".
    • Por joeythai
      Boa tarde pessoal,
       
      Eu criei um formulário em que tenho 3 interações: evento click, change e uma chamada ajax. No evento on change ("select#removal_table_from" )eu faço uma chamada ajax onde eu passo como parametro o id do item selecionado e construo uma tabela dinamica com o próprio javascript, após isto, tenho um input em que o usuario coloca um valor de percentual para que eu possa preencher em 3 colunas da tabela que foi criada dinamicamente: moto_atualizado, carro_atualizado e caminhao_atualizado, até aí tudo bem, o codigo está fazendo isso, porém, como a tabela é criada dinamicamente eu preciso de alguma forma enviar o arrayData para meu backend mas quando faço o calculo dentro do loop apos resposta do meu ajax, os valores desses 3 campos chegam como null, não sei se é possível fazer o que pretendo ou se é ainda não sei como faz
       
      <code>
           $(document).ready(function (event) {   let arrayData = []; let percentage; let removal_vehicle; let removal_motorcycle; let removal_tuck; let apply_removal = $('#apply_removal');   // apply_removal.on('click', function () { // percentage = $('#percentage').val();   // $('.table-body tr').each(function () {   // let veiculo = $(this).find('.veiculo').text(); // let moto = $(this).find('.moto').text(); // let caminhao = $(this).find('.caminhao').text();   // let removal_vehicle = parseFloat(veiculo) + (parseFloat(veiculo) * parseFloat(percentage)) / 100; // let removal_motorcycle = parseFloat(moto) + (parseFloat(moto) * parseFloat(percentage)) / 100; // let removal_tuck = parseFloat(caminhao) + (parseFloat(caminhao) * parseFloat(percentage)) / 100;   // arrayData.push({ // removal_vehicle, // removal_motorcycle, // removal_tuck // })   // $(this).find('.veiculo_atualizado').val(removal_vehicle.toFixed(2)); // $(this).find('.moto_atualizado').val(removal_motorcycle.toFixed(2)); // $(this).find('.caminhao_atualizado').val(removal_tuck.toFixed(2)); // }); // });   apply_removal.on('click', function () { percentage = $('#percentage').val();   $('.table-body tr').each(function () {   let veiculo = $(this).find('.veiculo').text(); let moto = $(this).find('.moto').text(); let caminhao = $(this).find('.caminhao').text();   removal_vehicle = parseFloat(veiculo) + (parseFloat(veiculo) * parseFloat(percentage)) / 100; removal_motorcycle = parseFloat(moto) + (parseFloat(moto) * parseFloat(percentage)) / 100; removal_tuck = parseFloat(caminhao) + (parseFloat(caminhao) * parseFloat(percentage)) / 100;   arrayData.push({ removal_vehicle, removal_motorcycle, removal_tuck })   $(this).find('.veiculo_atualizado').val(removal_vehicle.toFixed(2)); $(this).find('.moto_atualizado').val(removal_motorcycle.toFixed(2)); $(this).find('.caminhao_atualizado').val(removal_tuck.toFixed(2));     console.log('Removal Vehicle:', removal_vehicle); console.log('Removal Motorcycle:', removal_motorcycle); console.log('Removal Truck:', removal_tuck); }); });   $('select#removal_table_from').on('change', function (e) { let table_id = $(this).val(); let action = route('removal.removal-values.show', table_id);   $.ajax({ type: "GET", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },   success: function (data) { $('.table-body').empty();   for (let i = 0; i < data.length; i++) { let carro = parseFloat(data[i].CARRO); let moto = parseFloat(data[i].MOTO); let caminhao = parseFloat(data[i].CAMINHAO); let distancia = data[i].DISTANCIA; let origem = data[i].ORIGEM; let destino = data[i].DESTINO; let localidadeOrigem = data[i].LocalidadeOrigem_ID; let localidadeDestino = data[i].LocalidadeDestino_ID;   let newRow = '<tr class="removal-row">' + '<td class="align-middle">' + '<div class="row">' + '<div class="col-1">' + '<span class="font-weight-bold">Origem</span><br>' + '<span class="origem">' + origem + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Destino</span><br>' + '<span class="destino">' + destino + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">KM</span><br>' + '<span class="km">' + distancia + '</span>' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Veículo</span><br>' + '<span class="veiculo">' + carro + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Veículo Atualizado</span><br>' + '<input type="text" class="veiculo_atualizado">' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Moto</span><br>' + '<span class="moto">' + moto + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Moto Atualizado</span><br>' + '<input type="text" class="moto_atualizado">' + '</div>' + '<div class="col-1">' + '<span class="font-weight-bold">Caminhão</span><br>' + '<span class="caminhao">' + caminhao + '</span>' + '</div>' + '<div class="col-2">' + '<span class="font-weight-bold">Caminhão Atualizado</span><br>' + '<input type="text" class="caminhao_atualizado">' + '</div>' + '</div>' + '</div>' + '</td>' + '</tr>';   $('.table-body').append(newRow); //let row = $('.removal-row:last');   // Calcula o valor atualizado e define nos campos diretamente // let veiculo_atualizado = carro + (carro * percentage) / 100; // let moto_atualizado = moto + (moto * percentage) / 100; // let caminhao_atualizado = caminhao + (caminhao * percentage) / 100; // console.log('PORCENTS: ', percentage); //console.log('Veiculo Atualizado:', veiculo_atualizado, 'Moto Atualizado:', moto_atualizado, 'Caminhao Atualizado:', caminhao_atualizado);   // Define os valores diretamente nos campos da nova linha // row.find('.veiculo_atualizado').val(veiculo_atualizado.toFixed(2)); // row.find('.moto_atualizado').val(moto_atualizado.toFixed(2)); // row.find('.caminhao_atualizado').val(caminhao_atualizado.toFixed(2));   arrayData.push({ carro, moto, caminhao, distancia, origem, destino, localidadeOrigem, localidadeDestino, removal_vehicle, removal_motorcycle, removal_tuck }); }   $('#copy_data_table').val(JSON.stringify(arrayData)); }   }); });   //javascript para o formulario de cadastro // $(document).ready(function (event) { $('#uf').change(function () { let code_city = $(this).val(); let deposit = localStorage.getItem('selected_deposit_id'); let action = route('removal.removal-values.cities', code_city); $.ajax({ type: "POST", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, data: { code_city: code_city },   success: function (data) {   $('#city').empty(); $('#deposit').empty();   for (let i = 0; i < data.cities.length; i++) { $('#city').append('<option value="' + data.cities[i].NM + '">' + data.cities[i].NM + '<option>'); }   if (data.deposits.length > 0) { for (let i = 0; i < data.deposits.length; i++) { $('#deposit').append('<option value="' + data.deposits[i].NM + '">' + data.deposits[i].NM + '<option>'); } } else { // $('#deposit').prop('disabled', true); // $('#city').prop('disabled', false); }   $('#city').trigger('change'); } });   });   $('#deposit').on('change', function () { depositId = $(this).val(); localStorage.setItem('selected_deposit_id', depositId); });   $('#uf_destiny').change(function () { let code_city = $(this).val(); let depositDestiny = localStorage.getItem('selected_deposit_destiny_id'); let action = route('removal.removal-values.cities', code_city); $.ajax({ type: "POST", url: action, headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, data: { code_city: code_city },   success: function (data) {   $('#city_destiny').empty(); $('#deposit_destiny').empty();   for (let i = 0; i < data.cities.length; i++) { $('#city_destiny').append('<option value="' + data.cities[i].NM + '">' + data.cities[i].NM + '</option>'); }   if (data.deposits.length > 0) { // $('#deposit_destiny').prop('disabled', false); //$('#city_destiny').empty(); // $('#city_destiny').prop('disabled', true); for (let i = 0; i < data.deposits.length; i++) { $('#deposit_destiny').append('<option value="' + data.deposits[i].NM + '">' + data.deposits[i].NM + '</option>'); } } else { // $('#deposit_destiny').prop('disabled', true); // $('#city_destiny').prop('disabled', false); }   $('#city_destiny').trigger('change'); } }); });   $('#deposit_destiny').on('change', function () { let depositDestinyId = $(this).val(); localStorage.setItem('selected_deposit_destiny_id', depositDestinyId); });   }); </code>
    • Por gersonab
      Bom dia a todos, estou usando o datatable com uma consulta mysql e funciona 100% , meu único problema é na hora que eu exporto para pdf, este não vem com sua largura da tabela exportada em 100%, dependendo da situação ocupa apenas 30% da página, infelizmente após varias pesquisas ainda não encontrei uma forma de fazer.
      segue meu código de forma simples:
      $('#exportar').DataTable( { language: { url: '//cdn.datatables.net/plug-ins/1.13.7/i18n/pt-BR.json', }, dom: 'Bfrtip', order: [[ 0, 'desc' ]], buttons: [ 'pdfHtml5' ] } ); desde já agradeço toda ajuda possível
×

Informação importante

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