Cour Algo2

Click here to load reader

  • date post

    28-Dec-2015
  • Category

    Documents

  • view

    114
  • download

    4

Embed Size (px)

Transcript of Cour Algo2

Ministre de lEnseignement Suprieur et de la Recherche Scientifique Direction Gnrale des tudes Technologiques

SUPPORT DE COURS

Algorithmique et structures des donnes 2

Enseignants:Ahlem TayachiFatma LaribiMaali Ben KhadijaNesrine Ben Hadj HammoudaSameh Mansouri

AU 2009-2010 (Semestre 2)

Prsentation du cours

Fiche matire Domaine de formation: Sciences et technologies Mention: Technologie de linformatique (TI) Parcours: Tronc Commun Semestre: S2 Unit denseignement: Programmation et structures dynamiques Volume horaire: 45 heures (22,5 cours 22,5 TD) Coefficient: 2Rsum du coursLe cours dalgorithmique et structure de donnes est destin aux tudiants de premire anne du tronc commun de loption Technologies de lInformatique.Ce cours dfinit les enregistrements et la faon de les utiliser afin de pouvoir matriser par la suite les structures de donnes dynamiques.Il introduit ensuite les types de donnes abstraits pour pouvoir les implmenter dans la reprsentation des donnes et les diffrentes oprations associes.Aprs avoir spcifier le type de donne abstrait, ce cours prsente les structures linaires simples, telles que les listes, les piles et les files pour terminer par des structures pour des structures plus complexes telles que les graphes et les arbres.Enfin, ce cours introduit la notion de complexit algorithmique en donnant un aperu sur la complexit de quelques algorithmes.Mentionnons que ce cours ncessite comme pr-requis lalgorithmique et structures de donnes 1.Objectifs gnraux Ce cours vise approfondir les comptences acquises par lapprenant en algorithmique. Savoir crire des algorithmes se rapportant des structures dynamiques : listes, piles, files, arbres, etc. Etre capable de transformer un schma itratif simple en un schma rcursif.

Pr-requis Algorihtmique1 Programmation1Evaluation Interrogation Orale Un devoir surveill dune heure Examen Final crit de 2 heures sur tout le programmeMoyens Pdagogiques Expos informel Tableau Support du cours Travaux dirigs

Mthodologie

Le cours sarticule autour de 2 types dactivits, les cours intgrs et les sances de travaux dirigs. Les sries dexercices sont distribus aux tudiants et corriges en classe.

SommaireChapitre1: Les enregistrements1.1Les types11.1.1 Les types de base11.1.2 Les types simples11.1.3Les types complexes11.2Dfinition dun enregistrement21.2.1Utilit21.2.2Dfinition21.2.3Syntaxe21.2.4Reprsentation31.3Utilisation dun enregistrement31.3.1Dclaration31.3.2Accs31.3.3Exemple41.4Les types abstraits41.4.1 Dfinition51.4.2Exemple:51.4.3Signature dun type abstrait51.5 Exercices dapplication61.6 Solutions des exercices7Chapitre 2: Les pointeurs2.1Rappel102.1.1Mmoire centrale (MC)102.1.2Structure de la mmoire centrale102.1.3La notion dadresse102.2Les pointeurs102.2.1Dfinition102.2.2Dclaration dun pointeur112.2.3Cration dun pointeur112.2.4Utilisation dun pointeur122.2.5Suppression dune variable point132.2.6Arithmtiques sur les pointeurs132.2.7Les tableaux et les pointeurs162.2.8Les chaines des caractres et les pointeurs182.3Exercices dapplication182.4 Solution des exercices20Chapitre3: Les listes3.1Introduction273.2Dfinition273.3Oprations sur les listes273.4Reprsentation283.4.1Reprsentation graphique283.4.2Reprsentation des donnes283.5 Algorithmes de quelques oprations sur les listes29Chapitre4: Les piles et les files4.1Les piles334.1.1Prsentation334.1.2Manipulation dune pile344.2Les Files354.2.1Prsentation354.2.2Manipulation dune file36Chapitre5: La rcursivit5.1Rappel395.1.1Les procdures395.1.1.1 Dfinition395.1.1.2Les variables et les paramtres405.1.1.3Passage des paramtres415.1.2Les fonctions425.1.2.1Dfinition425.2Algorithmes rcursifs435.2.1Dfinitions rcursives435.2.2Fonctions rcursives445.2.2.1Dfinition445.2.2.2Excution dune fonction rcursive445.2.2.3Variables locales et paramtres des fonctions rcursives455.3Exercices dapplication465.4Solution des exercices47Chapitre6: Les arbres et les graphes6.1Les Arbres526.1.1Dfinition526.1.2Implmentation536.1.3Les fonctions daccs536.1.4Niveau et hauteur dun arbre:566.1.5Parcours dun arbre576.2Les graphes596.2.1Dfinition596.2.2 Implmentation:60Chapitre7: Les algorithmes de recherche rcursifs7.1Dfinition657.2Recherche dans une liste chaine657.2.1Recherche squentielle657.2.2Recherche par valeur657.2.3Recherche par position667.2.4Recherche dichotomique667.2.5Recherche dans une liste ordonne667.3Recherche dans un arbre binaire697.3.1Parcours en profondeur697.3.1.1Parcours prfix697.3.1.2Parcours infix707.3.1.3Parcours postfix717.3.2Application717.3.3Arbre binaire de recherche72Chapitre8: Complexit des algorithmes8.1Introduction748.2Dfinition748.3Calcul de la complexit748.4Type de complexit758.5Complexit de quelques algorithmes768.5.1Recherche du plus petit lment768.5.2Produit de matrice76 DS et examen

Chapitre 1:Les enregistrements

Vue densembleCette leon prsente la dfinition et lutilisation des enregistrements.

ObjectifsCe chapitre a pour objectifs de permettre aux tudiants dacqurir les connaissances de base se rapportant aux objectifs spcifiques suivants: Etre capable dutiliser et crer des nouveaux types de donnes selon le besoins du programme (les enregistrements). Savoir crire un enregistrement

Pr-requis Algorithmique 1

Dure 3 H

Elments de contenu1. Les types 2. Dfinition dun enregistrement3. Utilisation dun enregistrement4. Les types abstraits5. Exercices dapplication6. Solutions des exercices

7.

1.1 Les types 1.1.1 Les types de base - Toute variable utilise dans un algorithme doit avoir un type qui caractrise lensemble de valeur quelle peut prendre dans cet algorithme, ce type peut tre un type de base (prdfinit) ou un type compos qui est dfinit par lutilisateur. - Les types de base se divisent en 2 catgories: les types simples et les types complexe. 1.1.2 Les types simples Les types de simple qui peuvent tre utilis pour reprsenter les variables dun algorithme sont:- Entier: la variable peut prendre des valeurs entires positives ou ngatives, pour utiliser ce type on utilise le mot cl entier

- Reel: la variable peut prendre des valeurs relles, pour utiliser ce type on utilise le mot cl reel

- Caractere: la variable peut prendre tout caractre quon peut saisir avec un clavier standard, pour utiliser ce type on utilise le mot cl reel

- Booleen: la variable a 2 valeurs VRAI ou FAUX, pour utiliser ce type on utilise le mot cl booleen1.1.3 Les types complexesLes types simples servent pour dfinir les types complexes qui permettent de reprsenter des structures de donnes plus compliqus, ces types sont:- Tableau: la variable est forme par lunion de plusieurs cases mmoire qui contiennent chacune le mme type. la dclaration dun tableau se fait comme suit: nom : Tableau [i_deb .. i_fin] de type. i_deb et i_fin reprsentent lindice de dbut et lindice de fin du tableau.- Chane de caractre: Cest la concatnation de plusieurs caractres qui finissent par le marqueur de fin de chane. Cest ainsi un tableau de caractres qui contient comme dernier caractre un caractre spcial pour reprsenter le marqueur de fin de chane. La dclaration se fait comme suit: nom : chaine [ Max ] Max est le nombre maximum de caractre.1.2 Dfinition dun enregistrement1.2.1 UtilitContrairement aux types de base les types composs sont dfinit par lutilisateur. Les types de bases servent pour dfinir de nouveaux types composs. Ces nouveaux types servent pour reprsenter des structures de donnes plus complexes quon ne peut pas reprsenter par les types de bases. Exemple: Si on veut reprsenter les donnes relatives une personne telle que le nom et lge dans une seule variable ou une seule structure de donne, on ne peut pas faire a avec les types de bases et particulirement avec les tableaux. On peut utiliser un nouveau type appel enregistrement qui contient 2 champs, un pour reprsenter le nom de type chane de caractre et le 2me pour reprsenter lage de type entier. On remarque quon ne peut pas reprsenter la personne par un tableau car elle est forme de 2 types diffrents. Ainsi on dfinit le type personne par un enregistrement comme suit:Personne = Enregnom: chane [30]age: entierFinEnreg1.2.2 Dfinition Lenregistrement est une structure de donnes (ou un type) compose, qui est form par plusieurs autres structures de donnes de nature diffrentes. Il permet ainsi de les regrouper dans une seule structure de donnes.1.2.3 SyntaxeNom = EnregChamp1: typeChamps N: typeFinEnregOn dsigne par:- Nom: reprsente le nom de lenregistrement.- Champs 1N: les noms des champs qui constituent lenregistrement.- Type: est le type de chaque champ.1.2.4 Reprsentation Les enregistrements sont reprsents en mmoire sous forme de suite de zones contigus qui servent chacune reprsenter les diffrents champs, ces zones sont de taille diffrentes puisque chaque champ a un type diffrent. Par exemple lenregistrement personne sera reprsenter en mmoire comme suit:Octet 1Octet 2Octet 30Octet

nom age

1.3 Utilisation dun enregistrement1.3.1 Dclaration La dclaration dun enregistrement se fait comme tant un nouveau type dfinit par lutilisateur dans lalgorithme, il doit tre dclar dans la partie Type avant dtre utilis comme type de variable dans la partie Var.1.3.2 AccsLenregistrement qui est une structure de donnes compos de plusieurs champs nest pas accessible dans sa totalit, donc pour faire un accs un enregistrement on accde tous les champs un par un. Et pour utiliser un champ on crit le nom de la variable de type enregistrement suivi de point suivi du champ auquel on veut accder: Nom_enregistrement.champ_desire1.3.3 Exemple On veut crire un algorithme qui lit le nom, le prnom et la moyenne gnrale dun tudiant puis il affiche si cet tudiant a russi ou non selon que sa moyenne est >= 10 ou non. Utiliser un enregistrement pour reprsenter ltudiant.Algorithme ResultatType