Exercice 6.17: tri à la volée Terminé

Consigne

Ecrire un algorithme permettant de saisir 100 valeurs et qui les range au fur et à mesure dans un tableau. Cela s'appelle le tri à la volée (qui est une forme de tri par insertion)

Pseudo code

index, nextIndex, posMin, temp des NUMERIQUES
values un TABLEAU

DEBUT
    
    values = []

    POUR index 0 à 100
        ECRIRE "Entrez une valeur"
        LIRE value
        
        values[index]= value

        posMin = index
        
        POUR nextIndex (index + 1) à 100
            SI (values[nextIndex] < values[posMin])
                posMin = nextIndex
            FIN SI
        nextIndex SUIVANT

        temp = values[posMin]
        values[posMin] = values[index]
        values[index] = temp

    index SUIVANT
FIN

Réponse

25/05/2020 à 10h00
- Il semblerai qu'il y est un bug. Je reviens dessus dès que possible.
25/05/2020 à 10h05
- Conversion des valeurs en nombre (intergers).

Conversion

let loopLap = 0;
let values = [];

function javascript() {
    let output = document.querySelector('.response-displayer > .codeblock > pre#javascript');
        output.classList.add('show');
    let nValue = document.querySelector('input[name="value"]');

    if (loopLap < 100) {
        values[loopLap] = +nValue.value;
        nValue.value = "";
        nValue.placeholder = "Entrez la valeur n°" + (loopLap + 2);

        for (let index = 0; index < values.length; index++)
        {
            // index is temp the minest index
            // for every lap.
            let posMin = index;
        
            for (let nextIndex = index + 1; nextIndex < values.length; nextIndex++)
            {
                // If (value + 1) < current
                if (values[nextIndex] < values[posMin]) {
                    posMin = nextIndex;
                }
            }
        
            // Swap positions
            let temp = values[posMin];
            values[posMin] = values[index];
            values[index] = temp;
        }

        output.innerHTML = "[JS]: " + values;

        loopLap++;
    } else {
        output.innerHTML = "Plus de 100!";
    }    
}
// Already defined inside javascript.js
// let loopLap = 0;
// let values = [];

function jquery() {
    $('.response-displayer > .codeblock > pre').removeClass('show')
    let $output = $('.response-displayer > .codeblock > pre#jquery').addClass('show')
    let $nValue = $('input[name="value"]');
    
    if (loopLap < 100) {
        values[loopLap] = +$nValue.val();
        $nValue.val("");
        $nValue.attr("placeholder", "Entrez la valeur n°" + (loopLap + 2));

        for (let index = 0; index < values.length; index++)
        {
            // index is temp the minest index
            // for every lap.
            let posMin = index;
        
            for (let nextIndex = index + 1; nextIndex < values.length; nextIndex++)
            {
                // If (value + 1) < current
                if (values[nextIndex] < values[posMin]) {
                    posMin = nextIndex;
                }
            }
        
            // Swap positions
            let temp = values[posMin];
            values[posMin] = values[index];
            values[index] = temp;
        }

        $output.html("[jQuery]" + values);

        loopLap++;
    } else {
        $output.html("Plus de 100!");
    }
}
<?php

if ($_SESSION['loopLap617'] < 100)
{
    if(empty($_SESSION['loopLap617'])) {
        $_SESSION['values617'] = [];
        $_SESSION['loopLap617'] = 0;
    }
    
    $_SESSION['values617'][$_SESSION['loopLap617']] = intval($_POST['value']);
    $length = count($_SESSION['values617']);
    
    for ($index=0; $index < $length; $index++) { 
        $posMin = $index;
        
    
        for ($nextIndex = $index + 1; $nextIndex < $length; $nextIndex++) { 
            if ($_SESSION['values617'][$nextIndex] < $_SESSION['values617'][$posMin]) {
                $posMin = $nextIndex;
            }
        }
    
        $temp = $_SESSION['values617'][$posMin];
        $_SESSION['values617'][$posMin] = $_SESSION['values617'][$index];
        $_SESSION['values617'][$index] = $temp;
    }
    
    var_dump($_SESSION['values617']);
    
    $_SESSION['loopLap617']++;
}

Choisissez un language:

Entrez les valeurs nécessaires:

Résultat du code

Le résultat s'affichera après l'exécution du code.