Les structures de données Chapitre n° :6 I. Objectifs : Définir les notions de constante et de variable. Déclarer des variables de type simple, de type chaine de caractères et de type tableau. Distinguer les types simples du type tableau. II. Les constantes : Activité 1 : Écrire un programme qui permet de calculer et d’afficher la surface d’un disque. 1. Définition : On appelle constante un objet ayant une valeur fixe tout le long d’un algorithme. Une constante est caractérisée par : Son nom (un identificateur unique) Sa valeur
Les structures de données Chapitre n° :6 2. Déclaration d’une constante : a. Déclaration algorithmique : Objet Type / Nature Rôle Nom de la constante Constante = Valeur de la constante Exemple : Objet Type / Nature Rôle PI Constante = 3,14 Constante connue b. Déclaration en turbo Pascal : Const Nom_constante = valeur_constante ; Exemple : PI = 3,14 ;
Les structures de données Chapitre n° :6 III. Les variables 1. Définition : une variable est un objet pouvant prendre différentes valeurs lors de l’exécution d’un algorithme. Une variable est caractèrisée par : Son identificateur (nom) Son type Son contenu (sa valeur)
Les structures de données Chapitre n° :6 2. Déclaration d’une variable : a. Déclaration algorithmique : Objet Type / Nature Rôle Nom de la variable Type de la variable Rôle de la variable dans l’algorithme Exemple : Objet Type / Nature Rôle Surface Réel Surface du disque R Rayon du disque b. Déclaration en turbo Pascal : VAR Nom_variable : Type_variable ; Exemple : r,surface : REAL ;
Les structures de données Chapitre n° :6 Activité 2 : Écrire un programme qui permet de permuter les valeurs de deux variables de type entier saisies par l’utilisateur. Remarques: Une variable peut être utiliser pour : Sauvegarder des valeurs saisies par l’utilisateur. Sauvegarder des résultats obtenus par le programme, intermédiaires ou définitifs. stocker provisoirement (temporairement) des valeurs dans ce cas on l’appelle variable intermédiaire, temporaire ou auxiliaire.
Les structures de données Chapitre n° :6 IV. Les types de données 1. Les types numériques : A. Le type entier Le type entier permet de manipuler des valeurs dans l’ensemble Z Type entier (INTEGER) Taille en mémoire centrale : 2 octets Domaine de valeurs : entre –32 768 et 32 767 Autres types entiers prédéfinis : Byte, Word, Shortint, Longint a. Les opérateurs arithmétiques sur les entiers : On ajoutera aux opérateurs arithmétiques usuels (+, - , * et / ), deux autres opérateurs DIV et MOD définis ci-dessous : DIV : Donne le quotient dans la division entière. Exemple : 11 DIV 3 vaut 3 MOD : Donne le reste de la division entière. Exemple : 11 MOD 3 vaut 2 a b q vaut a DIV b r q r vaut a MOD b
Les structures de données Chapitre n° :6 b. Les opérateurs relationnels sur les entiers : on peut appliquer les opérateurs relationnels usuels en adoptant les notations suivantes : Notation algorithmique Notation en Turbo Pascal = ≠ <> ≤ <= < ≥ >= >
Les structures de données Chapitre n° :6 c. La déclaration d’une variable entière : Tableau de déclaration des objets Objet Type / Nature Rôle Nom_variable ENTIER Déclaration en Turbo Pascal VAR Nom_variable : INTEGER ;
Les structures de données Chapitre n° :6 B. Le type réel Le type réel permet de manipuler des valeurs dans l’ensemble IR Type réel (REAL) Taille en mémoire centrale : 6 octets Domaine de valeurs : entre –10 38 et 10 38 format scientifique 2.000000000 E +3 <=>2000 Autres types réels prédéfinis : Single, double, Extended, Comp a. Les opérateurs applicables sur les réels : Les opérateurs arithmétiques sur les réels sont les mêmes que sur les entiers exceptés MOD et DIV. Ces derniers ne sont appliqués qu’avec des entiers. Tous les opérateurs relationnels sont applicables sur des réels.
Les structures de données Chapitre n° :6 b. La déclaration d’une variable réelle : Tableau de déclaration des objets Objet Type / Nature Rôle Nom_variable REEL Déclaration en Turbo Pascal VAR Nom_variable : REAL ; c. Les fonctions arithmétiques standards :
Les structures de données Chapitre n° :6 2. Le type booléen Domaine de valeurs : Deux valeurs logiques « VRAI » ou« FAUX » (TRUE or FALSE) a. Les opérateurs logiques sur les booléens : Notation algorithmique Notation en Turbo Pascal Rôle NON NOT Négation ET AND Conjunction OU OR Disjunction OUex XOR Ou exclusif
Les structures de données Chapitre n° :6 Ci-dessous la table de vérités de ces opérateurs où P et Q des constantes, des variables ou des expressions logiques : P Q NON(P) P ET Q P OU Q P OUex Q FAUX VRAI Exemples : La proposition (7>5) ET (2<3) a la valeur VRAI La proposition (7>5) ET (5<3) a la valeur FAUX
Les structures de données Chapitre n° :6 b. Priorité des opérateurs : Opérateurs Priorité Catégorie -, NOT Haute Opérateur unaires *, /, DIV, MOD, AND Deuxième Opérateurs multiplicatifs +, - , OR, XOR Troisième Opérateurs additifs =, <>, <, >, <=, >= Quatrième Opérateurs relationnels Règles de priorité : Un opérande entre deux opérateurs de priorité différente est lié à l’opérateur de plus haute priorité. Un opérande entre deux opérateurs de même priorité est lié à celui de gauche. Les expressions entre parenthèses ont la priorité quel que soit le niveau interne.
Les structures de données Chapitre n° :6 c. La déclaration d’une variable booléenne : Tableau de déclaration des objets Objet Type / Nature Rôle Nom_variable BOOLEEN Déclaration en Turbo Pascal VAR Nom_variable : BOOLEAN ;
Les structures de données Chapitre n° :6 3. Le type caractère : On distingue plusieurs types de caractères : Les lettres alphabétiques : Les lettres en majuscules [‘’A’’...’’Z’’] et les lettres minuscules [‘’a’’..’’z’’] Les chiffres [‘’0’’..’’9’’] Les symboles comme ‘’ !’’, ‘’§’’, ‘’>’’, ‘’ç’’, ‘’è’’, … Les caractères non imprimables comme le retour chariot, la touche Échappe (Esc), … Une variable de type caractère occupe un octet en mémoire A chaque caractère correspond un code ASCII qui est un entier variant de 0 à 255. Notation : En analyse : "A" , En Pascal : ‘A’ Opérateurs relationnels : On peut comparer les caractères entre eux. Exemples : "a" ≠ "A" , "A" > "a" Vrai Faux a. La concaténation des caractères : On peut concaténer deux caractères ou plusieurs caractères en employant l’opérateur ‘’+’’. Exemples : Caractère c1 Caractère c2 c1+c2 ‘’a’’ ‘’b’’ ‘’ab’’ ‘’1’’ ‘’6’’ ‘’16’’ ‘’5’’ ‘’‘’
Les structures de données Chapitre n° :6 b. La déclaration d’une variable caractère : Tableau de déclaration des objets Objet Type / Nature Rôle Nom_variable CARACTERE Déclaration en Turbo Pascal VAR Nom_variable : CHAR ;
Les structures de données Chapitre n° :6 b. Les fonctions prédéfinies relatives au type caractère : Fonction Rôle Exemples ORD(c) Renvoie le code ASCII du caractère c. ORD(‘’A’’) vaut 65 ORD(‘’a’’) vaut 97 CHR(n) Renvoie le caractère dont le code ASCII est n. CHR(66) vaut ‘’B’’ CHR(98) vaut ‘’b’’ SUCC(c) Renvoie le caractère successeur de c. SUCC(‘’F’’) vaut ‘’G’’ SUCC(‘’0’’) vaut ‘’1’’ PRED(c) Renvoie le caractère prédécesseur de c. PRED(‘’b’’) vaut ‘’a’’ PRED(‘’0’’) vaut ‘’/’’ UPCASE(c) Convertit le caractère c en majuscule si c’est possible. UPCASE(‘’a’’) vaut ‘’A’’ UPCASE(‘A’’) vaut ‘’A’’ UPCASE(‘’5’’) vaut ‘’5’’ UPCASE(‘’ !’’) vaut ‘’ !’’
Les structures de données Chapitre n° :6 4. Le type chaîne de caractères : Une variable de type chaîne de caractères est une suite ordonnée et finie de caractères. Capacité : la longueur d’une chaîne peut varier entre 0 et 255. Notation : En analyse : "l’algorithmique" , En Pascal : ‘l’’algorithmique’ Une chaîne peut être manipuler caractère par caractère grâce à la notation nom_chaine[i]. i est l’indice (rang) du caractère voulu. Exemple : nom "Ben Foulen" nom[5] contient "F" Nom[4] "_" nom = "Ben_Foulen"
Les structures de données Chapitre n° :6 a. La déclaration d’une variable de type chaîne de caractères : Première formulation Tableau de déclaration des objets Objet Type / Nature Rôle Nom_variable CHAINE Déclaration en Turbo Pascal VAR Nom_variable : STRING ; Dans ce cas la chaîne peut atteindre 255 caractères
Les structures de données Chapitre n° :6 Deuxième formulation Tableau de déclaration des objets Objet Type / Nature Rôle Nom_variable CHAINE[taille_max] Déclaration en Turbo Pascal VAR Nom_variable : STRING[taille_max]; Dans ce cas, la chaîne à une taille maximale égale à celle spécifiée dans la déclaration
Les structures de données Chapitre n° :6 Exemple : Tableau de déclaration des objets Rôle Type / Nature Objet Le nom d’un élève CHAINE Nom Adresse de l’élève CHAINE[48] Adresse Déclaration en Turbo Pascal VAR Nom : STRING; Adresse : STRING[48]; b. Les fonctions et procédures prédéfinies standards sur les chaînes :
Les structures de données Chapitre n° :6 5. Les tableaux à une dimension : a. Définition : Un tableau unidimensionnel ou vecteur est une structure de données permettant de ranger un nombre fini d’éléments de même type. Un vecteur est caractérisé par : Un nom servant d’identificateur. Une taille. Le type des éléments qu’il contient.
Les structures de données Chapitre n° :6 Exemple: Soit le tableau « Moyenne » contenant 5 moyennes du type réel : 20 13.5 9.25 17.75 11 1 2 3 4 5 Remarques: Les cases d’un vecteur sont indicées. Les indices doivent être du type scalaire(entier, caractère, ..).
Les structures de données Chapitre n° :6 b. La déclaration d’un vecteur : Première formulation : En analyse : Tableau de déclaration des objets : Objet Type Rôle Nom_variable Tableau de taille_max de type_éléments En Turbo Pascale : VAR Nom_variable : ARRAY[Binf..Bsup] OF type_éléments ;
Les structures de données Chapitre n° :6 Deuxième formulation : En analyse : Tableau de déclaration nouveaux types : Type Nom_type = tableau de taille_max de type_éléments Tableau de déclaration des objets : Objet Type / Nature Rôle Nom_variable Nom_type
Les structures de données Chapitre n° :6 Déclaration en Turbo Pascal : TYPE Nom_type = ARRAY[Binf..Bsup] OF type_éléments ; VAR Nom_variable : Nom_type ;
Les structures de données Chapitre n° :6 c. Accès au ième élément d’un tableau T d’entiers : En analyse : Saisie : T[i] = donnée Affectation : T[i] 20 Affichage : écrire(T[i]) En Pascal : Saisie : readln(T[i]) ; Affectation : T[i] := 20 ; Affichage : writeln(T[i]);