Hind Elouedi Page 1 Chapitre 5 : Types de données composés Objectif général : M
Hind Elouedi Page 1 Chapitre 5 : Types de données composés Objectif général : Manipuler les types de données composés. I. Introduction I.1. Exemple introductif Jusque-là, et avec les structures de données simples qu’on a déjà définies (entier, réel, caractère, …), on n’est capable de définir que des variables de types simples. En effet, chaque variable ne peut contenir qu’une seule valeur à la fois, toute valeur qui lui sera affectée par la suite, détruit l’ancienne. On veut représenter l’ensemble des notes relatives à un ensemble d’étudiants d’une classe donnée dans un module. Soit la classe de première année informatique, le module étant "Algorithmique et structures de données". Le nombre d’étudiants est connu, soit 30. Il faudra alors déclarer 30 variables réelles indépendantes pour contenir chacune la note correspondant à un étudiant. Il serait alors plus commode te plus facile à manipuler si on avait une structure de données qui englobait toutes ses données. On parlera d’une Structure de données composée ou d’un Type de données composé. I.2. Classification des types composés Un type composé contient une collection d'informations réparties en plusieurs champs, accessibles individuellement ou collectivement. Un type composé (structuré) est homogène si toutes ses informations sont de même type et hétérogène dans le cas contraire. Type structuré homogène : Un tableau d'entiers, une chaîne de caractères. Type structuré hétérogène : Un enregistrement Etudiant contenant : Le numéro de la carte d'étudiant de type entier. Le nom de type chaîne de caractères. Le prénom de type chaîne de caractères. L'âge de type entier. L'adresse de type chaîne de caractères. II. Le type tableau Le type tableau est une structure de données composée, constituée d’éléments qui ont le même type, qu’on appelle type de base. Le nom d'un composant de tableau utilise une ou plusieurs valeurs d'indices appartenant à des types discrets spécifiés (Le type Entier en général). La valeur d'un objet tableau est une valeur composée constituée des valeurs de ses composants. Un objet tableau est caractérisé par le nombre d'indices, appelé dimension du tableau, les bornes inférieure et supérieure de chaque indice, et le type des composants (type de base). Lorsque l’indice est unique, le tableau est dit unidimensionnel (ou vecteur). Lorsque N indices sont nécessaires pour repérer une valeur, le tableau est dit à N dimensions (ou multidimensionnel). Les valeurs possibles d'un indice donné sont toutes les valeurs comprises entre les bornes inférieure et supérieure, bornes incluses ; cet intervalle de valeurs est appelé l'intervalle d'indice. Les opérations applicables sur les éléments de tableaux sont : Lecture, pour assurer le remplissage. Ecriture, pour la consultation ou l’affichage. Affectation pour la modification. Chapitre 5 : Types de données composés Hind Elouedi Page 2 Constante Binf = … --borne inférieure Bsup = … --borne Supérieure Type Dimension = … --intervalle Nom_Type1 = Tableau [Binf..Bsup] de Type_Base Nom_Type2 = Tableau [Dimension] de Type_Base Variable T : Nom_Type1 --déclaration d’une variable T de type Nom_Type1 En plus, on retrouve toutes les opérations et les fonctions applicables sur le type de base du tableau. II.1. Tableau unidimensionnel ou vecteur La définition d’un tableau unidimensionnel et d’une variable de ce type se fait comme suit : Figure 5.1 : Définition d’un tableau unidimensionnel Type_Base : est le type des composants du vecteur (Numérique, Caractère, Logique, Chaîne de caractères, Tableau, Enregistrement, Scalaire). Accès à un composant (une case) d'indice i : T[i] avec Binf i BSup Exemple On veut saisir 30 moyennes comprises entre 0 et 20 et les stocker dans un vecteur de Réel nommé Moy, puis afficher son contenu à l'écran, enfin calculer et afficher la moyenne générale. Algorithme Moy_Générale Constante BSup = 30 Type Moyennes = Tableau [1..BSup] de Réel Variable Moy : Moyennes i : Entier Total, MoyG : Réel Début Total 0 Pour i de 1 à Bsup Faire Ecrire ("Saisir la moyenne N° : ", i) Répéter Lire (Moy[i]) Jusqu’à (Moy[i] 0 Et Moy[i] 20) Total Total + Moy[i] FinPour Ecrire("Voici les moyennes saisies : ") Pour i de 1 à Bsup Faire Ecrire (Moy[i]) FinPour MoyG Total/BSup Ecrire ("La moyenne générale est : ", MoyG) Fin Chapitre 5 : Types de données composés Hind Elouedi Page 3 Type Dim1 = … --type intervalle Dim2 = … --type intervalle Nom_Type = Tableau [Dim1, Dim2] de Type_Base Variable T : Nom_Type --déclaration d’une variable T de type Nom_Type II.2. Tableau bidimensionnel ou matrice La notation algorithmique d'un tableau bidimensionnel (à 2 dimensions) se présente ainsi : Figure 5.2 : Définition d’un tableau à deux dimensions Exemple Un tableau à 2 dimensions (bidimensionnel) correspond à la notion mathématique de matrice. Comme le montre la figure suivante, la 1ère dimension, horizontale, représente les lignes du tableau, et la seconde dimension, verticale, représente les colonnes. Tableau à deux dimensions (30,5) nommé Notes 1 2 3 4 5 1 10 12 11 15 9 2 8 13 12,5 12 10 3 15 12 13 10 17 … … … … … … 30 10,5 8,5 9 10 11,5 Le tableau Notes schématisé ci-dessus représente le cas des notes de 30 étudiants dans 5 matières. Il est donc constitué de 30 lignes et 5 colonnes et comporte 150 éléments de type Réel. On accède à l'étudiant numéro 3 dans la matière 5 par la notation Notes[3,5], et plus généralement à la valeur de la ligne l dans la colonne c par la notation Notes[l,c]. Exemple Remplissage du tableau bidimensionnel Notes Algorithme Matrice Constante Etudiants = 30 Matières = 5 Type Tab_Notes = Tableau [1..Etudiants, 1..Matières] de Réel Variable Notes : Tab_Notes NumEtud, NumMat : Entier Début Pour NumEtud de 1 à Etudiants Faire Ecrire ("Pour l'étudiant : ", NumEtud) Pour NumMat de 1 à Matières Faire Ecrire ("Saisir la note : ", NumMat) Répéter Lire (Notes[NumEtud,NumMat]) Jusqu’à (Notes[NumEtud,NumMat] 0 Et Notes[NumEtud,NumMat] 20) FinPour FinPour Fin 2ème dimension 1ère dimension Chapitre 5 : Types de données composés Hind Elouedi Page 4 Variable Nom : Chaîne --Nom est une variable de type chaîne de taille indéfinie Adresse : Chaîne[50] --Adresse est une variable de type chaîne de taille 50 III. Le type chaîne de caractères III.1. Définition Une chaîne de caractères est une structure de données permettant de représenter toute séquence de caractères : La longueur maximale que la chaîne est susceptible d'atteindre est de 255 caractères. Une chaîne est toujours entourée de guillemets ("chaîne"). On peut avoir une chaîne de caractères vide ("") ayant une longueur égale 0. Une variable de type Chaîne de caractères est déclarée comme suit : Figure 5.3 : Définition d’une chaîne de caractères Remarques La lecture, l'écriture et l'affectation sont des opérations applicables sur les variables de type Chaîne. Les opérateurs relationnels (=, , , , , ) s'appliquent aux chaînes de caractères. On peut, par exemple, tester l'égalité ou l'inégalité de 2 chaînes de même longueur. ch[i] permet d'accéder au ième caractère de la chaîne ch (avec i [1, Long(ch)]). Exemples "A" < "a" : vrai car ASC('A') est inférieur à ASC('a') "ISET Radés" > "ISET Sousse" : faux car ASC('R') est inférieur à ASC('S') "iset" "ISET" : vrai car ASC('i') est différent de ASC('I') III.2. Opérations de manipulation On définit un certain nombre de fonctions sur les chaînes qui sont les suivantes : Long (ch) : rend la longueur de la chaîne ch (en nombre de caractères). Long ("ISET") renvoie 4. Concat (ch1, ch2) : donne la chaîne obtenue par concaténation des ch1 et ch2. Concat ("ISET", " Sousse") renvoie "ISET Sousse". Sous_Chaîne (ch, pos, n) : ou Copier permet d’extraire n caractères de la chaîne ch à partir de la position pos. Sous_Chaîne ("ISET Sousse", 6, Long ("ISET Sousse")-5) renvoie "Sousse". Position (ch1, ch2) : retourne la position de la première occurrence de la chaîne ch1 dans la chaîne ch2 si ch1 est dans ch2, sinon 0. Position ("Sousse", "ISET Sousse") renvoie 6. Position ("Radés", "ISET Sousse") renvoie 0. Valeur(ch) : convertit la chaîne ch en une valeur numérique. Elle renvoie Zéro si la conversion est impossible. Valeur ("2020") renvoie 2020. Valeur ("ISETSO 2020") renvoie 0. Convert(nb) : convertit le nombre nb en chaîne de caractères. Valeur (2020) renvoie "2020". Chapitre 5 : Types de données composés Hind Elouedi Page 5 Type Type_Article = Enregistrement Champ1 : Type_Champ1 Champ2 : Type_Champ2 … ChampN : Type_ChampN FinEnregistrement Variable Art : Type_Article --déclaration d’une variable Art de type Type_Article Exemple Définir une variable, de type chaîne de 20 caractères, puis lire et écrire cette variable. Algorithme LectureChaîne Variable NomEtudiant : Chaîne[20] Début Ecrire ("Saisir le nom de l'étudiant ( 20 caractères) : ") Lire (NomEtudiant) --ex. Ben Abdallah Mohamed Ali Ecrire ("Le nom saisi : ", NomEtudiant) --le nom saisi est : Ben Abdallah Mohamed Fin Remarque Pour afficher tous les caractères saisis (c.à.d. Ben Abdallah Mohamed Ali), il faut augmenter uploads/Ingenierie_Lourd/ chap5-algo1-typcomp-2022.pdf
Documents similaires
-
70
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Apv 12, 2022
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 0.8634MB