TP Numéro 2

Le texte et les chiffres

Comment l'ordinateur stocke et affiche du texte

Comment afficher du texte ?

Tu sais déjà que l'ordinateur ne connaît que des nombres (des 0 et des 1). Alors comment fait-il pour afficher des lettres ? C'est le sujet de ce TP !

L'astuce : un tableau de correspondance

L'idée est simple : on crée un tableau qui associe chaque nombre à une lettre. Par exemple, voici un mini-tableau que j'invente :

Valeur décimale Lettre
0 A
1 B
2 C
3 D

Avec ce tableau, pour écrire "BAC", je stocke en mémoire les nombres 1, 0, 2. C'est une convention que j'ai inventée moi-même !

La vraie table : la table ASCII

Dans la vraie vie, on n'a pas eu à réinventer ça. Dans les années 1960, les ingénieurs ont créé la table ASCII (prononce : "as-ki"), qui est la première table de correspondance entre nombres et lettres utilisée en informatique.

Dans cette table, par exemple :

  • La lettre A a le code décimal 65
  • La lettre z (minuscule) a le code 122
  • Le chiffre 0 (le caractère) a le code 48
  • Le chiffre 9 (le caractère) a le code 57

🤔 Attention :

Le chiffre 42 comme nombre pour calculer, et le texte "42" comme texte à afficher, ce n'est pas la même chose en mémoire !

Texte vs Nombre : la différence

Imagine qu'on te demande de calculer "vingt plus vingt-deux". Tu dois d'abord convertir les mots en chiffres, faire le calcul, puis reconvertir le résultat en texte. L'ordinateur fait exactement la même chose !

En C#, on indique ce qu'on veut stocker en choisissant le type de la variable :

int calcul = 42;      // un entier, pour faire des calculs
string texte = "42";  // du texte, pour afficher ou manipuler

Les types de base :

  • int = nombre entier (sur 32 bits = 4 octets)
  • string = chaîne de caractères (du texte)
  • var = le compilateur choisit automatiquement le bon type

Conversion entre types

Si tu veux transformer du texte en nombre pour faire un calcul, tu dois utiliser la méthode Convert.ToInt32().

string texteAge = "15";
int age = Convert.ToInt32(texteAge); // Convertit "15" en nombre 15
int ageDansUnAn = age + 1;           // Maintenant on peut calculer !
Console.WriteLine(ageDansUnAn);      // Affiche 16

C'est à ton tour — TP 02

Crée un nouveau projet C# appelé TP02 et essaie ce programme :

using System;

class Program {
    public static void Main(string[] args) {
        int prix = 10;
        int quantite = 3;
        int total = prix * quantite;

        string message = "Le total est de " + total + " euros.";
        Console.WriteLine(message);

        // Essaie maintenant de convertir un string en int :
        string monAge = "12";
        int age = Convert.ToInt32(monAge);
        Console.WriteLine("Dans 5 ans j'aurai " + (age + 5) + " ans.");
    }
}

Expérimente !

Que se passe-t-il si tu écris var somme = "5" + "6"; ?

Tu obtiendras "56" et non pas 11 ! C'est parce que quand tu utilises + avec des textes (strings), ça les colle ensemble, ça ne les additionne pas.

À retenir

  • char = guillemets simples 'A' (1 seul caractère).
  • string = guillemets doubles "Texte" (plusieurs caractères).
  • La Table ASCII associe un numéro à chaque caractère.
  • On peut transformer un nombre en lettre avec (char)numero.