Exercices C# - Entrées/Sorties Console
💬 Exercices C# - Entrées/Sorties Console
Maîtrisez les interactions avec l'utilisateur en C# ! Ces exercices vous apprendront à lire les données saisies par l'utilisateur
et à afficher des résultats formatés dans la console. Découvrez les méthodes Console.ReadLine()
, Console.Write()
et les techniques de formatage avancées.
👋 Salutation personnalisée
Créez un programme qui demande le nom de l'utilisateur et l'accueille personnellement.
Utilisez Console.ReadLine()
pour lire le nom et affichez "Bonjour [nom] !"
using System;
class Program
{
static void Main()
{
Console.Write("Quel est votre nom ? ");
string nom = Console.ReadLine();
Console.WriteLine($"Bonjour {nom} !");
}
}
🔢 Saisie de nombres
Demandez à l'utilisateur de saisir deux nombres et affichez leur somme.
N'oubliez pas de convertir les chaînes en nombres avec int.Parse()
ou Convert.ToInt32()
.
using System;
class Program
{
static void Main()
{
Console.Write("Premier nombre : ");
int nombre1 = int.Parse(Console.ReadLine());
Console.Write("Deuxième nombre : ");
int nombre2 = int.Parse(Console.ReadLine());
int somme = nombre1 + nombre2;
Console.WriteLine($"La somme de {nombre1} et {nombre2} est {somme}");
}
}
📏 Calcul d'aire
Calculez l'aire d'un rectangle en demandant la longueur et la largeur.
Formule : Aire = longueur × largeur
using System;
class Program
{
static void Main()
{
Console.WriteLine("=== Calcul d'aire d'un rectangle ===");
Console.Write("Longueur (en cm) : ");
double longueur = double.Parse(Console.ReadLine());
Console.Write("Largeur (en cm) : ");
double largeur = double.Parse(Console.ReadLine());
double aire = longueur * largeur;
Console.WriteLine($"L'aire du rectangle est {aire} cm²");
}
}
🎂 Calcul d'âge interactif
Demandez l'année de naissance et calculez l'âge de l'utilisateur.
Affichez un message personnalisé selon l'âge (mineur/majeur).
using System;
class Program
{
static void Main()
{
Console.Write("En quelle année êtes-vous né(e) ? ");
int anneeNaissance = int.Parse(Console.ReadLine());
int anneeActuelle = DateTime.Now.Year;
int age = anneeActuelle - anneeNaissance;
Console.WriteLine($"Vous avez {age} ans.");
if (age >= 18)
Console.WriteLine("Vous êtes majeur(e) !");
else
Console.WriteLine($"Vous serez majeur(e) dans {18 - age} an(s).");
}
}
🌡️ Convertisseur de température
Convertissez des degrés Celsius en Fahrenheit.
Formule : F = (C × 9/5) + 32
💡 Astuce
Utilisez double.Parse()
pour les nombres décimaux.
using System;
class Program
{
static void Main()
{
Console.WriteLine("=== Convertisseur Celsius → Fahrenheit ===");
Console.Write("Température en Celsius : ");
double celsius = double.Parse(Console.ReadLine());
double fahrenheit = (celsius * 9.0 / 5.0) + 32;
Console.WriteLine($"{celsius}°C = {fahrenheit:F1}°F");
// Message selon la température
if (celsius <= 0)
Console.WriteLine("Il fait très froid ! ❄️");
else if (celsius >= 30)
Console.WriteLine("Il fait très chaud ! ☀️");
else
Console.WriteLine("Température agréable ! 😊");
}
}
🛒 Calculateur de prix
Calculez le prix total d'un achat avec TVA.
Demandez le prix HT, le taux de TVA (en %), et calculez le prix TTC.
Affichez aussi le montant de la TVA.
using System;
class Program
{
static void Main()
{
Console.WriteLine("=== Calculateur de prix avec TVA ===");
Console.Write("Prix HT (€) : ");
double prixHT = double.Parse(Console.ReadLine());
Console.Write("Taux de TVA (%) : ");
double tauxTVA = double.Parse(Console.ReadLine());
double montantTVA = prixHT * tauxTVA / 100;
double prixTTC = prixHT + montantTVA;
Console.WriteLine("\n=== FACTURE ===");
Console.WriteLine($"Prix HT : {prixHT:F2} €");
Console.WriteLine($"TVA ({tauxTVA}%) : {montantTVA:F2} €");
Console.WriteLine($"Prix TTC : {prixTTC:F2} €");
}
}
📊 Tableau de données
Créez un tableau formaté avec les informations d'une personne.
Demandez nom, prénom, âge et ville, puis affichez-les dans un tableau aligné.
using System;
class Program
{
static void Main()
{
Console.WriteLine("=== Saisie d'informations ===");
Console.Write("Nom : ");
string nom = Console.ReadLine();
Console.Write("Prénom : ");
string prenom = Console.ReadLine();
Console.Write("Âge : ");
int age = int.Parse(Console.ReadLine());
Console.Write("Ville : ");
string ville = Console.ReadLine();
Console.WriteLine("\n" + new string('=', 40));
Console.WriteLine(" FICHE PERSONNELLE");
Console.WriteLine(new string('=', 40));
Console.WriteLine($"{"Nom",-12} : {nom}");
Console.WriteLine($"{"Prénom",-12} : {prenom}");
Console.WriteLine($"{"Âge",-12} : {age} ans");
Console.WriteLine($"{"Ville",-12} : {ville}");
Console.WriteLine(new string('=', 40));
}
}
💰 Formatage monétaire
Créez un programme qui affiche des montants avec différents formats.
Demandez un montant et affichez-le en euros, dollars et avec différentes précisions.
using System;
using System.Globalization;
class Program
{
static void Main()
{
Console.Write("Montant en euros : ");
double montant = double.Parse(Console.ReadLine());
double montantDollars = montant * 1.10; // Taux fictif
Console.WriteLine("\n=== FORMATAGE MONÉTAIRE ===");
Console.WriteLine($"Format standard : {montant:F2} €");
Console.WriteLine($"Format monétaire : {montant:C}");
Console.WriteLine($"Sans décimales : {montant:F0} €");
Console.WriteLine($"3 décimales : {montant:F3} €");
Console.WriteLine($"En dollars : ${montantDollars:F2}");
Console.WriteLine($"Notation comptable : {montant,15:F2} €");
if (montant >= 1000)
Console.WriteLine($"Avec séparateurs : {montant:N2} €");
}
}
📅 Formatage de dates
Affichez la date actuelle dans différents formats.
Montrez les formats court, long, personnalisé et dans différentes langues.
using System;
using System.Globalization;
class Program
{
static void Main()
{
Console.Write("Entrez votre nom : ");
string nom = Console.ReadLine();
DateTime maintenant = DateTime.Now;
Console.WriteLine($"\nBonjour {nom} !");
Console.WriteLine("\n=== FORMATS DE DATE ===");
Console.WriteLine($"Date courte : {maintenant:d}");
Console.WriteLine($"Date longue : {maintenant:D}");
Console.WriteLine($"Date et heure : {maintenant:F}");
Console.WriteLine($"Format ISO : {maintenant:yyyy-MM-dd}");
Console.WriteLine($"Format personnalisé: {maintenant:dddd dd MMMM yyyy}");
Console.WriteLine($"Heure seulement : {maintenant:HH:mm:ss}");
Console.WriteLine($"Format US : {maintenant.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture)}");
}
}
🎮 Menu interactif
Créez un menu interactif avec plusieurs options.
Le programme doit afficher un menu, lire le choix de l'utilisateur et exécuter l'action correspondante.
using System;
class Program
{
static void Main()
{
bool continuer = true;
while (continuer)
{
Console.Clear();
Console.WriteLine("╔══════════════════════════════╗");
Console.WriteLine("║ MENU PRINCIPAL ║");
Console.WriteLine("╠══════════════════════════════╣");
Console.WriteLine("║ 1. Calculer une aire ║");
Console.WriteLine("║ 2. Convertir température ║");
Console.WriteLine("║ 3. Calculer l'âge ║");
Console.WriteLine("║ 4. Quitter ║");
Console.WriteLine("╚══════════════════════════════╝");
Console.Write("\nVotre choix (1-4) : ");
string choix = Console.ReadLine();
switch (choix)
{
case "1":
CalculerAire();
break;
case "2":
ConvertirTemperature();
break;
case "3":
CalculerAge();
break;
case "4":
continuer = false;
Console.WriteLine("Au revoir !");
break;
default:
Console.WriteLine("Choix invalide !");
break;
}
if (continuer)
{
Console.WriteLine("\nAppuyez sur une touche pour continuer...");
Console.ReadKey();
}
}
}
static void CalculerAire()
{
Console.Write("Longueur : ");
double longueur = double.Parse(Console.ReadLine());
Console.Write("Largeur : ");
double largeur = double.Parse(Console.ReadLine());
Console.WriteLine($"Aire = {longueur * largeur} unités²");
}
static void ConvertirTemperature()
{
Console.Write("Température en °C : ");
double celsius = double.Parse(Console.ReadLine());
double fahrenheit = (celsius * 9.0 / 5.0) + 32;
Console.WriteLine($"{celsius}°C = {fahrenheit:F1}°F");
}
static void CalculerAge()
{
Console.Write("Année de naissance : ");
int annee = int.Parse(Console.ReadLine());
int age = DateTime.Now.Year - annee;
Console.WriteLine($"Vous avez {age} ans");
}
}
🧮 Calculatrice avancée
Créez une calculatrice interactive complète.
L'utilisateur saisit deux nombres et choisit l'opération. Gérez les erreurs (division par zéro, saisie invalide).
using System;
class Program
{
static void Main()
{
Console.WriteLine("🧮 CALCULATRICE AVANCÉE 🧮\n");
try
{
Console.Write("Premier nombre : ");
double nombre1 = double.Parse(Console.ReadLine());
Console.Write("Deuxième nombre : ");
double nombre2 = double.Parse(Console.ReadLine());
Console.WriteLine("\nOpérations disponibles :");
Console.WriteLine("+ : Addition");
Console.WriteLine("- : Soustraction");
Console.WriteLine("* : Multiplication");
Console.WriteLine("/ : Division");
Console.WriteLine("% : Modulo");
Console.WriteLine("^ : Puissance");
Console.Write("\nChoisissez une opération : ");
string operation = Console.ReadLine();
double resultat = 0;
bool operationValide = true;
switch (operation)
{
case "+":
resultat = nombre1 + nombre2;
break;
case "-":
resultat = nombre1 - nombre2;
break;
case "*":
resultat = nombre1 * nombre2;
break;
case "/":
if (nombre2 == 0)
{
Console.WriteLine("❌ Erreur : Division par zéro impossible !");
operationValide = false;
}
else
resultat = nombre1 / nombre2;
break;
case "%":
if (nombre2 == 0)
{
Console.WriteLine("❌ Erreur : Modulo par zéro impossible !");
operationValide = false;
}
else
resultat = nombre1 % nombre2;
break;
case "^":
resultat = Math.Pow(nombre1, nombre2);
break;
default:
Console.WriteLine("❌ Opération non reconnue !");
operationValide = false;
break;
}
if (operationValide)
{
Console.WriteLine($"\n✅ Résultat : {nombre1} {operation} {nombre2} = {resultat:F2}");
}
}
catch (FormatException)
{
Console.WriteLine("❌ Erreur : Veuillez saisir des nombres valides !");
}
catch (Exception ex)
{
Console.WriteLine($"❌ Erreur inattendue : {ex.Message}");
}
}
}
🎯 Jeu de devinette
Créez un jeu où l'utilisateur doit deviner un nombre.
Le programme génère un nombre aléatoire entre 1 et 100. L'utilisateur a des indices "trop grand" ou "trop petit".
using System;
class Program
{
static void Main()
{
Random random = new Random();
int nombreSecret = random.Next(1, 101);
int tentatives = 0;
int maxTentatives = 7;
bool trouve = false;
Console.WriteLine("🎯 JEU DE DEVINETTE 🎯");
Console.WriteLine("J'ai choisi un nombre entre 1 et 100.");
Console.WriteLine($"Vous avez {maxTentatives} tentatives pour le trouver !\n");
while (!trouve && tentatives < maxTentatives)
{
tentatives++;
Console.Write($"Tentative {tentatives}/{maxTentatives} - Votre nombre : ");
try
{
int proposition = int.Parse(Console.ReadLine());
if (proposition < 1 || proposition > 100)
{
Console.WriteLine("⚠️ Le nombre doit être entre 1 et 100 !");
tentatives--; // Ne pas compter cette tentative
continue;
}
if (proposition == nombreSecret)
{
trouve = true;
Console.WriteLine($"🎉 Bravo ! Vous avez trouvé en {tentatives} tentative(s) !");
if (tentatives <= 3)
Console.WriteLine("🏆 Excellent ! Vous êtes un expert !");
else if (tentatives <= 5)
Console.WriteLine("👍 Bien joué !");
else
Console.WriteLine("😅 Vous y êtes arrivé de justesse !");
}
else if (proposition < nombreSecret)
{
Console.WriteLine("📈 Trop petit ! Essayez plus grand.");
}
else
{
Console.WriteLine("📉 Trop grand ! Essayez plus petit.");
}
if (!trouve && tentatives < maxTentatives)
{
int ecart = Math.Abs(proposition - nombreSecret);
if (ecart <= 5)
Console.WriteLine("🔥 Vous êtes très proche !");
else if (ecart <= 10)
Console.WriteLine("🌡️ Vous vous rapprochez !");
}
}
catch (FormatException)
{
Console.WriteLine("❌ Veuillez saisir un nombre valide !");
tentatives--; // Ne pas compter cette tentative
}
Console.WriteLine();
}
if (!trouve)
{
Console.WriteLine($"😞 Dommage ! Le nombre était {nombreSecret}.");
Console.WriteLine("Essayez encore une prochaine fois !");
}
}
}