Exercice 4.7: compagnie d'assurance Terminé

Consigne

Une compagnie d'assurance automobile propose à ses clients quatre familles de tarifs identifiables par une couleur, du moins au plus onéreux : tarifs bleu, vert, orange et rouge. Le tarif dépend de la situation du conducteur :

• un conducteur de moins de 25 ans et titulaire du permis depuis moins de deux ans, se voit attribuer le tarif rouge, si toutefois il n'a jamais été responsable d'accident. Sinon, la compagnie refuse de l'assurer.
• un conducteur de moins de 25 ans et titulaire du permis depuis plus de deux ans, ou de plus de 25 ans mais titulaire du permis depuis moins de deux ans a le droit au tarif orange s'il n'a jamais provoqué d'accident, au tarif rouge pour un accident, sinon il est refusé.
• un conducteur de plus de 25 ans titulaire du permis depuis plus de deux ans bénéficie du tarif vert s'il n'est à l'origine d'aucun accident et du tarif orange pour un accident, du tarif rouge pour deux accidents, et refusé au-delà
• De plus, pour encourager la fidélité des clients acceptés, la compagnie propose un contrat de la couleur immédiatement la plus avantageuse s'il est entré dans la maison depuis plus de cinq ans. Ainsi, s'il satisfait à cette exigence, un client normalement "vert" devient "bleu", un client normalement "orange" devient "vert", et le "rouge" devient orange.

Ecrire l'algorithme permettant de saisir les données nécessaires (sans contrôle de saisie) et de traiter ce problème. Avant de se lancer à corps perdu dans cet exercice, on pourra réfléchir un peu et s'apercevoir qu'il est plus simple qu'il n'en a l'air (cela s'appelle faire une analyse !)

Pseudo code

AGE, PERMIS, ACCIDENT, ASSURANCE des entiers, CONTRAT une chaîne de caractères
DEBUT
    ECRIRE "Saisissez l'age de la personne."
    ECRIRE "Saisir le nombre d'année en possession du permis."
    ECRIRE "Le nombre d'accident."
    ECRIRE "Le nombre d'années dans l'assurance."

    LIRE AGE
    LIRE PERMIS
    LIRE ACCIDENT
    LIRE ASSURANCE

    SI (AGE > 25 ET PERMIS > 2)
        SI (ACCIDENT === 1)
            CONTRAT = "orange"
        SINON SI (ACCIDENT > 1)
            CONTRAT = "rouge"
        FIN SI
    SINON SI (AGE < 25 && PERMIS > 2 && ACCIDENT < 1 OU AGE > 25 11 PERMIS < 2 && ACCIDENT < 1)
        CONTRAT = "orange"
    SINON SI (AGE < 25 && PERMIS <= 2 && ACCIDENT < 1)
        CONTRAT = "rouge"
    SINON
        CONTRAT = "non accepté"
    FIN SI

    SI (ASSURANCE > 5)
        SI (CONTRAT === "vert")
            CONTRAT = "bleu"
        SINON SI (CONTRAT === "orange")
            CONTRAT = "vert"
        SINON SI (CONTRAT === "rouge")
            CONTRAT = "orange"
        FIN SI
    FIN SI

    ECRIRE "Le client a un contrat " + CONTRAT
FIN

Conversion

function javascript() {
    let output = document.querySelector('.response-displayer > .codeblock > pre#javascript');
        output.classList.add('show');
    let accident = document.querySelector('input[name="accident"]').value; // Le nombre d'accident
    let age = document.querySelector('input[name="age"]').value; // L'age du conducteur
    let assurance = document.querySelector('input[name="assurance"]').value; // Nombre d'années au sein de l'assurance
    let permis = document.querySelector('input[name="permis"]').value; // Le nombre d'années en possesion du permis

    let contrat;

    // Tarif vert
    if (age >= 25 && permis >= 2) {
        if (accident == 1) {
            contrat = "orange";
        } else if (accident > 1) {
            contrat = "rouge";
        } else {
            contrat = "vert";
        }
    }
    // Tarif orange
    else if (age <= 25 && permis >= 2 && accident < 1 || age >= 25 && permis <= 2 && accident < 1) {
        contrat = "orange";
    }
    // Tarif rouge
    else if (age <= 25 && permis <= 2 && accident < 1) {
        contrat = "rouge";
    }
    // Refusé
    else {
        contrat = "non accepté"
    }

    // Contrat fidélité
    if (assurance >= 5) {
        if (contrat === "vert") { contrat = "bleu"; }
        else if (contrat === "orange") { contrat = "vert"; }
        else if(contrat === "rouge") { contrat  = "orange"; }
    }

    output.innerHTML = "Le client a un contrat " + contrat;
} 
function jquery() {
    $('.response-displayer > .codeblock > pre').removeClass('show');
    let $output = $('.response-displayer > .codeblock > pre#jquery').addClass('show');
    let $accident = $('input[name="accident"]').val();
    let $age = $('input[name="age"]').val();
    let $assurance = $('input[name="assurance"]').val();
    let $permis = $('input[name="permis"]').val();

    let contrat;

    // Tarif vert
    if ($age >= 25 && $permis >= 2) {
        if ($accident == 1) {
            contrat = "orange";
        } else if ($accident > 1) {
            contrat = "rouge";
        } else {
            contrat = "vert";
        }
    }
    // Tarif orange
    else if ($age <= 25 && $permis >= 2 && $accident < 1 || $age >= 25 && $permis <= 2 && $accident < 1) {
        contrat = "orange";
    }
    // Tarif rouge
    else if ($age <= 25 && $permis <= 2 && $accident < 1) {
        contrat = "rouge";
    }
    // Refusé
    else {
        contrat = "non accepté"
    }

    // Contrat fidélité
    if ($assurance >= 5) {
        if (contrat === "vert") { contrat = "bleu"; }
        else if (contrat === "orange") { contrat = "vert"; }
        else if(contrat === "rouge") { contrat  = "orange"; }
    }

    $output.html("Le client a un contrat " + contrat);
}
<?php

$accident = intval($_POST['accident']);
$age = intval($_POST['age']);
$assurance = intval($_POST['assurance']);
$permis = intval($_POST['permis']);
$contrat;

// Tarif vert
if ($age >= 25 && $permis >= 2) {
    if ($accident == 1) {
        $contrat = "orange";
    } else if ($accident > 1) {
        $contrat = "rouge";
    } else {
        $contrat = "vert";
    }
}
// Tarif orange
else if ($age <= 25 && $permis >= 2 && $accident < 1 || $age >= 25 && $permis <= 2 && $accident < 1) {
    $contrat = "orange";
}
// Tarif rouge
else if ($age <= 25 && $permis <= 2 && $accident < 1) {
    $contrat = "rouge";
}
// Refusé
else {
    $contrat = "non accepté";
}

// Contrat fidélité
if ($assurance >= 5) {
    if ($contrat === "vert") { $contrat = "bleu"; }
    else if ($contrat === "orange") { $contrat = "vert"; }
    else if($contrat === "rouge") { $contrat  = "orange"; }
}

echo "Le client a un contrat $contrat";

Choisissez un language:

Entrez les valeurs nécessaires:

Résultat du code

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