On suppose que les éléments de la file sont munis d’un relation d’ordre, lorsque que l’on compare deux éléments on peut déterminer quel est le plus grand ou le plus petit grâce à la relation d’ordre qui lie ces deux éléments. Dans les schéma de programme suivant on implémente la relation d’ordre dans deux prédicats:
le prédicat Infer(Max,Val) délivre Vrai si Max < Val et Faux si Max >= Val le prédicat Super(Min,Val) délivre Vrai si Min > Val et Faux si Min <= Val la relation d'ordre est notée <,>,>=,<=
Schéma de programme de recherche du maximum dans une file
Schéma Programme Maximum Interface Objectif: Recherche du maximum dans une file séquentielle Variable valeur : Nombre -- La variable valeur est de type Nombre Variable file : File -- La variable file est de type File Résultat: Lecture de tous les éléments de la file Remarque: La file n'est pas modifiée Fin-Interface Fonction résultat = Maximum (file: File, max: Nombre) Déclaration Variable résultat: Nombre Variable val: Nombre Instruction Si Premier(file) Alors Prendre (file,max) -- Lecture du premier élément dans max val = max -- Permet de rentrer dans la boucle si file non vide Fin-Si TantQue Non (Dernier(file)) Faire Si Infer(max,val) Alors max = val Fin-Si Prendre (file,val) Avancer(file) Fin-Faire résultat = max Fin-Instruction Fin-Fonction Fin_Schéma
Note: Dans le cas ou la file comporte au moins un élément, on peut rentrer dans la boucle Tant-Que pour commencer la recherche. La fonction Infer permet de comparer le premier élément lu à un élément maximum de la file. Lors de la première itération, on ne connait pas encore de maximum, on prend alors pour maximum la valeur du premier élément de la file. Cette assignation est réalisée avant d’entrer dans la boucle d’itération ce qui permet d’amorcer la recherche.
Schéma de programme de recherche du minimum dans une file
Schéma Programme Minimum Interface Objectif: Recherche du minimum dans une file séquentielle Variable valeur : Nombre -- La variable valeur est de type Nombre Variable file : File -- La variable file est de type File Résultat: Lecture de tous les éléments de la file Remarque: La file n'est pas modifiée Fin-Interface Fonction résultat = Minimum (file : File, min : Nombre) Déclaration Variable résultat : Nombre Variable val : Nombre Instruction Si Premier(file) Alors Prendre (file,min) val = min Fin-Si TantQue Non (Dernier(file)) Faire Si Super(min,val) Alors min = val Fin-Si Prendre(file,val) Avancer(file) Fin-Faire résultat = min Fin-Instruction Fin-Fonction Fin_Schéma
Schéma de programme de recherche du minimum et du maximun dans une file
Schéma Programme MiniMax Interface Objectif: Recherche du minimum et du maximum dans une file séquentielle Variable valeur : Nombre -- La variable valeur est de type Nombre Variable file : File -- La variable file est de type File Résultat: Lecture de tous les éléments de la file Remarque: La file n'est pas modifiée Fin-Interface Procedure = MiniMax (file: File, min: Nombre, max: Nombre) Déclaration Variable val : Nombre Instruction Si Premier(file) Alors Prendre(file,min) val = min Fin-Si TantQue Non (Dernier(file)) Faire Si Super(min,val) Alors min = val Sinon Si Infer(max,val) Alors max = val Fin-Si Fin-Si Prendre (file,val) Avancer(file) Fin-Faire Fin-Instruction Fin-Fonction Fin_Schéma