Chapitre I: Les structures des données 4 éme technique 3 // Mlle : Mehrez Majda
Introduction : L’ ordinateur est une machine permettant de traité des objet. Un objet peut être une constante ou un variable de type simple ou structurée.
І- Les constantes et les variables : І.1. Les constantes : Activité: Donner la formule qui permet de calculer la surface d’une cercle ? S= п * R * R Comment faire pour arriver à augmenter la valeur de S ? On remarque que la valeur de п reste fixe et de valeur inchangeable, qu’on appelle constante.
Définition: Une constante est un objet dont la valeur reste inchangée tout au long d'un programme. Une constante est caractérisée par : Son nom. Sa valeur. Exemple : Pi = 3.14 ….
Syntaxe : PascalAlgorithmique : T.D.O ObjetType CONST = Valeur de la constante ; nom_de_constant e Constante = valeur de la constante Exemple : Const Pi = 3.14 ; Const Max =100; Pi Max Const Pi = 3.14 Const Max=100
І.1. Les variables: Activité: Refaire l’activité précédente en modifiant la valeur de R. On remarque que S et R prennent des valeurs différentes. R et S sont appelés des variables. R56 S
Définition: Une variable est un objet qui peut prendre plusieurs valeurs tout au long de l'exécution d'un programme. Une variable est caractérisée par : son nom. son type. son contenu.
Syntaxe : PascalAlgorithmique : T.D.O ObjetType Var = Valeur de la variable ; nom_de_variableType de la variable Exemple : Var R ; Var S; RSRS Réel
Remarques : Le choix de l’identificateur d’un objet doit être fait de manière le plus significatif possible. Lorsqu’on déclare une variable, on réserve en mémoire vive (RAM) un espace mémoire propre à la variable.
П- Les types de données: Activité: Observant le tableau ci-dessous qui contient les rangs, les moyennes de 3 élèves: On constate que ces valeurs sont de différent type, c’est pour cela on doit préciser le type de chaque donnée utilisée. RangMoyen E E E
Introduction : Le type permet de : Déterminer l'ensemble des valeurs qui peuvent être affecter à la variable en question. Fixer implicitement l'ensemble des opérateurs valides sur ces variables. Le type est désigner par un identificateur (ou un nom). Les types les plus connus sont : Le type entier : désigne les valeurs des nombres entiers relatifs. Le type réel : désigne les valeurs des nombres réels. Le type caractère : désigne les valeurs des caractères. Le type booléen : désigne les valeurs logiques. Le type chaîne de caractères : désigne les valeurs des chaînes de caractères.
П.1. Type numérique : П le type entier: Activité: Quelles sont les valeurs possibles qu’on peut accorder à une variable de type entier? Quels sont les opérateurs applicables sur une variable de type entier ?
Définition: Les valeurs de type entier forment un sous ensemble de Z (les entiers relatives). ces variables dans un ordinateur appartiennent à [-32768….32767] et qui occupent dans la mémoire 2octets. Les opérations arithmétiques sur les entiers: OpérateurDescription +L’addition -La soustraction * La multiplication /La division DIVLa division entière(euclidienne) MODLe reste de la division
Remarque : Si l'utilisateur tape un nombre entier en dehors de l'intervalle désigné pour les entiers, un message d'erreur sera affiché.
П Le type réel: Activité: Quelles sont les valeurs possibles qu’on peut accorder à une variable de type réel? Quels sont les opérateurs applicables sur une variable de type réel ?
Définition: Une variable de type réel correspond à ce qu’on appelle au nombres réels appartenant à un sous ensemble de R. Ces variables occupent dans la mémoire 6 octets. Les opérations arithmétiques sur les réels: OpérateurDescription +L’addition -La soustraction * La multiplication /La division
П Les fonctions arithmétiques standards : (voir livres pages 13) П.2. Type booléen : Définition: Ce type contient deux valeurs logiques vrai (true) ou faux (false). Opérateurs logiques sur les booléens : OpérateurDescription Algorithme Pascal Non NotNégation Et AndL’un et l’autre Ou OrL’un ou l’autre OuEx XORL’un ou l’autre mais pas les 2 ensembles.
Exemple 1: ABNOT (A)A and BA or BA xor B VVFVVF VFFFVV FVVFVV FFVFFF
Exemple 2: A = 12, B =20, C= 5, D= 10 (A D) F (A> C) or (B> D) V (D A ) ) V
Remarques: Il existe un ordre de priorité entre les opérateurs logiques Si deux opérateurs ont la même priorité, le calcul de l'expression logique se fera de gauche à droite. Dans tous les cas les opérations mises entre parenthèse sont prioritaires. Opérateurspriorité -, NotHaute *, /, Div, Mod, AndDeuxième +,-,Or, XorTroisième =,<>,, =Quatrième
П.3. Type caractère : Définition: Un caractère est représenté par le caractère lui_ même placé entre 2 apostrophes en algorithme et un en pascal. Exemples : 'a', 'A', '+', '1', '(',... Remarques: Une variable de type Char contient un caractère et un seul. L'espace est un caractère blanc. La valeur caractère peut être une constante ou une variable. Tout les caractères sont ordonnées selon leurs code ASCII ( de 0 à 255). Les fonctions prédéfinies : (voir livre page 17)
П.4. Type chaîne de caractère : Définition: Une chaîne de caractère est une entité composée d'une suite de n caractères. n étant compris entre 0 et 255. Si n = 0, on dit que la chaîne est vide. Les caractères relatifs à une chaîne sont représentés entre guillemets. Exemple: AlgorithmePascal « Mohamed »‘Mohamed’ « L’informatique »‘L »informatique’
Remarques: Les chaînes de caractères sont définies par une déclaration pouvant indiquer le nombre maximum de ces caractères. exemple: (1) Nombres de caractères maximum est de 10 (2) Nombres de caractères est indéfinie (255) * on pourra accéder en lecture et en écriture au iéme caractères d’une chaîne CH en utilisant la notion CH[i] ou 1<= i <= long(ch). ObjetType Nom (1)Chaîne[10] SNom (2)Chaîne
Exemple : Nom = « Mohamed » Nom[1]= « M » ; Nom[6]= «e »; Nom[8]= « i » La chaîne devient : «Mohamedi » Les fonctions et les procédures standard sur les chaînes : (voir livre page )
Activité : Soient les variables chaînes de caractères suivantes ainsi définies : CH := 'Baccalauréat'; CH1 := 'bac'; CH2 := 'Bac'; CH3 := 'bonne chance'; CH4 := 2000/2001; En utilisant les chaînes de caractères déjà définies écrire les instructions qui permettent de trouver les résultats suivants :
InstructionsRésultats CH5 := copy (CH, 6, 7);CH5 = 'lauréat' CH6 := CH[6];CH6 = 'l' CH7 := upcase (CH6)CH7 = 'L' CH8 := copy (CH3, 1, 3) + ' ' + CH1CH8 = 'bon bac' Val (CH4[1], N, E); ou bien N := POS (CH2, CH); E := POS (CH1, CH); N = 1 et E = 0 CH3[1] := upcase (CH3[1]); CH9 := concat(CH3,' ',CH2,' ',CH4); CH9 = 'Bonne chance Bac 2000/2001' Length (CH)12
П.5. Les tableaux : Activité: Écrire une analyse, un algorithme puis un programme Pascal permettant de calculer l'age moyen de 3 personnes.
1.Pré _ analyse: But : Calculer l'age moyen de 3 personnes. On doit savoir l'age de chaque personne. Exp. : Age de la 1ère personne = 4. Age de la 2ème personne = 18. Age de la 3ème personne = 24. Age moyen = ( )/3 = 16.
2.Analyse: NOM : Age_Moy S (Séquence) L.D.E (Liste des Définitions Explicites) O.U (Objets Utilisés) Résultat = Écrire (AM) AM (Age1+Age2+Age3)/3 Age1 = Donnée Age2 = Donnée Age3 = Donnée Fin Age_Moy AM Age1 Age2 Age3 Tableau de déclaration des objets Objet Nature / Type AM Age1 Age2 Age3 Réel Entier
3.Algorithme 0)DEBUT Age_Moy 1)Lire(A1) 2)Lire(A2) 3)Lire(A3) 4)AM (A1+A2+A3)/3 5)Ecrire (AM) 6)FIN Age_Moy
4.Traduction en Pascal: Program Age_Moy; VAR AM : real; A1, A2, A3 : integer; DEGIN Readln (A1); Readln (A2); Readln (A3); AM (Age1+Age2+Age3)/3; Writeln (AM); END.
Remarque : Soit à calculer l'age moyen de 30 personnes, l'utilisateur devrait définir 30 variables différentes pour saisir les valeurs des ages dans les variables qu'il à défini. L'utilisateur doit écrire 30 instructions de lecture. Quelle sera la solution donc ?
Soit à calculer l'age moyen de 100 personnes ? On doit manipuler donc 100 variables de type réel. Dans ce cas, le traitement est très long et l'algorithme devient plus complexe. Il est plus convenable alors de définir un espace mémoire qu'on l'appelle "âge" qui sera divisée en 100 parties égales indicées de 1 à 100. Ce groupement formera une nouvelle structure dite "Tableau" ou "vecteur" de 100 éléments.
Représentation en mémoire d'un tableau: Identificateur AGE …30 AGE[1]AGE[2]AGE[3]AGE[4]AGE[5]AGE[6]AGE[30] Indice de l'élément Valeurs rangées dans le tableau AGE Boite à ranger une valeur a)Définition: Un tableau est groupement de valeurs permettant de ranger un nombre fini d’éléments de même type et selon une disposition bien définie.
b)Déclaration: Première formulation: En algorithmique Tableau de déclaration des objets(TDO): Objet Nature / Type Identificateur_tabl eau Tableau de taille et de type_élément
Exemple : revenons à notre activité Tableau de déclaration des objets (TDO) Objet Nature / Type AM AGE Réel Tableau de 100 éléments entiers.
En Pascal: VAR Identificateur_tableau : ARRAY [Borne_inf.. Borne_Sup] OF type_élément ; Exemple : VAR AGE : ARRAY [ ] OF INTEGER; T1 : ARRAY [ ] OF STRING; T1 : ARRAY ['A'.. 'Z'] OF REAL;
Remarque : Si Borne inf et Borne_Sup de type entier alors : Le nombre d'éléments d'un tableau = Borne_Sup - Borne_ inf + 1. Si Borne inf et Borne_Sup de type caractère alors : le nombre d'éléments est ASCII(Borne_Sup) - ASCII(Borne_inf) + 1.
Deuxième formulation: En algorithmique: Tableau de déclaration des nouveaux types (TDNT) Type Type_tableau = Tableau [Borne_inf.. Borne_Sup]de type_élément Tableau de déclaration des objets(TDO) Objet Nature / Type Identificateur_ta bleau Variable de type_élément
Exemple : revenons à notre activité Tableau de déclaration des nouveaux types (TDNT) Type TAB = Tableau [ ]d'entier Tableau de déclaration des objets(TDO) Objet Nature / Type Rôle AM AGE Réel Tableau de type TAB Calcul de l'age moyen de 30 personnes. Tableau pouvant contenir l'age de 100 personnes.
En Pascal TYPE Type_tableau : ARRAY [Borne_inf.. Borne_Sup] OF type_élément; VAR Identificateur_tableau : Type_Tableau; Exemple : revenons à notre activité TYPE TAB = ARRAY [ ] of integer; VAR AGE = TAB;
Exercice d’application : voir livre 77 : exercice 6