[Desafio JavaScript Vanilla] João e Maria - Desafio das Frutas

jlinebsilva
0

João e Maria são alunos da 3a. série primária.

Eles são os melhores alunos e sempre estão disputando a liderança da turma. E para receber elogios e notas usam de todos os recursos.

Além das notas, costumam presentear a professora com frutas.

A professora, notando a artimanha dos alunos, decidiu acirrar a competição.

"A partir de hoje, vou levar pra casa apenas 3 frutas."

Joao leva maças e Maria peras. Levam conforme suas mães compram, ou seja, há dias que um deles não leva nada, outros que ambos levam varias frutas. Chegavam a levar ate um máximo de 5 frutas!

"Vou levar as frutas de ambos, mas a preferencia vai ser para o aluno que tiver a melhor nota.", disse a professora.

Todos os dias, a professora fazia uma avaliação da matéria da véspera. No dia seguinte ela verificava o melhor e aceitava os presentes conforme a regra estabelecida e tomava nota dos resultados nesta planilha.

----------------------------------------------------------------------------

Dia Peras Maças Melhor Aluno Fruta 1 Fruta 2 Fruta 3


1 3 1 Maria

2 2 1 Joao

3 1 4 Maria

... ... ... ...

30 2 1 Joao


Este mês a professora levou____ maças e ____ peras.

----------------------------------------------------------------------------

Faca um programa que leia os dados dessa planilha, preencha as lacunas com as frutas que foram levadas e mostre o total de cada.

  • No algoritmo fazer o preenchimento de dados aleatórios.
  • Exibir a planilha preenchida.
  • Usar Javascript.

A regra é: levar no máximo 3 frutas começando pegar do que tiver melhor nota

Exemplos:

1) se João levou 3 maçãs e naquele dia ele teve a melhor nota, a professora vai levar 3 maçãs embora, não importando a quantidade de peras da Maria.

2) mas se João levou 2 maçãs e a Maria levou 2 peras, a professora tem que levar 3 frutas do mesmo jeito. De quem ela vai levar 2? Do aluno que tiver melhor nota

3) se João levar 0 macas, e Maria levar 1 pera vai começar a pegar do que tiver melhor nota. Se for a Maria, ela vai levar 1 pera e 0 maçãs

4) se João levar 5 macas, e maria levar 1 pera vai começar a pegar do que tiver melhor nota, se for a maria. ela vai levar 1 pera e 2 macas. 

Um detalhe, na ordem : fruta 1 - fruta 2 - fruta 3 ficaria pera - maca - maca

Dica:

<html> <head> 	<title>João e Maria</title> </head>  <body> 	<script> 		maximo = 5 		n = parseInt(Math.random() * maximo + 1) 		tabela = '<table border=1>' 		tabela += '<tr>' 		tabela += '<td>Numero Sorteado: </td>' 		tabela += '<td>' + n + '</td>' 		tabela += '</tr>' 		tabela += '</table><br><br>' 		document.write(tabela) 		asteriscos = '' 		for (i = 1; i <= n; i++) { 			asteriscos += '*' 		}  		plural = (n > 1) ? 's' : ''  		document.write('Hotel ' + asteriscos + ' (' + n + ') estrela' + plural + '!<br><br>') 		if (n == 5) { 			document.write('Numero 5 foi sorteado!!!') 		}  	</script> </body> </html>

Resolução

<!DOCTYPE html>
<html>
<head>
    <title>Joao e Maria - Desafio das Frutas</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 20px;
        }

        table {
            border-collapse: collapse;
            width: 100%;
            margin-bottom: 20px;
        }
       
        th, td {
            border: 1px solid #ddd;
            padding: 8px;
            text-align: center;
        }
       
        th {
            background-color: #f2f2f2;
        }
       
        .resultado {
            font-size: 18px;
            font-weight: bold;
            margin-top: 20px;
            padding: 10px;
            background-color: #f0f8ff;
            border-radius: 5px;
        }
    </style>
</head>
<body>
    <h1>Desafio João e Maria - Frutas para Professora</h1>
   
    <script>
        function gerarNumeroAleatorio(min, max) {
            return Math.floor(Math.random() * (max - min + 1)) + min;
        }
       
        function determinarFrutas(peras, macas, melhorAluno) {
            let fruta1 = "", fruta2 = "", fruta3 = "";
            let perasRestantes = peras;
            let macasRestantes = macas;
            let frutasLevadas = 0;
           
            if (melhorAluno === "Maria") {
                while (perasRestantes > 0 && frutasLevadas < 3) {
                    fruta1 = fruta1 || "Pera 🍐";
                    fruta2 = fruta2 || (frutasLevadas >= 1 ? "Pera 🍐" : "");
                    fruta3 = fruta3 || (frutasLevadas >= 2 ? "Pera 🍐" : "");
                    perasRestantes--;
                    frutasLevadas++;
                }
               
                while (macasRestantes > 0 && frutasLevadas < 3) {
                    fruta1 = fruta1 || "Maçã 🍎";
                    fruta2 = fruta2 || (frutasLevadas >= 1 ? "Maçã 🍎" : "");
                    fruta3 = fruta3 || (frutasLevadas >= 2 ? "Maçã 🍎" : "");
                    macasRestantes--;
                    frutasLevadas++;
                }
            } else {
                while (macasRestantes > 0 && frutasLevadas < 3) {
                    fruta1 = fruta1 || "Maça 🍎";
                    fruta2 = fruta2 || (frutasLevadas >= 1 ? "Maçã 🍎" : "");
                    fruta3 = fruta3 || (frutasLevadas >= 2 ? "Maçã 🍎" : "");
                    macasRestantes--;
                    frutasLevadas++;
                }
               
                while (perasRestantes > 0 && frutasLevadas < 3) {
                    fruta1 = fruta1 || "Pera 🍐";
                    fruta2 = fruta2 || (frutasLevadas >= 1 ? "Pera 🍐" : "");
                    fruta3 = fruta3 || (frutasLevadas >= 2 ? "Pera 🍐" : "");
                    perasRestantes--;
                    frutasLevadas++;
                }
            }
           
            return {
                fruta1: fruta1,
                fruta2: fruta2,
                fruta3: fruta3,
                perasLevadas: peras - perasRestantes,
                macasLevadas: macas - macasRestantes
            };
        }
       
        let tabela = '<table>';
        tabela += '<tr><th>Dia</th><th>Peras</th><th>Maçãs</th><th>Melhor Aluno</th><th>Fruta 1</th><th>Fruta 2</th><th>Fruta 3</th></tr>';
       
        let totalPeras = 0;
        let totalMacas = 0;
       
        for (let dia = 1; dia <= 30; dia++) {
            let peras = gerarNumeroAleatorio(0, 5);
            let macas = gerarNumeroAleatorio(0, 5);
            let melhorAluno = Math.random() < 0.5 ? "Maria" : "João";
           
            if (dia === 1) {
                peras = 3;
                macas = 1;
                melhorAluno = "Maria";
            } else if (dia === 2) {
                peras = 2;
                macas = 1;
                melhorAluno = "João";
            } else if (dia === 3) {
                peras = 1;
                macas = 4;
                melhorAluno = "Maria";
            } else if (dia === 30) {
                peras = 2;
                macas = 1;
                melhorAluno = "João";
            }
           
            let resultado = determinarFrutas(peras, macas, melhorAluno);
           
            totalPeras += resultado.perasLevadas;
            totalMacas += resultado.macasLevadas;
           
            tabela += '<tr>';
            tabela += '<td>' + dia + '</td>';
            tabela += '<td>' + peras + '</td>';
            tabela += '<td>' + macas + '</td>';
            tabela += '<td>' + melhorAluno + '</td>';
            tabela += '<td>' + resultado.fruta1 + '</td>';
            tabela += '<td>' + resultado.fruta2 + '</td>';
            tabela += '<td>' + resultado.fruta3 + '</td>';
            tabela += '</tr>';
        }
       
        tabela += '</table>';
       
        document.write(tabela);
       
        let resultado = '<div class="resultado">';
        resultado += 'Este mês a professora levou ' + totalMacas + ' maçãs e ' + totalPeras + ' peras.';
        resultado += '</div>';
       
        document.write(resultado);
    </script>
</body>
</html>

Postar um comentário

0 Comentários

Postar um comentário (0)
3/related/default