



Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Cours de Algo de Mme Hind Elouedi pour L1-TI
Typology: Study notes
1 / 6
This page cannot be seen from the preview
Don't miss anything!




Objectif général : Manipuler les types de données composés.
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.
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.
Constante Binf = … --borne inférieure Bsup = … --borne Supérieure Type Nom_Type1 = Tableau [ Binf .. Bsup ] de Type_Base Variable T : Nom_Type1 --déclaration d’une variable T de type Nom_Type 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
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.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).
Concat (ch1, ch2) : donne la chaîne obtenue par concaténation des ch1 et ch2.
Sous_Chaîne (ch, pos, n) : ou Copier permet d’extraire n caractères de la chaîne ch à partir de la position pos.
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.
Valeur(ch) : convertit la chaîne ch en une valeur numérique. Elle renvoie Zéro si la conversion est impossible.
Convert(nb) : convertit le nombre nb en chaîne de caractères.
Type Type_Article = Enregistrement Champ1 : Type_Champ Champ2 : Type_Champ … 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 la taille de la variable NomEtudiant à 24 caractères au minimum.
IV.1. Définition Le type enregistrement ou article est une structure de données constituée d’un nombre fixe de composants nommés Champs qui peuvent être de types différents. La valeur d'un objet article est une valeur composée, constituée des valeurs de ses composants. Chaque champ a un nom. La déclaration d'un article se fait da la manière suivante : Figure 5.4 : Définition d’un enregistrement Type_Article : est l’identificateur de type article (enregistrement). Type_Champ : est le type des composants de l'article (Numérique, Caractère, Booléen, Chaîne de caractères, Tableau, Article…). Remarque L’accès à un champ se fait par l'identificateur de la variable article suivi d'un point (. ) puis l'identificateur du champ. Dans cet exemple, on fait : Art.Champ2 pour accéder au champ2. IV.2. Exemple On se propose de déclarer un type article représentant un étudiant, les différents champs relatifs sont les suivants : Nce : Numéro de la carte d’étudiant de type Entier (ou Chaîne[8] ). NP : Nom et Prénom de l’étudiant de type Chaîne[25]. DatNais : Date de naissance de l’étudiant de type Date qui est composée de : Jour : De type intervalle d’entier compris entre 1 et 31. Mois : De type intervalle d’entier compris entre 1 et 12.