Correction TD Algorithmique 5.3 Pile - 5.4 Liste 5.3 Pile



Documents pareils
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Université Bordeaux 1, Licence Semestre 3 - Algorithmes et struct...

Correction TD algorithmique

1 Année LMD-STSM Algorithmique et Programmation. Série de TD 2

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Algorithmique et structures de données I

Recherche dans un tableau

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

T. A. D. pile. Chapitre 7 (suite) Listes particulières. T. A. D. file. représentation chaînée de la file algorithmique. Files

Génie Logiciel avec Ada. 4 février 2013

Java Licence Professionnelle CISII,

Programmation C++ (débutant)/instructions for, while et do...while

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var - E mail : bij@agasc.fr / Tel : CONSIGNE N 1 :

CORRECTION EXERCICES ALGORITHME 1

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Programmation Objet - Cours II

I. Introduction aux fonctions : les fonctions standards

Conventions d écriture et outils de mise au point

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Cours de Programmation Impérative: Zones de mémoires et pointeurs

TRUCS & ASTUCES SYSTEME. 1-Raccourcis Programme sur le Bureau (7)

Algorithmes récursifs

Algorithmique et Programmation, IMA

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Programmation avec des objets : Cours 7. Menu du jour

Programmation sous QT

Série TD 3. Exercice 4.1. Exercice 4.2 Cet algorithme est destiné à prédire l'avenir, et il doit être infaillible! Exercice 4.3. Exercice 4.

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Créer une base de données

EXCEL TUTORIEL 2012/2013

SOMMAIRE. Travailler avec les requêtes... 3

Théorie des Langages

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Architecture des Systèmes d Information Architecture des Systèmes d Information

Exercices INF5171 : série #3 (Automne 2012)

Sommaire. Structure. Liste simplement chaînée ALGORITHME ET STRUCTURES DE DONNÉES II

Adama MBODJI MBODJ.SYSTEM

Algorithmique et Programmation

Les arbres binaires de recherche

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons

Cours d Informatique

Algorithmes de recherche

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Les structures de données. Rajae El Ouazzani

Les différents types de données et leurs opérations de base

Le langage C. Séance n 4

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Automatisation d'une Facture 4. Liste Déroulante Remises Case à cocher Calculs

Introduction à MATLAB R

#include <stdio.h> #include <stdlib.h> struct cell { int clef; struct cell *suiv; };

Chapitre 5 : Flot maximal dans un graphe

Cours Informatique Master STEP

Algorithme. Table des matières

Feuille TD n 1 Exercices d algorithmique éléments de correction

Plan du cours. Historique du langage Nouveautés de Java 7

Publication Assistée par Ordinateur

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Cours Programmation Système

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Programmation impérative

Algorithmique, Structures de données et langage C

INF601 : Algorithme et Structure de données

LE PROBLEME DU PLUS COURT CHEMIN

Arbres binaires de recherche

Séance d ED n 5 : HTML et JavaScript

Programme d Accès Communautaire / Atelier 4 Initiation à Microsoft Excel PLAN DE COURS 3 MICROSOFT EXCEL 4 LANCER EXCEL 4

NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur "TIJARA" 1

Application 1- VBA : Test de comportements d'investissements

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

LibreOffice Calc : introduction aux tableaux croisés dynamiques

Bases de programmation. Cours 5. Structurer les données

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Gestion distribuée (par sockets) de banque en Java

Université de Strasbourg UFR de Mathématique et d'informatique. L2 Informatique Semestres S3 et S4. Structures de Données et Algorithmes 1 et 2

FileSender par RENATER - Guide utilisateur

Informatique III: Programmation en C++

@telier d'initiation

Traduction des Langages : Le Compilateur Micro Java

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

TP, première séquence d exercices.

1. Introduction Création d'une requête...2

GanttProject : guide utilisateur

Utiliser une base de données

Licence de Biologie, 1ère année. Aide. [Aide 1] Comment utiliser l'explorateur Windows? Comment créer des dossiers?

Algorithmique & programmation

Structure d un programme

ARBRES BINAIRES DE RECHERCHE

point On obtient ainsi le ou les points d inter- entre deux objets».

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

Numbers en EPS UN TUTORIEL POUR LA! NOUVELLE VERSION DE NUMBERS EST! DISPONIBLE SUR TICEPS.FREE.FR. ticeps.free.fr

Groupe Eyrolles, 2006, pour la présente édition, ISBN :

Plan. 1 Cycles de développement. 2 Méthodes agiles, principes généraux. 3 Comment se passe un Sprint?

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.

PRISE EN MAIN D UN TABLEUR. Version OPEN OFFICE

MANUEL UTILISATEUR BALADEUR SANTÉ AUXILIAIRES MÉDICAUX ET SAGES-FEMMES C.D.C 1.40

Transcription:

Correction TD Algorithmique 5.3 Pile - 5.4 Liste 5.3 Pile Classe Pile<E> var sommet : entier var vals : Tableau<E> Methode Pile() vals nouveau Tableau <E> (?) sommet -1 Methode estvide() :booléen Renvoie (sommet=-1) Methode sommet() :E Si non estvide() Alors Renvoie (vals[sommet]) Methode empiler(val : E) :vide sommet sommet + 1 vals[sommet] val Methode depiler() :E var res : E Si non estvide() Alors res vals[sommet] sommet sommet 1 renvoie (res) Fin Classe 1/8

5.4 Liste 5.4.1 Implantation Cellule Classe Cellule<E> var val : E var suiv : Cellule Methode Cellule(valeur : E, suivant : Cellule) val valeur suiv suivant Fin Classe 5.4.2 Implantation Liste Utilisation d une cellule vide pour matérialiser la tête. Classe Liste<E> var debut : Cellule Methode Liste() debut nouvelle Cellule(X, null) Methode estvide() :booleen Renvoie (debut.suiv=null) Methode premier() :E Si (non estvide()) Alors Renvoie (debut.suiv.val) Methode dernier() :E Si (non estvide()) Alors cour debut.suiv Tant que (cour.suiv null) Faire Renvoie (cour.val) Methode element(i : entier) :E var pos : entier Si (i>0) et (i nbelement()) Alors cour debut.suiv pos 1 2/8

Tant que (pos i) Faire pos pos + 1 Renvoie (cour.val) Methode inserertete(val : E) :vide debut.suiv nouvelle Cellule(val, debut.suiv) Methode insererqueue(val : E) :vide cour debut Tant que (cour.suiv null) Faire cour.suiv nouvelle Cellule(val, null) Methode inserer(val :E, pos :entier) :vide var i : entier Si ((pos > 0) et (pos nbelement()+1) Alors cour debut i 1 Tant que (pos -1 i) Faire i i + 1 cour.suiv nouvelle Cellule(val, cour.suiv) Methode supprimertete() :vide Si (non estvide()) Alors debut.suiv debut.suiv.suiv Methode supprimerqueue() :vide Si (non estvide()) Alors cour debut Tant que (cour.suiv.suiv null) Faire cour.suiv null 3/8

Methode nbelement() :entier var res : entier var temp : Cellule res 0 temp debut.suiv Tant que (temp null) faire res res + 1 temp temp.suiv Renvoie (res) Fin Classe 4/8

5.4.3 Implantation Modifiée pour itérer Classe Liste<E> var debut : Cellule var curseur : Cellule Methode Liste() debut nouvelle Cellule(X, null) curseur debut Methode demarrer() :vide curseur debut Methode aelement() :booleen Renvoie (curseur.suiv null) Methode element() :E Si (aelement()) Alors Renvoie (curseur.suiv.val) Methode addelement(val : E) :vide curseur.suiv nouvelle Cellule(val, curseur.suiv) Methode delelement() :vide curseur.suiv curseur.suiv.suiv Methode avancer() :vide Si (aelement()) Alors curseur curseur.suiv Methode reculer() :vide Si (curseur debut) Alors cour debut tant que (cour.suiv curseur) faire curseur curseur.suiv fin tant que curseur cour 5/8

6/8

5.4.4 Utilisation Exercice 75 (Exécution d'un algorithme) Exécuter l'algorithme suivant : Algo TestListe Début Fin var l : Liste <entier> l nouvelle Liste() l.insererqueue(1) l.inserertete(2) l.inserertete(3) l.demarrer() l.inserer(4) l.inserer(5) l.avancer() l.inserer(6) l.demarrer() Tant que (l.aelement()) Faire Ecrire (l.element()) l.avancer() Exercice 76 (Suppression) Écrire une fonction prenant en paramètre une liste d'entier et qui supprime les éléments négatifs. Fonction supprneg(l : Liste<entier>) :vide fin fonction l.demarrer() Tant que (l.aelement()) faire Si (l.element() < 0) alors sinon fin si fin tant que l.delelement() l.avancer() 7/8

Fin Fonction Exercice 77 (Lecture interactive) On lit interactivement des entiers au clavier jusqu'à lire -1. Écrire un algorithme qui rempli une liste avec les valeurs saisies. Avantage : on ne connaît pas d'avance la taille de la liste. Algo SaisieListe Debut fin var l : Liste<entier> var i : entier l nouvelle Liste<entier>() Lire(i) Tant que (i -1) faire l.insererqueue(i) Lire(i) Fin tant que l.demarrer() Tant que (l.aelement()) faire Ecrire(l.element()) l.avancer() Fin tant que 8/8