Ch. 01 · Leçon 2
Les types de données
Ce que vous saurez faire
- →Identifier les principaux types de données simples utilisés en algorithmique
- →Déclarer une variable dans le langage Pascal selon son type
- →Distinguer les opérateurs applicables à chaque type de donnée
- →Évaluer des expressions arithmétiques, logiques et relationnelles
- →Manipuler les caractères et les chaînes de caractères
id: 33-232-types-de-donnees slug: 33-232-types-de-donnees titre: Les types de données chapitre: 1 chapitre_titre: Algorithmique et programmation lecon: 2 niveau: 4eme-sci ordre: 20 prerequis: [] duree_estimee_min: 40 mots_cles:
- type entier
- type reel
- type booleen
- type caractere
- chaine de caracteres
- pascal
- ascii langages:
- analyse
- pascal objectifs:
- Identifier les principaux types de données simples utilisés en algorithmique
- Déclarer une variable dans le langage Pascal selon son type
- Distinguer les opérateurs applicables à chaque type de donnée
- Évaluer des expressions arithmétiques, logiques et relationnelles
- Manipuler les caractères et les chaînes de caractères status: published source_pdf: 33_232.pdf source_pages:
- 1 kind: cours
Les types de données
En algorithmique, chaque donnée manipulée appartient à un type qui définit :
- l'ensemble des valeurs qu'elle peut prendre (domaine de définition),
- les opérateurs applicables sur ces valeurs,
- la place mémoire occupée.
On distingue ici quatre familles de types simples : entier, réel, booléen, caractère, ainsi que le type chaîne de caractères.
Les types numériques
Type entier
Domaine de valeurs : sous-ensemble de ℤ. Valeur maximale par défaut : 32767.
Opérateurs arithmétiques : +, -, *, div, mod
div: donne le quotient de la division entière.mod: donne le reste de la division entière.
Exemple :
23 div 7 = 3 (quotient)
23 mod 7 = 2 (reste)
Dans le TDO :
| Objet | Type/Nature |
|---|---|
| m, i, j | entier |
Dans le TDO :
| Objet | Type/Nature |
|---|---|
| m, i, j | entier |
var m, i, j : integer;
Type réel
Domaine de valeurs : sous-ensemble des nombres réels ℝ, environ entre 10⁻³⁸ et 10³⁸.
Un réel s'écrit sous forme mantisse / exposant. Exemple : 2,6 × 10² s'écrit en notation scientifique 2.6 E+02.
Opérateurs arithmétiques : +, -, *, / (division réelle).
Dans le TDO :
| Objet | Type/Nature |
|---|---|
| x, y | réel |
Dans le TDO :
| Objet | Type/Nature |
|---|---|
| x, y | réel |
var x, y : real;
Type booléen
Opérateurs logiques sur les booléens :
| Opérateur en analyse | Opérateur en Pascal | Rôle |
|---|---|---|
| NON | NOT | Négation |
| ET | AND | Conjonction |
| OU | OR | Disjonction |
| OUex | XOR | Ou exclusif |
Table de vérité :
| x | y | NON(x) | x ET y | x OU y | x OUex y |
|---|---|---|---|---|---|
| Faux | Faux | Vrai | Faux | Faux | Faux |
| Faux | Vrai | Vrai | Faux | Vrai | Vrai |
| Vrai | Vrai | Faux | Vrai | Vrai | Faux |
| Vrai | Faux | Faux | Faux | Vrai | Vrai |
Donner la valeur des expressions suivantes :
- (15 > 5) ET (3 < 6)
- (15 > 5) OU (2 > 5)
- (10 > 5) OU (20 > 40) ET (3 < 2)
Voir le corrigé
-
(15 > 5) ET (3 < 6) = Vrai ET Vrai = Vrai
-
(15 > 5) OU (2 > 5) = Vrai OU Faux = Vrai
-
(10 > 5) OU (20 > 40) ET (3 < 2)
Ordre de priorité :
ETavantOU, donc on évalue d'abord (20 > 40) ET (3 < 2) = Faux ET Faux = Faux.Puis Vrai OU Faux = Vrai.
Ordre de priorité :
- Les expressions entre parenthèses sont prioritaires.
NON>ET>OU=OUex
Dans le TDO :
| Objet | Type/Nature |
|---|---|
| flag, test | booléen |
Affectations :
- flag ← Vrai
- test ← 5 < 2
Dans le TDO :
| Objet | Type/Nature |
|---|---|
| flag, test | booléen |
Affectations :
- flag ← Vrai
- test ← 5 < 2
var flag, test : boolean;
begin
flag := true;
test := 5 < 2;
end.
Type caractère
Tous ces caractères sont ordonnés selon leurs codes ASCII (American Standard Code For Information Interchange), norme utilisée pour le codage binaire des caractères (256 caractères).
Quelques relations d'ordre :
"0" < "1" < ... < "9" < ... < "A" < "B" < ... < "Z" < ... < "a" < "b" < ...
Une variable de type caractère contient un seul caractère. L'espace " " est un caractère blanc.
Opérateurs sur les caractères :
Le type caractère est ordonné : les opérateurs relationnels sont définis : <, >, =, <=, >=, <>.
Exemple : "A" < "B" donne Vrai.
Dans le TDO :
| Objet | Type/Nature |
|---|---|
| c1, c2 | caractère |
Affectations :
- c1 ← 'A'
- c2 ← 'B'
Dans le TDO :
| Objet | Type/Nature |
|---|---|
| c1, c2 | caractère |
Affectations :
- c1 ← 'A'
- c2 ← 'B'
var c1, c2 : char;
begin
c1 := 'A';
c2 := 'B';
end.
Type chaîne de caractères
Dans le TDO :
| Objet | Type/Nature |
|---|---|
| nom | chaîne de 10 caractères |
| prenom | chaîne |
Exemples :
- Nom ← "" (chaîne vide)
- Prénom ← " " (espace)
- Ville ← "Sousse"
Dans le TDO :
| Objet | Type/Nature |
|---|---|
| nom | chaîne de 10 caractères |
| prenom | chaîne |
Exemples :
- Nom ← "" (chaîne vide)
- Prénom ← " " (espace)
- Ville ← "Sousse"
var
nom : string[10];
prenom : string; { taille indéfinie → max 255 }
begin
nom := 'Bac2018';
end.
Accès à un caractère d'une chaîne
Exemple :
CH ← "Tunisie"
c ← CH[1] { c contient 'T' }
CH[7] ← "a" { CH devient "Tunisia" }
Comparaison de chaînes
Exemples :
"Mohamed" > "Ali"→ Vrai"Said" < "Saleh"→ Vrai
Exercices d'application
Pour chacun des objets suivants, indiquer le type le plus adapté :
- L'âge d'un élève
- La moyenne générale d'un élève
- Le sexe d'un élève ('M' ou 'F')
- Le nom et prénom d'un élève
- Indicateur de présence (présent ou absent)
Voir le corrigé
- entier (BYTE suffit puisque l'âge tient entre 0 et 255)
- réel (présence de décimales)
- caractère (un seul caractère)
- chaîne de caractères
- booléen (deux états possibles)
Évaluer les expressions suivantes :
17 div 517 mod 54 div 94 mod 9
Voir le corrigé
17 div 5= 3 (quotient entier)17 mod 5= 2 (reste)4 div 9= 04 mod 9= 4
Soit CH ← "Informatique". Quel est le contenu de CH après les instructions suivantes ?
CH[1] ← "i"- Puis
CH[12] ← "s"
Voir le corrigé
- Après
CH[1] ← "i":CH = "informatique" - Après
CH[12] ← "s":CH = "informatiques"— attention, la longueur reste de 12, donc en réalitéCH = "informatiqus". Le 12ᵉ caractèreeest remplacé pars.
Quiz : types de données
Bien identifier le type de chaque donnée — la base pour écrire des algorithmes corrects.
Quiz (5 questions)
Quel **type** convient pour stocker la moyenne d'un élève (entre 0 et 20) ?
La valeur `'2'` (avec guillemets) est de type :
Quel **opérateur** retourne un booléen ?
L'expression `'A' < 'B'` vaut :
Combien d'octets occupe un type `réel` en Turbo Pascal ?