[MUSIQUE] [MUSIQUE] Nous allons maintenant voir un certain nombre de généralités à propos de la notion de type. Vous vous rappelez que quand on rédige un programme, on doit décrire deux types d'informations. D'une part les données qui vont être manipulées par le programme, aussi bien les données qui vont être fournies par le programme que les données qui vont être calculées par le programme, donc les résultats, et puis on doit aussi définir l'ensemble des instructions. Ces instructions, elles vont indiquer les traitements qui vont être appliqués aux données, et elles vont indiquer aussi comment ces traitements sont appliqués aux données. La description des données se fait sous forme d'une déclaration de variable. Donc on va déclarer, décrire des variables. Et parmi les caractéristiques qu'on va fournir à propos de ces variables, une particulièrement importante, ça va être d'indiquer quel est le type de la variable. Cette notion de type, elle revient en fait à indiquer la catégorie de valeur que la variable va pouvoir prendre. Une catégorie de valeur. On comprend bien que si on manipule des chiffres ou si on manipule des textes, le type de données qu'on manipule est différent, et donc on va avoir des traitements possibles qui vont être complètement différents en fonction de ces catégories de valeurs. Donc on a besoin de spécifier, pour chaque variable qu'on va déclarer dans un programme, qu'on va décrire, d'indiquer son type, et son type définira la catégorie des valeurs que la variable pourra prendre. Un type est en général défini d'une par son nom, un ensemble ou un intervalle de valeurs, une façon, évidemment, de représenter les valeurs de ce type, et puis un ensemble d'opérations qu'on va pouvoir appliquer aux valeurs du type de façon à produire de nouveaux résultats. Si on revient à l'exécution du programme sur l'ordinateur, dans le code du programme on va donc avoir une déclaration des variables. Ces variables, lors de l'exécution leur valeur va être stockée dans la mémoire de l'ordinateur. On se rappelle que toutes les données qui sont enregistrées dans la mémoire sont enregistrées dans un format binaire, mais évidemment, chaque catégorie, chaque type de donnée va avoir son propre sytème de codification binaire. Et donc c'est le fait d'attribuer un type à une variable qui va permettre à l'ordinateur, au programme de savoir quelle convention de codage binaire va devoir être utilisée pour stocker la valeur d'une variable en mémoire quand on attribue une valeur à cette variable, ou comment lire la valeur qui est stockée en mémoire pour pouvoir l'interpréter correctement et récupérer la valeur correspondant à la variable. La plupart des langages fournissent ce qu'on appelle des types prédéfinis. Ces types prédéfinis fournissent, on pourrait dire, des types de base qui vont permettre de faire les traitements les plus simples. Quels sont les traitements dont on va avoir besoin? On va avoir besoin de faire du calcul, on va avoir besoin d'écrire, et puis on va avoir besoin dans une certaine mesure de raisonner, de faire des raisonnements. Pour chacune de ces activités, on va retrouver trois familles de types prédéfinis qui existent dans le langage Scala mais qui existent aussi dans tous les langages de programmation. On aura des types numériques, que nous allons avoir l'occasion d'étudier un peu plus tard, principalement les types qui correspondent aux entiers et les types qui correspondent aux réels en mathématiques. Nous aurons des types textuels, où on différencie la lettre des mots. On verra qu'il y a deux types qui sont associés aux textes. Et puis, on a une famille de types qu'on peut qualifier de logiques, on verra quel est exactement leur nom, mais qui vont nous permettre de numériser, de calculer des raisonnements de façon à pouvoir les interpréter à l'intérieur de notre programme, et ils nous serviront principalement à contrôler le déroulement de ces programmes. Nous venons d'étudier la notion de type. Le type permet de définir la catégorie d'une variable et d'indiquer quels types de valeurs vont pouvoirs être stockés dans la variable, et indirectement quels types de traitements et d'opérations on va pouvoir appliquer à cette variable. On a vu aussi que les langages de programmation avaient un certain nombre de types prédéfinis ; et ces types prédéfinis, nous allons les étudier dans les leçons suivantes. [MUSIQUE] [MUSIQUE]