TP Numéro 3

Lire ce que tape l'utilisateur

Ton programme peut poser des questions et écouter les réponses !

Rendre ton programme interactif

Jusqu'ici, ton programme faisait des choses avec des valeurs que toi avais écrites dans le code. Mais un vrai programme peut aussi demander des informations à l'utilisateur et réagir en fonction.

Pour lire ce que tape l'utilisateur au clavier, on utilise :

Console.ReadLine()

Premier test : écouter l'utilisateur

Crée un projet TP03-0 et recopie ce code :

using System;

class Program {
    public static void Main(string[] args) {
        Console.WriteLine("Tape 'bonjour' ci-dessous puis appuie sur Entrée.");
        string ligne1 = Console.ReadLine();
        Console.WriteLine(ligne1);

        Console.WriteLine("Maintenant tape ce que tu veux !");
        string ligne2 = Console.ReadLine();
        Console.WriteLine(ligne2);
    }
}

Lance le programme, tape du texte et appuie sur Entrée. Le programme lit ce que tu tapes et le réaffiche ! C'est un écho.

Faire un calcul avec les chiffres tapés

Maintenant on va aller plus loin : demander deux nombres à l'utilisateur et calculer leur somme. Mais attention, Console.ReadLine() renvoie toujours du texte (un string). Il faut d'abord le convertir en nombre avant de calculer !

Crée un projet TP03-1 :

using System;

class Program {
    public static void Main(string[] args) {
        Console.WriteLine("Entre un premier nombre entier.");
        string chiffre1 = Console.ReadLine();

        Console.WriteLine("Entre un second nombre entier.");
        string chiffre2 = Console.ReadLine();

        // On convertit les textes en nombres entiers
        int c1 = Convert.ToInt32(chiffre1);
        int c2 = Convert.ToInt32(chiffre2);

        int somme = c1 + c2;
        Console.WriteLine("La somme est égale à " + somme);
    }
}

Pourquoi convertir ?

Si tu tapais 5 au clavier, l'ordinateur reçoit le texte "5" (code ASCII 53). Ce n'est pas la même chose que le nombre 5 ! Convert.ToInt32() fait la conversion pour toi.

Question : Que se passerait-il si tu écrivais var somme = chiffre1 + chiffre2; sans convertir ?

Si tu entres 5 puis 6, tu obtiendrais… "56" ! Parce que + sur deux strings les colle ensemble au lieu de les additionner.

C'est à ton tour !

Tu sais faire la somme. Maintenant modifie le programme pour aussi afficher :

  • La soustraction : c1 - c2
  • La multiplication : c1 * c2
  • La division : c1 / c2

Attention à la division !

En C#, la division entière ignore le reste. Essaie 7 / 2 : tu obtiendras 3 et non 3.5 ! Pour avoir le résultat avec des décimales, il faut utiliser des variables de type double.