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;
}
}