Les conditions — Correction d'exercices

Voici des propositions de solutions en mode console (via readline()). N’hésite pas à les adapter.

#1 — Positif ou négatif

Écris un programme qui demande un nombre à l’utilisateur et affiche s’il est positif, négatif ou nul.

Voir le corrigé
<?php
$nombre = (int) readline("Entrez un nombre : ");
if ($nombre > 0) {
    echo "Le nombre est positif.";
} elseif ($nombre < 0) {
    echo "Le nombre est négatif.";
} else {
    echo "Le nombre est nul.";
}

#2 — Majeur ou mineur

Demande l’âge de l’utilisateur et affiche “Tu es majeur” si âge ≥ 18, sinon “Tu es mineur”.

Voir le corrigé
<?php
$age = (int) readline("Quel âge as-tu ? ");
if ($age >= 18) {
    echo "Tu es majeur.";
} else {
    echo "Tu es mineur.";
}

#3 — Pair ou impair

Demande un nombre et indique s’il est pair ou impair.

Voir le corrigé
<?php
$nombre = (int) readline("Entre un nombre : ");
if ($nombre % 2 == 0) {
    echo "Le nombre est pair.";
} else {
    echo "Le nombre est impair.";
}

#4 — Notation d’un élève

À partir d’une note (0–20), affiche : ≥16 “Excellent”, ≥12 “Bien”, ≥10 “Passable”, sinon “Insuffisant”.

Voir le corrigé
<?php
$note = (int) readline("Note (0-20) : ");
if ($note >= 16) {
    echo "Excellent";
} elseif ($note >= 12) {
    echo "Bien";
} elseif ($note >= 10) {
    echo "Passable";
} else {
    echo "Insuffisant";
}

#5 — Catégoriser un âge

Affiche : <12 “Enfant”, 12–17 “Adolescent”, 18–64 “Adulte”, ≥65 “Senior”.

Voir le corrigé
<?php
$age = (int) readline("Âge : ");
if ($age < 12) {
    echo "Enfant";
} elseif ($age <= 17) {
    echo "Adolescent";
} elseif ($age <= 64) {
    echo "Adulte";
} else {
    echo "Senior";
}

#6 — Accès au site (||)

Accès autorisé si âge ≥ 18 OU autorisation parentale = oui.

Voir le corrigé
<?php
$age = (int) readline("Âge : ");
$autorisation = strtolower(trim(readline("Autorisation parentale ? (oui/non) ")));
if ($age >= 18 || $autorisation === "oui") {
    echo "Accès autorisé.";
} else {
    echo "Accès refusé.";
}

#7 — Année bissextile (&&, ||, !)

Une année est bissextile si divisible par 4 et (non divisible par 100 ou divisible par 400).

Voir le corrigé
<?php
$annee = (int) readline("Année : ");
if ( ($annee % 4 == 0 && $annee % 100 != 0) || ($annee % 400 == 0) ) {
    echo "L'année $annee est bissextile.";
} else {
    echo "L'année $annee n'est pas bissextile.";
}

#8 — Authentification (&&)

Si username == 'admin' ET password == '1234' → 'Connexion réussie', sinon erreur.

Voir le corrigé
<?php
$user = readline("Nom d'utilisateur : ");
$pass = readline("Mot de passe : ");
if ($user === "admin" && $pass === "1234") {
    echo "Connexion réussie !";
} else {
    echo "Identifiants incorrects.";
}

#9 — Jeu de dés

Tire un nombre 1–6 : 6 → Gagné, 1 → Perdu, sinon → Continue.

Voir le corrigé
<?php
$de = rand(1, 6);
echo "Résultat : $de\n";
if ($de == 6) {
    echo "Gagné !";
} elseif ($de == 1) {
    echo "Perdu...";
} else {
    echo "Continue à jouer.";
}

#10 — Feu tricolore (switch)

Demande la couleur (rouge, orange, vert) et affiche l’action.

Voir le corrigé
<?php
$couleur = strtolower(trim(readline("Couleur du feu (rouge, orange, vert) : ")));
switch ($couleur) {
    case "rouge":
        echo "Arrêtez !";
        break;
    case "orange":
        echo "Ralentissez.";
        break;
    case "vert":
        echo "Passez.";
        break;
    default:
        echo "Couleur inconnue.";
}

#11 — Calcul de remise

Si quantité > 10 → -10 %, si total > 100000 FCFA → -5 % supplémentaires.

Voir le corrigé
<?php
$quantite = (int) readline("Quantité : ");
$total = (float) readline("Total (FCFA) : ");
$remise = 0.0;

if ($quantite > 10) {
    $remise += 0.10;
}
if ($total > 100000) {
    $remise += 0.05;
}
$montantFinal = $total * (1 - $remise);
echo "Remise: " . ($remise*100) . "%\n";
echo "À payer: " . number_format($montantFinal, 0, ',', ' ') . " FCFA";

#12 — Moyenne & mention

Lis 3 notes, calcule la moyenne et affiche la mention (>=16 Très bien, >=14 Bien, >=12 Assez bien, >=10 Passable, sinon Insuffisant).

Voir le corrigé
<?php
$n1 = (float) readline("Note 1 : ");
$n2 = (float) readline("Note 2 : ");
$n3 = (float) readline("Note 3 : ");
$m = ($n1 + $n2 + $n3) / 3;

if ($m >= 16) $mention = "Très bien";
elseif ($m >= 14) $mention = "Bien";
elseif ($m >= 12) $mention = "Assez bien";
elseif ($m >= 10) $mention = "Passable";
else $mention = "Insuffisant";

echo "Moyenne: " . round($m, 2) . " - Mention: $mention";

#13 — Diagnostic de température

T > 38 → Fièvre ; T < 35 → Hypothermie ; sinon Normale.

Voir le corrigé
<?php
$t = (float) readline("Température : ");
if ($t > 38) {
    echo "Fièvre";
} elseif ($t < 35) {
    echo "Hypothermie";
} else {
    echo "Normale";
}

#14 — Salaire net

Si salaire brut > 500000 → 15 % d’impôts, sinon 10 %. Affiche le net.

Voir le corrigé
<?php
$brut = (float) readline("Salaire brut : ");
$taux = ($brut > 500000) ? 0.15 : 0.10;
$net = $brut * (1 - $taux);
echo "Taux: " . ($taux*100) . "%\n";
echo "Salaire net: " . number_format($net, 0, ',', ' ') . " FCFA";

#15 — Jeu : Devine le nombre

L’ordi choisit 1–10. L’utilisateur devine. Indique trop petit/grand ou bravo.

Voir le corrigé
<?php
$secret = rand(1, 10);
$trouve = false;
while (!$trouve) {
    $essai = (int) readline("Devine (1-10) : ");
    if ($essai < $secret) {
        echo "Trop petit.\n";
    } elseif ($essai > $secret) {
        echo "Trop grand.\n";
    } else {
        echo "Bravo !";
        $trouve = true;
    }
}
Besoin d'aide ?
Tuteur Virtuel
Bonjour ! Je suis votre tuteur virtuel. Comment puis-je vous aider avec ce cours aujourd'hui ?
Historique des conversations
Chargement...