Télécharger la présentation
1
Les Structures
2
Introduction : Imaginons que l’on veuille afficher les notes d’une classe d’élèves par ordre croissant avec les noms et prénoms de chaque élève. On va donc utiliser trois tableaux (pour stocker les noms, les prénoms et les notes). Lorsque l’on va trier le tableau des notes il faut aussi modifier l’ordre les tableaux qui contiennent les noms et prénoms. Mais cela multiplie le risque d’erreur. Il serait donc intéressant d’utiliser ce qu’on appelle les structures. Les structures contrairement aux tableaux servent à rassembler au sein d’une seule entité un ensemble fini d’éléments de type éventuellement différents. C’est le deuxième type complexe disponible en algorithmique. A la différence des tableaux, il n’existe pas par défaut de type structure c'est-à-dire qu’on ne peut pas déclarer une variable de type structure. Ce qu’on peut faire c’est de construire toujours un nouveau type basé sur une structure et après on déclare des variables sur ce nouveau type.
3
Le syntaxe de construction :
La syntaxe de construction d’un type basé sur une structure est : TYPE NomDuType = STRUCTURE attribut1 : Type attribut2 : Type . . . attributn : Type FIN STRUCTURE Le type d’un attribut peut être : Un type simple Un type complexe - Un tableau - Un type basé sur une structure
4
TYPE Etudiant = STRUCTURE nom : Chaîne prenom : Chaîne note : Réel
Exemple 1 : TYPE Etudiant = STRUCTURE nom : Chaîne prenom : Chaîne note : Réel FIN STRUCTURE
5
TYPE Date = STRUCTURE jour : Entier mois : Entier annee : Entier
Exemple 2 : TYPE Date = STRUCTURE jour : Entier mois : Entier annee : Entier FIN STRUCTURE
6
Structures : Variables & Tableaux
Après on peut déclarer des variables basé sur ce type. Par exemple : Variable Etud : Etudiant Donc Etud est une variable de type Etudiant. Il est possible de déclarer un tableau d’éléments de ce type Etudiant par exemple. On pourra écrire donc : Tableau Etud (20) : Etudiant Etud (1) représente le premier étudiant. Maintenant, pour accéder aux attributs d’une variable dont le type est basé sur une structure on suffixe le nom de la variable d’un point « . » suivi du nom de l’attribut. Par exemple, dans notre cas pour affecter le nom « Yassine » à notre premier étudiant, on utilisera le code suivant : Etud (1).nom = « Yassine »
7
Petit exemple complet :
8
Solution : TYPE Etudiant = STRUCTURE Nom : Chaîne Prenom : Chaîne
Note (3) : Réel Moyenne : Réel FIN STRUCTURE Variable i : Entier Variable som : Réel Variable etud : Etudiant DEBUT Ecrire « Entrez le nom » Lire etud.Nom Ecrire « Entrez le prénom » Lire etud.Prenom Ecrire « Entrez la première note » Lire etud.Note (1) Ecrire « Entrez la deuxième note » Lire etud.Note (2) Ecrire « Entrez la troisième note » Lire etud.Note (3) som POUR i = 1 A 3 som som + etud.Note (i) FIN POUR etud.Moyenne som / 3 Ecrire «La moyenne de l’étudiant » , etud.Nom , « » , etud.Prenom , « est : » , etud.Moyenne »
9
Exercice :
11
Structure d’un Algorithme :
12
Les fonctions de texte:
Une catégorie privilégiée de fonctions est celle qui nous permet de manipuler des chaînes de caractères. Nous avons déjà vu qu’on pouvait facilement " coller " deux chaînes l’une à l’autre avec l’opérateur de concaténation &. Mais ce que nous ne pouvions pas faire, et qui va être maintenant possible, c’est pratiquer des extractions de chaînes (moins douloureuses, il faut le noter, que les extractions dentaires). Tous les langages proposent peu ou prou les fonctions suivantes, même si le nom et la syntaxe peuvent varier d’un langage à l’autre :
13
Les fonctions de texte:
Len(chaîne) retourne le nbre de caractères d’une chaîne Exemple : Len("Salut") vaut 5 Len("Bonjour, ça va ?") vaut 16 Len("") vaut 0
14
Les fonctions de texte:
Mid(chaîne,n1,n2) renvoie un extrait de la chaîne, commençant au caractère n1 et faisant n caractères de long. Exemple : Mid("Salut, Monsieur",2,4) vaut ‘alut’ Mid("Bonjour, ça va ?",5,6) vaut ‘our, ç’ Mid("azert1245",8,2) vaut ’45’
15
Les fonctions de texte:
Left(chaîne,n1) renvoie les n caractères les plus à gauche dans chaîne. Exemple : Left("Salut, Monsieur",3) vaut ‘Sal’ Left("Bonjour, ça va ?",4) vaut ‘Bonj’ Left("azert1245",6) vaut ’azert1’
16
Les fonctions de texte:
Right(chaîne,n1) renvoie les n caractères les plus à droite dans chaîne. Exemple : Right("Salut, Monsieur",3) vaut ‘eur’ Right("Bonjour, ça va ?",4) vaut ‘va ?’ Right("azert1245",6) vaut ’rt1245’
17
Les fonctions de texte:
Trouve(chaîne1,chaine2) renvoie un nombre correspondant à la position de chaîne2 dans chaîne1. Si chaîne2 n’est pas comprise dans chaîne1, la fonction renvoie zéro. Exemple : Trouve("Salut, Monsieur","ut") vaut 4 Trouve("Bonjour, ça va ?","ça") vaut 10 Trouve("azert1245", "fg") vaut 0
18
Exercices : Ecrire un algorithme qui demande à l’utilisateur de saisir une chaîne de caractères et puis affiche la première partie qui contient (50%) de la chaîne saisie ensuite la deuxième partie de la chaîne. Ecrire une fonction qui renvoie le nombre de voyelles contenues dans une chaîne de caractères passée en argument. Au passage, notez qu'une fonction a tout à fait le droit d'appeler une autre fonction. Ecrire une fonction qui renvoie le nombre de fois l’existence d’une sous-chaîne dans une chaîne de caractères.
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.