1 Révisions. 2 Tableaux non contraints Déclaration du type : type Tvecteur = tableau ( intervalle dentiers) de entiers type Tvecteur is array (integer.

Slides:



Advertisements
Présentations similaires
Tris.
Advertisements

Initiation à la programmation et algorithmique cours 4
L’algorithmique, les séquences.
Le langage Z Pr ZEGOUR DJAMEL EDDINE
Algorithmique (suite)
Algorithmes et structures de données 7ème cours
Portée des variables VBA & Excel
Fonctions & procédures
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 9 Patrick Reuter.
DECLARATION DE VARIABLES
But de l’exercice 3.1 PREPARER UN ALGORITHME QUI EFFECTUE DEUX TACHES IMPORTANTES : PREMIERE TACHE : Grâce à la fonction aléatoire, un nombre compris entre.
But de lexercice 3.1 PREPARER UN ALGORITHME QUI EFFECTUE DEUX TACHES IMPORTANTES : PREMIERE TACHE : Grâce à la fonction aléatoire, un nombre compris entre.
3- Déclaration et accès aux objets
Problème de 8 dames: Sachant que dans un jeu des échecs, une dame peut pendre toute pièce se trouvant sur la colonne ou sur la ligne ou sur les diagonales.
Chapitre 6: Les procédures et les fonctions
Exercices Algorithmiques
Chap. 1 Structures séquentielles : listes linéaires
4. Les structures de tests
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
Initiation à la programmation et algorithmique cours 3
1)Boucle for 2)Boucle while
Utilisation des tableaux
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Structures de données linéaires
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Introduction à l’algorithmique
Les éléments de base de l’algorithmique
Python La structure itérative
TD2 2 IMACS Romaric GUILLERM Algo-Prog en Ada.
Algorithme de Bellman-Ford
Introduction à l’algorithmique
Algorithmique et programmation Informatique Cours 10 19/11/2001.
Semaine #1 INF130 par Frédérick Henri.
Semaine #1 INF135 par Frédérick Henri.
Points importants de la semaine Les tableaux. Rappel : les tableaux Quest-ce quun tableau ? Réponse : Un tableau est une série déléments de même type.
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
Chapitre 9 Les sous-programmes.
Les Algorithmes de Tri Introduction Tri par Sélection
Parcours d'une séquence de longueur fixe
1 Le fichier séquentiel Suite finie déléments dun même type Exemples : – fichier des livres dune bibliothèque – enregistrements sur un magnétophone – ensemble.
Les Opérateurs Ils régissent toutes les opérations ou transformations sur les valeurs des variables. Opérateur d'affectation Opérateurs arithmétiques Opérateurs.
Algo-Prog en Ada TD2 2 IMACS Romaric GUILLERM
L’essentiel du langage C
Python Fonction et procédure
Structures complexes Pr ZEGOUR DJAMEL EDDINE
Programmation en Java Tableaux NGUYEN Thi Minh Tuyen
Chapitre 6 Les traitements avancés
Les objets Les classes Pour structurer les variables élémentaires, on peut : juxtaposer des variables de même type, en déclarant un tableau juxtaposer.
Algorithmes de tri et de recherche
Les variables et les types standard des données
Specifications de Systemes Logiciels المواصفات الشكلية Software Specifications Chapitre 7.
Programmation linéaire en nombres entiers
Tables de compilation pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
 Syntaxe du langage PHP
1 Quatrième journée Les flots de données Les entrées/sorties Les flots de données Les entrées/sorties.
Structures de données avancées : Concepts du Multidimensionnel D. E ZEGOUR Institut National d ’Informatique.
Structures simples et tableaux Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
1 1 Huitième journée Quelques algorithmes. 2 Définition Description des tâches pour que celles-ci soient aisément programmables Différent d’une méthode.
Cours LCS N°4 Présenté par Mr: LALLALI
4 novembre 2002 Informatique Cours Les tables Gestion Recherche Séquentielle sûr - pas sûr Insertion - suppression Tassement Pas triée Triée.
8PRO107 Éléments de programmation Les adresses et les pointeurs.
8PRO107 Éléments de programmation Les tableaux. Étude de cas 1 Description du problème : Lire une liste d’entiers et l’afficher d’abord dans le même ordre.
Une aide pour débutant éclairé
Algorithmique Tableaux de données
Algorithmique Boucles et Itérations
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
L'exécution d'un programme nécessite l'utilisation des ressources de l'ordinateur : temps de calcul pour exécuter les opérations, et l'occupation de la.
1. Tri rapide ou Quicksort Principe : La méthode du Quicksort due au C.A. Hoare (1962) utilise les principes généraux de division et équilibrage. 2.
PhP 2. Tableaux et structures de contrôle. Les tableaux Définition –Rassemblement d’un ensemble de valeurs portant le même nom de variable –Types de tableaux.
Transcription de la présentation:

1 Révisions

2 Tableaux non contraints Déclaration du type : type Tvecteur = tableau ( intervalle dentiers) de entiers type Tvecteur is array (integer range <>) of integer; Le vecteur doit être contraint avant toute utilisation donc lors de la déclaration des variables du programme principal: vect : Tvecteur ( 1.. 8); mais grande utilité des tableaux non contraints lors du passage de paramètres dans les procédures ou les fonctions

3 Tableaux non contraints Chercher une valeur dans un tableau se traduit par une procédure dont les instructions restent les mêmes que le tableau contienne 10, 20 ou 1000 valeurs. Ce qui sera modifié, sera le nombre ditérations, suivant la position de cette valeur cherchée dans le tableau. Type Telement is private; type Tvecteur is array (integer range <>) of Telement;

4 Tableaux non contraints procedure RECHERCHE ( {D}vect : Tvecteur; {D} element_cherche : Telement; {R} position : entier ; {R} trouve : booléen) pré-requis : aucun action : Sil existe la valeur element_cherche, dans le tableau vect, alors met trouve à vrai et position prend la valeur du premier indice où element_cherche est rangé, sinon met trouve à faux et position reste indéterminé stratégie : parcours partiel de vect

5 Tableaux non contraints procedure RECHERCHE ( {D}vect : Tvecteur; {D} element_cherche : Telement ; {R} position : entier ; {R} trouve : booléen) I : entier début I premier indice de vect tant que I <= dernier indice de vect et alors non ( vect(I) = element_cherche) faire I I + 1 fin tant que trouve I <= dernier indice de vect position I fin RECHERCHE;

6 procedure RECHERCHE ( {D}vect : Tvecteur; {D} element_cherche : caractere ; {R} position : entier ; {R} trouve : booléen) I : entier début I premier indice de vect tant que I <= dernier indice de vect et alors non (vect(I) = element_cherche ) faire I I + 1 fin tant que trouve I <= dernier indice de vect position I fin RECHERCHE; Tableaux non contraints Parcours partiel

7 Procédure ou fonction générique procedure ECHANGE_ENTIER( {D/R} a, b : entier) pré-requis : aucun action : permute les deux valeurs entières contenues dans a et b variable : temp : entier début temp a a b b temp fin procedure ECHANGE_REEL( {D/R} a, b : réel) pré-requis : aucun action : permute les deux valeurs réelles contenues dans a et b variable : temp : réel début temp a a b b temp fin

8 Procédure ou fonction générique La généricité permet décrire une procédure modèle à partir de laquelle des procédures spécifiques pour chaque type pourront être créées et utilisées. Dans le cas des exemples précédents, seul le type diffère : le type va constituer un paramètre générique

9 Procédure ou fonction générique paramètres de généricité type TElement is private procedure ECHANGE_TOUT( {D/R} a, b : TElement) pré-requis : aucun action : permute les deux valeurs de même type TType contenues dans a et b variable : temp : TElement début temp a a b b temp fin

10 Procédure ou fonction générique Grâce à la procédure générique, il est maintenant possible de créer, en les spécialisant par un type précis, de nouvelles procédures. Cette opération sappelle instanciation des procédures procedure ECHANGE_CARACTERES is new ECHANGE_TOUT(character); procedure ECHANGE_ENTIER is new ECHANGE_TOUT(integer); procedure ECHANGE_REELS is new ECHANGE_TOUT(float); Il peut y avoir plusieurs instances dun même moule.

11 Procédure ou fonction générique Objet utilisable Moule non utilisable directement Instanciation avec paramètres effectifs Objet utilisable Objet générique procedure function with …..; pas de use appelé dans une autre procédure ou fonction avec la clause with

12 Encapsulation La plupart des méthodes préconisées pour la production de logiciels de qualité reposent sur la décomposition du logiciel en modules ou composants. On appelle composant une collection dentités et de ressources logicielles « encapsulées »

13 Encapsulation Composant Exemple de la vie quotidienne identificateur Déclaration des fonctionnalités mises à la disposition dun utilisateur Définition des fonctionnalités montre Donne lheure Construction interne de la montre interface Réalisation ou implémentation

14 Encapsulation PDate type Tdate est privé procedure lire (D:Tdate); procedure lire (D:Tdate) is begin …… end; identificateur Déclarations Définitions

15 Paquetages génériques identificateur Déclaration des fonctionnalités mises à la disposition dun utilisateur Définition des fonctionnalités interface réalisation ou implémentation generic paramètres de généricité

16 Paquetages génériques LIST_GEN Instance avec : type caractère procedure put Instance avec : type entier procedure ecrit Même programme

17 package PProduit package PDate package PMot package Pliste_Generique package PEnsemble_Produits

18 TProduit - Nom : TMot - code : entier - Date_péremption : TDate - PrixHT : réel Fonctionnalités qui permettent de traiter les données + procedure saisie ( p : out TProduit) ; + procedure affiche ( p : in TProduit) ; + function produitAlimentaire ( p : in TProduit) return boolean; + function lePrixTTC (p : in TProduit) return float; + function produitPerime ( p : in TProduit; dat : TDate) return boolean;

19 TDate - jour : entier - mois : entier - an : entier + procedure creDate ( D: out TDate; j : in integer; m : in integer; a : in integer) + function precede (D1, D2 : in TDate) return boolean

20 package PlistGenpackage PMot Instance pour la définition du type TMot

21 Types abstraits Un type de données abstrait est représenté par un composant logiciel dont linterface est le suivant : identificateur du type de données abstrait ensemble de base opérations définies sur tout objet de ce type Opération de construction ou destruction Opérations de modification Opérations de consultation itérateurs, dans le cas où l objet est une collection d éléments exceptions constantes éventuelles

22 Type abstrait Pile identificateur du type de données abstrait Tpile ensemble de base valeurs de type Telement

23 Type abstrait Pile Opérations de construction: CRÉER TPile crée une pile vide Opérations de modification EMPILE( TPile, TElement) TPile ajoute un élément à la pile DEPILE (TPile) TPile retire un élément de la pile Opérations de consultation VALEUR_SOMMET (TPile) TElement donne accès au dernier élément rangé dans la pile, en le laissant dans la pile VIDE (TPile) booléen permet de savoir si une pile est vide ou non

24 Déclaration de lunité pile Quelle que soit limplémentation, linterface de lunité de programmation sera la même, à savoir déclaration des procédures et fonctions suivantes : Soit un type TPile privé procedure CRÉER ( {R} P : TPile ) -- pré-requis : aucun -- action : crée une pile vide P procedure EMPILE ( {D/R} P : TPile ; {D} e : TElement ) -- pré-requis : aucun -- action : ajoute lélément e à la pile P (lajout se fait au sommet de la pile) procedure DEPILE ( {D/R} P : TPile ) -- pré-requis : aucun -- action : retire sil existe, lélément du sommet de la pile P

25 Déclaration de lunité pile fonction VALEUR_SOMMET ( {D} P : TPile ) retourne un Telement -- pré-requis : la pile nest pas vide -- résultat : renvoie la valeur qui est au sommet de la pile P fonction VIDE ( {D} P : TPile ) retourne un booleen -- pré-requis : aucun -- résultat : retourne vrai si la pile P est vide, faux sinon fonction HAUTEUR ({D} P : TPile ) retourne un entier -- pré-requis : aucun -- résultat : renvoie le nombre de valeurs rangées dans la pile P La réalisation verra la définition des corps de ces sous programmes

26 Récursivité Fonction Fib ( {D} n : entier) retourne 1 entier Résultat : calcule la n ième valeur de la suite Pré requis : Les calculs qui suivent seront toujours faits avec n positif ou nul Stratégie : calcul récursif

27 récursivité début si n <= 1 alors retourne 1 sinon retourne Fib (n -1) + Fib (n - 2) fin si fin

28 Récursivité et liste simplement chaînée On appelle décomposition canonique d une liste L non vide, sa décomposition en deux éléments : sa tête L(tête) son reste L(reste)

29 Récursivité et liste simplement chaînée Toute fonction ou procédure définie sur une liste L : peut si L nest pas vide, –traiter lélément de tête –sappeler récursivement sur L(reste) qui est de taille strictement inférieure à celle de L nécessite un traitement particulier, si L est vide

30 Récursivité et liste simplement chaînée tete reste tete ou bien liste vide liste composée

31 Notion darbre Un arbre est une structure à deux dimensions comportant un ensemble fini déléments, appelés nœuds. Les nœuds sont associés entre eux suivant un ordre hiérarchique strict. Il existe au plus, un seul chemin entre deux nœuds. Un arbre binaire est un arbre dont chaque nœud possède au plus deux fils

32 Un arbre binaire est : soit vide, soit constitué dun nœud racine possédant un sous arbre binaire gauche et un sous arbre binaire droit sous arbre droitsous arbre gauche racine

33 Parcours dans un arbre binaire : itérateurs Parcourir un arbre consiste à visiter les différents noeuds de larbre une fois et une seule dans un certain ordre. Les trois ordres de parcours habituels dans un arbre binaire sont : le préordre ou parcours préfixé le postordre ou parcours postfixé le symétrique ou parcours infixé

34 Parcours dans un arbre binaire : préordre si larbre nest pas vide alors traiter la racine de larbre effectuer le parcours préfixé de son sous arbre gauche effectuer le parcours préfixé de son sous arbre droit fin si

35 Arbre binaire de recherche Un arbre binaire de recherche est un arbre binaire tel que pour tout nœud, la valeur de ce nœud est supérieure aux valeurs de ses descendants de gauche, et inférieure à celles de ses descendants de droite. On ne peut parler darbre binaire de recherche que si une relation dordre sur les valeurs contenues dans larbre, est définie et utilisable On suppose que toutes les valeurs rangées dans les arbres binaires de recherche, sont différentes

36 Arbre binaire de recherche Pour ajouter une valeur dans un arbre binaire de recherche, deux méthodes : –adjonction de la valeur dans une feuille de larbre –adjonction de la valeur à la racine de larbre

37 Arbre binaire de recherche : exemple

38 Arbre binaire de recherche

39 Arbre binaire de recherche procedure INSERE_VALEUR ( RAC : in out TArbreBinaire; X : in TElement) Pré requis : RAC repère un arbre binaire de recherche Action: insère la valeur X dans larbre binaire de recherche repéré par RAC, en conservant les propriétés de cet arbre binaire de recherche

40 Arbre binaire de recherche procedure INSERE_VALEUR ( RAC : in out TArbreBinaire; X : in TElement) is begin if RAC = null then RAC := new TCelluleAB' (X, null, null); else if plusPetit (X, RAC.val) then INSERE_VALEUR( RAC.suivG, X); else INSERE_VALEUR( RAC.suivD, X); end if ; end INSERE_VALEUR;