PC* Structure de pile

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimension: px
Commencer à balayer dès la page:

Download "PC* Structure de pile"

Transcription

1 Structure de pile I. Définition I.1 Introduction I.2 Opérations caractérisant une structure de pile II. Utilisation d une pile III. Implantation III.1 Utilisation d un tableau III.2 Utilisation d une liste III.3 Un peu de programmation objet (en xième lecture...) /6

2 I. Définition I.1 Introduction Dans ce chapitre, on présente la strucure de pile, qui correspond exactement à l image traditionnelle d une pile d assiettes posée sur une table ; en particulier, on ne peut accéder qu au dernier élément ajouté (appelé le sommet de la pile). L image associée à une pile est donc «dernier arrivé, premier sorti»(en anglais last in, first out, parfois abrégé en LIFO). On peut bien sûr aussi imaginer une structure où, comme dans une file d attente, les éléments sortent dans leur ordre d arrivée, le premier élément sorti correspondant à l élément le plus anciennement arrivé (en anglais first in, first out) : on parle alors de structure de file, non au programme! I.2 Opérations caractérisant une structure de pile Une pile est une structure de données munie de quatre opérations, dont l exécution se fait en temps constant : crée_pile() qui crée une pile vide ; empile(p, x) qui empile x sur la pile p ; dépile(p) qui supprime de la pile p le dernier élément empilé, et renvoie sa valeur ; pile_vide(p) qui renvoie un booléen indiquant si la pile est vide ou non. On peut illustrer la structure de pile par l image suivante : pile (stack) empile (push) dépile (pop) Remarque. L exécution de chacune de ces 4 fonctions se fait en temps constant (donc si on appelle au total N fois ces fonctions au cours d un algorithme, la compexité de notre algorithme sera en O(N)). II. Utilisation d une pile Lorsque l on utilise une pile, on ne se préoccupe pas de son implantation, et on n utilise que les quatre fonctions de la définition. Exemple. Définir un fonction echange(p) qui échange l ordre des deux éléments les plus hauts dans la pile p. On peut modifier la fonction précédente pour qu elle déclenche une erreur si p n a pas deux éléments. 2/

3 Exemple. Pour les problèmes suivants, la structure de pile est-elle adaptée : gérer un répertoire téléphonique ; sortir d un labyrinthe ; stocker l historique des actions effectuées dans un logiciel, et disposer de la commande undo ; gérer la file d attente d une imprimante connectée à un réseau ; vérifier le parenthésage d une expression algébrique. La pile est une structure de données appropriée quand : on veut stocker des éléments dont le nombre est variable, a fortiori dont le cardinal maximum est inconnu à l avance on peut ou on doit se contenter d accéder au dernier élément stocké. Réciproquement, si on veut pouvoir accéder à un élément quelconque à tout moment, il faudra utiliser un tableau. III. Implantation Plusieurs implantations peuvent être proposées. III.1 Utilisation d un tableau Une première idée peut être d utiliser un tableau, dont la première case contient l indice de la première case disponible dans le tableau. # utilisation de tableau def pile_vide(nbmax=10000): """initialisation d'une pile vide""" pile = np.zeros(nbmax, np.int64) pile[0] = 1 return pile def empile(p, e): """fonction pour empiler l'élément e sur la pile p""" p[p[0]] = e p[0] += 1 def depile(p): """fonction pour dépiler un élément de p""" p[0] -= 1 return p[p[0]] def est_vide(p): """fonction pour tester si une pile est vide ou non""" return p[0] == 1 Remarque. Les opérations dépile et empile modifient le contenu de la pile passée en argument, mais ce n est pas le contenu des «nouvelles» piles qui est renvoyé par ces fonctions ; en particulier, la fonction empile ne renvoie rien. Remarque. Il n est pas proposé ici de gestion des erreurs. Quels sont les avantages et les inconvénients de cette implantation? /6

4 III.2 Utilisation d une liste Une autre implantation naturelle de la pile est celle utilisant une liste, et s appuyant sur les méthodes de listes pop et append. def nouvelle_pile (): """renvoie une pile vide""" return [] def pile_vide (p): """teste si la pile <p> est vide""" return len(p) == 0 def empile (p, x): """empile <x> sur la pile <p>""" p.append(x) def depile (p): """Supprime de la pile <p> le dernier élement empile, renvoie la valeur de cet élement""" return p.pop() Remarque. Il n est pas proposé ici de gestion des erreurs. Quels sont les avantages et les inconvénients de cette implantation? III.3 Un peu de programmation objet (en xième lecture...) On peut définir une nouvelle classe dont les instances seront les piles. class Pile(object): """définition d'une classe d'objets de type pile : dépilage du dernier empilé""" def init (self, nbmax=1000): """création d'une instance de classe""" self.pile = np.zeros(nbmax) self.hauteur = 0 def empile(self, e): """méthode pour empiler l'élément e sur l'instance de classe""" self.pile[self.hauteur] = e self.hauteur += 1 def depile(self): """méthode pour dépiler un élément de l'instance de classe""" self.hauteur -= 1 return self.pile[self.hauteur+1] def est_vide(self): """méthode pour tester si une pile est vide ou non""" return self.hauteur == 0 Remarque. Il n est pas proposé ici de gestion des erreurs. Quels sont les avantages et les inconvénients de cette implantation? On peut proposer d enrichir la classe en ajoutant des méthodes. 4/

5 /6 Exo 1 Un labyrinthe est représenté par un tableau numpy que l on peut charger directement avec l instruction : lab = np.load('pile_3_tableau_labyrinthe.npy') print(lab.shape) # (59, 59) Le tableau est constitué des valeurs 0.0 (représentant un mur) et 1.0 (représentant un couloir). On souhaite savoir s il existe un parcours par les couloirs joignant deux points donnés. On décrit l algorithme à mettre en œuvre de la façon suivante, où une pile est utilisée pour stocker les cases encore à explorer : Partant de la case (i 0, j 0 ) supposée blanche, on grise celle-ci et on l empile. La sortie n étant pas trouvée, on dépile une case. Parmi ses quatre cases voisines potentielles, on grise et on empile celles correspondant à un couloir. (1) Écrire une fonction sortiepossible(lab,i0,j0,i1,j1), qui prend en argument un tableau et deux cases, et qui renvoie le booléen indiquant si on peut rejoindre la case (i 1, j 1 ) depuis la case (i 0, j 0 ). (2) Cet algorithme est-il adapté au tracé d un chemin joignant deux cases d un labyrinthe? Exo 2 Évaluation d une expression algébrique postfixée La notation habituelle, pour une expression algébrique, s appelle la notation infixe : sin(3.14/4) + 1 Cette notation nécessite l utilisation de parenthèses ou de règles de priorités. Une autre notation est la notation postfixe : / sin 1 + Il s agit simplement d une autre représentation de la même expression algébrique. Définition : On appelle expression postfixée toute expression qui est : un nombre ; une expression postfixée suivie d une fonction ; deux expressions postfixées suivies d un opérateur binaire. Remarque : cette définition est récursive, car on utilise les expressions postfixées pour définir les expressions postfixées. (1) Proposer un algorithme utilisant une pile permettant d évaluer une expression postfixée. (2) On suppose que l expression algébrique est donnée par une chaîne de caractères, les nombres, fonctions et opérateurs étant séparés par des espaces. Comment transformer cette chaîne en la liste des nombres, fonctions, opérateurs? (3) Implanter l algorithme proposée à la première question, en privilégiant une approche modulaire du problème. (4) Vérifier avec l expression postfixée proposée en exemple l ordre de grandeur du résultat obtenu. 2016

6 Comment gérer des erreurs? assert test, message Ne pas l utiliser à tord et à travers, ça ne remplace pas un if... Si la condition test n est pas satisfaite, l exécution est interrompue, une exception est levée et le texte message s affiche. On préférera utiliser assert à des conditionnelles if lorsque l on voudra vérifier que les arguments d une fonction respectent certaines conditions. Pour comprendre, essayons un parallèle avec un exo de math! Imaginez l exo de math suivant : f = ln, montrer que x 0, f(x) =qqc de compliqué : vous n écrirez pas : si x 0, f(x) n existe pas, mais sinon (i.e. si x > 0) j essaie de faire l exo! Vous direz : il y a une erreur d énoncé, donc je ne cherche pas à faire l exo. Pour assert, c est pareil : si les arguments d une fonction python ne vérifient pas certaines conditions, pas besoin d exécuter cette fonction, ni tout le programme qui en découle (c est voué à l échec dès le départ), donc on interrompt l exécution à la source via le assert. Un exemple concret : on définit 4 fonctions, puis on les teste : def f1(): assert 1 < 2, "erreur f1" return "valeur 1" def f2(): assert 1 > 2, "erreur f2" return "valeur 2" def f3(): if 1 < 2: print ("le test 3 passe") else: print ("le test 3 ne passe pas") return "valeur 3" def f4(): if 1 > 2: print ("le test 4 passe") return "valeur 4" 1er test a1 = f1() print(a1) #valeur 1 a3 = f3() print(a3) #(avec le if, toute f3 #le test 3 passe #valeur 3 exécutée) a4 = f4() print(a4) #(et fonctions suivantes aussi exécutées) #valeur 4 a5 = "coucou" print(a5) #coucou 2ème test : a1 = f1() print(a1) #valeur 1 a3 = f3() print(a3) #(avec le if, toute f3 exécutée) #le test 3 passe #valeur 3 a4 = f4() print(a4) #(et fonctions suivantes aussi exécutées) #valeur 4 a2=f2() print(a2) #(exécution arrêtée) #Traceback (most recent call last): # File "assert.py", line 34, in <module> # a2 = f2() # File "assert.py", line 9, in f2 # assert 1 > 2, "erreur f2" #AssertionError: erreur f2 a5 = "coucou" print(a5) #(fonction suivante pas exécutée) 6/

TD 5 : Les piles. PC* - Lycée Thiers 2015/2016

TD 5 : Les piles. PC* - Lycée Thiers 2015/2016 2015/2016 Exercice 1 : Pile renversée Corrigé Consignes Pour tous les exercices de cette planche on aura préalablement écrit l implémentation des piles à capacité limitée ou illimitée vue en cours, et

Plus en détail

Cours d informatique du 17/11/2009 A. Rappels sur les boucles

Cours d informatique du 17/11/2009 A. Rappels sur les boucles Cours d informatique du 17/11/2009 A. Rappels sur les boucles 1) Rappel sur les invariants de boucle : L invariant de boucle est un outil pour concevoir cette boucle. Il peut exister plusieurs invariants

Plus en détail

Examen Programmation ENSAE première année 2008 (rattrapage) Examen écrit (1 heure) Tous documents autorisés.

Examen Programmation ENSAE première année 2008 (rattrapage) Examen écrit (1 heure) Tous documents autorisés. Examen Programmation ENSAE première année 2008 (rattrapage) Examen écrit (1 heure) Tous documents autorisés. 1 0.0.1 Suite récurrente (Fibonacci) * Réécrire la fonction u de façon à ce qu elle ne soit

Plus en détail

Algorithmique avancée en Python

Algorithmique avancée en Python Algorithmique avancée en Python... et non pas Python avancé Denis Robilliard sept. 2014 1 Introduction Objectifs du cours connaître un panel d algorithmes standards : énumération, tris, backtracking, listes,

Plus en détail

Informatique 2014-2015 MP/MP*/PC/PC*/PSI* DS1 Samedi 22 novembre. Exercice N 1 A la découverte de la notation polonaise inversée

Informatique 2014-2015 MP/MP*/PC/PC*/PSI* DS1 Samedi 22 novembre. Exercice N 1 A la découverte de la notation polonaise inversée Le sujet comporte un total de 3 exercices indépendants qui peuvent être traités dans l ordre de votre choix. Exercice N 1 A la découverte de la notation polonaise inversée Introduction La notation polonaise

Plus en détail

Fonctions et procédures. Procedures: déclaration et appel

Fonctions et procédures. Procedures: déclaration et appel Cours 5 : fonctions, procédures, passage des paramètres 1 Fonctions et procédures Idée : capitaliser sur le code déjà écrit pour introduire des nouvelles commandes et opérations. On souhaite donner un

Plus en détail

Procédures et fonctions

Procédures et fonctions Chapitre 5 Procédures et fonctions 5.1 Introduction Considérons le programme suivant, dont le but est d inverser les éléments d un tableau : public class InversionTableau1 { int t[]= {8, 2, 1, 23; Terminal.ecrireStringln("Tableau

Plus en détail

MÉRÉ Aurélien FIIFO1. Pathfinder

MÉRÉ Aurélien FIIFO1. Pathfinder MÉRÉ Aurélien FIIFO1 AMC Pathfinder 1 Sommaire Préambule... 3 Modélisation de l espace... 4 Modélisation des cases δ, α... 4 Interface en mode texte... 5 Modélisation du robot... 8 1 ) Le type Robot...

Plus en détail

Cours Info - 8. Fonctions & Modularité. D.Malka MPSI 2015-2016. D.Malka Cours Info - 8 MPSI 2015-2016 1 / 40

Cours Info - 8. Fonctions & Modularité. D.Malka MPSI 2015-2016. D.Malka Cours Info - 8 MPSI 2015-2016 1 / 40 Cours Info - 8 Fonctions & Modularité D.Malka MPSI 2015-2016 D.Malka Cours Info - 8 MPSI 2015-2016 1 / 40 Sommaire Sommaire 1 Intérêt des fonctions 2 Déclaration d une fonction 3 Appel d une fonction 4

Plus en détail

1 TD 5 : Carré magique minuté

1 TD 5 : Carré magique minuté 1 TD 5 : Carré magique minuté (correction page??) Abordé lors de cette séance programmation algorithme classe méthode de construction d un carré magique Un carré magique est un carré 3x3 dont chaque case

Plus en détail

Chapitre 1. Programmation en Python 2ème année. 23 septembre 2014. E-mail mlahby@gmail.com

Chapitre 1. Programmation en Python 2ème année. 23 septembre 2014. E-mail mlahby@gmail.com Chapitre 1 La récursivité Programmation en Python 2ème année E-mail mlahby@gmailcom 23 septembre 2014 Programmation en Python 2ème année CPGE GSR 2014-2015 1/ 24 Plan 1 Rappel 2 Récurrence en mathématique

Plus en détail

Programmation sous Python

Programmation sous Python Erwan Biland Lycée Chateaubriand - BCPST 1C Année scolaire 2014-2015 Objects du Utilisation de la console (shell ) Python calculatrice Fichier machin.py Manipulation des variables Création/affectation,

Plus en détail

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Arts & Métiers Filière PSI

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Arts & Métiers Filière PSI Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Arts & Métiers Filière PSI Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes

Plus en détail

Parcours d un graphe ISN 2013. Jean-Manuel Mény IREM de LYON () Algorithmique ISN 2013 1 / 97

Parcours d un graphe ISN 2013. Jean-Manuel Mény IREM de LYON () Algorithmique ISN 2013 1 / 97 Parcours d un graphe ISN 2013 Jean-Manuel Mény IREM de LYON () Algorithmique ISN 2013 1 / 97 Exercices à rendre Trois exercices sont à rendre. L exercice 1 pourra être rendu sur papier mardi 2 avril (ou

Plus en détail

Corrigé du TP n o 5 2013/2014. Lycée Louis-Le-Grand, Paris MPSI 4 Informatique pour tous A. Troesch, J.-P. Becirspahic

Corrigé du TP n o 5 2013/2014. Lycée Louis-Le-Grand, Paris MPSI 4 Informatique pour tous A. Troesch, J.-P. Becirspahic Lycée Louis-Le-Grand, Paris MPSI 4 Informatique pour tous A. Troesch, J.-P. Becirspahic 2013/2014 Corrigé du TP n o 5 Exercice 1. recherche d un élément dans un tableau non trié 1. Le principe de la recherche

Plus en détail

De l art d écrire des programmes qui résolvent des problèmes que l on ne sait pas résoudre soi-même!

De l art d écrire des programmes qui résolvent des problèmes que l on ne sait pas résoudre soi-même! Chapitre 1 La récursivité De l art d écrire des programmes qui résolvent des problèmes que l on ne sait pas résoudre soi-même! 1.1 Définition et types de récursivité Définition 1 (Définition récursive,

Plus en détail

TP6 : Gestion de Fichiers

TP6 : Gestion de Fichiers TP6 : Gestion de Fichiers http ://www.univ-montp3.fr/miap/ens/site/pmwiki.php/?n=misashs.progtpfichiers 12 janvier 2014 Table des matières 0 Avant de commencer 1 1 Lecture de fichier 1 1.1 Un exemple............................................

Plus en détail

1 Les arbres binaires en Java

1 Les arbres binaires en Java Université de Nice-Sophia Antipolis Deug MIAS-MI 1 Algorithmique & Programmation 2002 2003 TP N 10 Arbres binaires Buts : structuration des arbres binaires en Java. classes internes. objets de parcours.

Plus en détail

Génie Logiciel Industriel - Travaux pratiques

Génie Logiciel Industriel - Travaux pratiques - Travaux pratiques TP1 : Recherche par dichotomie I. Introduction. L objectif de ce TP est de mettre en pratique des notions de base du langage C (entrées/sorties, structure de contrôle, fonctions, ).

Plus en détail

Python langage de programmation

Python langage de programmation Initiation à la programmation avec Python langage de programmation Valérie Bellynck (2009), d après un diaporama d Alain Bozzi (2008), lui-même venant de celui de Bob Cordeau (2008) 1 Langage de Programmation

Plus en détail

L AUTOMATISATION DU FONCTIONNEMENT D UNE BASE DE DONNÉES

L AUTOMATISATION DU FONCTIONNEMENT D UNE BASE DE DONNÉES 1 L AUTOMATISATION DU FONCTIONNEMENT D UNE BASE DE DONNÉES Dans ce chapitre, nous allons automatiser le fonctionnement de la base de données. Jusqu à présent, nous avons créé différents objets, mais maintenant

Plus en détail

Algorithmique Programmation Objet Python

Algorithmique Programmation Objet Python Algorithmique Programmation Objet Python Andrea G. B. Tettamanzi Université de Nice Sophia Antipolis Département Informatique andrea.tettamanzi@unice.fr Andrea G. B. Tettamanzi, 2015 1 CM - Séance 7 Listes

Plus en détail

Présentation du programme d informatique

Présentation du programme d informatique Présentation du programme d informatique UPS 31 mai 2015 Table des matières 1 Introduction 2 1.1 Présentation.................................. 2 1.2 Représentation des nombres.........................

Plus en détail

Algorithmique et Structures de Données

Algorithmique et Structures de Données 1.1 Algorithmique et Structures de Données Jean-Charles Régin Licence Informatique 2ème année 1.2 Itérations Jean-Charles Régin Licence Informatique 2ème année Itération : définition 3 En informatique,

Plus en détail

Terminologie informatique. Fonctions AXIOMES. Spécification algébrique

Terminologie informatique. Fonctions AXIOMES. Spécification algébrique Fonctions Une fonction partielle F d un ensemble A de départ ou domaine (domain en anglais) dans un ensemble d arrivée B ou co-domaine (range en anglais) associe à chaque élément a de A au plus un élément

Plus en détail

Analyse de la complexité algorithmique (1)

Analyse de la complexité algorithmique (1) Analyse de la complexité algorithmique (1) L analyse de la complexité telle que nous l avons vue jusqu à présent nous a essentiellement servi à déterminer si un problème est ou non facile (i.e. soluble

Plus en détail

info502 : Système d exploitation TP 1 : introduction à Unix, scripts

info502 : Système d exploitation TP 1 : introduction à Unix, scripts info502 : Système d exploitation TP 1 : introduction à Unix, scripts Pierre Hyvernat, Sylvie Ramasso, Brice Videau Pierre.Hyvernat@univ-savoie.fr Sylvie.Ramasso@univ-savoie.fr Brice.Videau@univ-savoie.fr

Plus en détail

MPSI Tronc commun d informatique Prise en main

MPSI Tronc commun d informatique Prise en main 1 Prise en main de l environnement informatique Se connecter avec vos identifiants. Lancer le programme scilab. Vérifier que pour scilab 3 + 4 est bien égal à 7. Refermer scilab. 2 L environnement Spyder

Plus en détail

L3 Info & Miage. TP-Projet SGF

L3 Info & Miage. TP-Projet SGF TP-Projet SGF 1. Introduction L objectif de ce mini-projet est de réaliser un Système de Gestion de Fichiers simplifié capable de gérer des accès à des fichiers séquentiels de type flot. L idée est ici

Plus en détail

Expressions, types et variables en Python

Expressions, types et variables en Python Expressions, types et variables en Python 2015-08-26 1 Expressions Les valeurs désignent les données manipulées par un algorithme ou une fonction. Une valeur peut ainsi être : un nombre, un caractère,

Plus en détail

Cours/TD n 3bis : les boucles

Cours/TD n 3bis : les boucles Cours/TD n 3bis : les boucles Découpons le problème Nous avons plusieurs utilisations des boucles C est précisément ce qui rend difficile leur création. Vu la difficulté, nous allons séparer les différentes

Plus en détail

Informatique Chapitre 4: Types et typages

Informatique Chapitre 4: Types et typages Informatique Chapitre 4: Types et typages Booléens et listes Jérôme DIDIER 8/10/2014 Objectifs du cours Compétences visées Savoir que les variables peuvent avoir plusieurs types et les connaitre ; Type

Plus en détail

Plan. Conseils de Programmation. Types et Classes. Exemple: fraction. Méthodes. Variables locales:

Plan. Conseils de Programmation. Types et Classes. Exemple: fraction. Méthodes. Variables locales: Plan Conseils de Programmation Joël Quinqueton Dépt MIAp, UFR IV UPV Université Montpellier III Types et classes Un exemple de classe Les erreurs en Java L héritage en Java Types primitifs Tableaux Classes:

Plus en détail

Couper en deux, encore et encore : la dichotomie

Couper en deux, encore et encore : la dichotomie Couper en deux, encore et encore : la dichotomie I : Jeu du nombre inconnu Un élève volontaire choisit un nombre entier compris entre 0 et 56. Un autre élève cherche à deviner ce nombre, en adoptant la

Plus en détail

TP Tracé de courbes : module Pylab

TP Tracé de courbes : module Pylab TP Tracé de courbes : module Pylab But de ce TP : Découvrir le module Pylab permettant de tracer des courbes : les représentations graphiques sont souvent utiles lorsque l on étudie un problème de physique,

Plus en détail

Listes de personnes et calculatrice polonaise inverse en Java

Listes de personnes et calculatrice polonaise inverse en Java Listes de personnes et calculatrice polonaise inverse en Java Université Paris Sud Motivation Le but de cet exercice est de manipuler les listes chaînées et les piles et de voir leur application en analyse

Plus en détail

Chap. 2. Langages et automates

Chap. 2. Langages et automates Chapitre 2. Langages et automates 1. Quelques définitions et description d un langage. 2. Les expressions régulières. 3. Les automates fini déterministes et non-déterministes. 4. Construction automatique

Plus en détail

Cours Langage C/C++ Mémoire et allocation dynamique

Cours Langage C/C++ Mémoire et allocation dynamique Cours Langage C/C++ Mémoire et allocation dynamique Thierry Vaira BTS IRIS Avignon tvaira@free.fr v0.1 La pile et le tas La mémoire La mémoire dans un ordinateur est une succession d octets (soit 8 bits),

Plus en détail

Variables, types simples, expressions et instructions simples

Variables, types simples, expressions et instructions simples 2.2 - Chap. 05 Variables, types simples, expressions et instructions simples 1 / 5 Variables, types simples, expressions et instructions simples 1 Variable de types simples 1.1 Notion de variable Une variable

Plus en détail

Introduction au langage

Introduction au langage Introduction au langage Un langage de programmation : de haut niveau interprété orienté objet si on le souhaite rapide à écrire et proche du pseudo-code simple tant qu on fait des choses simples Un programme

Plus en détail

Objets Avancées Semestre 3 Année 2015-2016. Projet

Objets Avancées Semestre 3 Année 2015-2016. Projet Conception et Programmation IUT d Aix-Marseille Dép. INFO Aix Objets Avancées Semestre 3 Année 2015-2016 Projet André Abramé - andre.abrame@univ-amu.fr Sophie Nabitz - sophie.nabitz@univ-avignon.fr Petru

Plus en détail

TP 7 : Manipulation d images.

TP 7 : Manipulation d images. Lycée Masséna TP 7 : Manipulation d images. On va voir deux choses dans ce TP : les tableaux Numpy, qui sont très pratiques pour les opérations terme à terme entre tableaux de nombres à plusieurs dimensions.

Plus en détail

Algorithmes pour les graphes

Algorithmes pour les graphes Algorithmes pour les graphes 1 Définitions Un graphe est représenté par : V : L ensemble des noeuds ou sommets. E : L ensemble des arcs ou arrêtes. E est un sous-ensemble de V xv. On note G = (V, E). Si

Plus en détail

CHAPITRE 3 : Types de base, Opérateurs et Expressions

CHAPITRE 3 : Types de base, Opérateurs et Expressions CHAPITRE 3 : Types de base, Opérateurs et Expressions 1. Types simples Un type définit l'ensemble des valeurs que peut prendre une variable, le nombre d'octets à réserver en mémoire et les opérateurs que

Plus en détail

Les sous-programmes : exercices résolus en C Corrigé

Les sous-programmes : exercices résolus en C Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Exercices résolus en C, Semaine 3 avril mai 2013 Corrigé Objectifs Savoir écrire des sous-programmes ; Comprendre les modes de passage de paramètres ; Faire la

Plus en détail

Système et Programmation (en C)

Système et Programmation (en C) Système et Programmation (en C) ENSTA - TC 1ère année François Pessaux U2IS 2015-2016 francois.pessaux @ ensta-paristech.fr Introduction François Pessaux IN102 Système et Programmation (en C) 2/31 But

Plus en détail

Code_Aster. Méthodes Python d'accès aux objets Aster. Version 10. Résumé :

Code_Aster. Méthodes Python d'accès aux objets Aster. Version 10. Résumé : Titre : Méthodes Python d'accès aux objets Aster Date : 21/05/2013 Page : 1/9 Méthodes Python d'accès aux objets Aster Résumé : Ce document présente les méthodes Python permettant d accéder aux informations

Plus en détail

Reprise en main du programme d Affectation de transport en commun

Reprise en main du programme d Affectation de transport en commun Reprise en main du programme d Affectation de transport en commun Modifications indispensables pour bonne compilation : Utilisation de visual C++ express pour avoir accès à un débuggeur et un compilateur

Plus en détail

Arnaud DABOUIS Vincent HURBOURQUE IMAC 1. PROJET C : Traitement d images

Arnaud DABOUIS Vincent HURBOURQUE IMAC 1. PROJET C : Traitement d images PROJET C : Traitement d images 1 SOMMAIRE 1) Schéma et structure a) Schéma de la structure b) Les structures utilisées La structure image La structure calque La structure LUT La structure Historique et

Plus en détail

Programmer avec les exceptions en Java

Programmer avec les exceptions en Java Programmer avec les exceptions en Java Premier Cycle Cours Eurinsa 2002 (c) P.Pollet 05/12/2002 Java 2001 (PP) 1 Plan Gestion traditionnelle des erreurs d exécution Qu est-ce qu une exception? La classe

Plus en détail

USTL - Licence ST-A 1ère année 2005-2006 Initiation à la programmation. CTD : Variables et types de données

USTL - Licence ST-A 1ère année 2005-2006 Initiation à la programmation. CTD : Variables et types de données USTL - Licence ST-A 1ère année 2005-2006 Initiation à la programmation 1 Motivation 1.1 Un problème CTD : Variables et types de données État initial : Tas 1 un nombre quelconque de cartes, les autres tas

Plus en détail

Algorithmique et graphes

Algorithmique et graphes Tourisme et digicodes Stéphane Henriot Étienne Simon Département d informatique École normale supérieure de Cachan stephane.henriot@ens-cachan.fr etienne.simon@ens-cachan.fr GICS, 2014 http://gics.fr Outline

Plus en détail

Programmation objet en Java.

Programmation objet en Java. Programmation objet en Java. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/7/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/7/ Cours Exercices Slide 1 1. Classes,

Plus en détail

Algorithmique et Analyse d Algorithmes

Algorithmique et Analyse d Algorithmes Algorithmique et Analyse d Algorithmes L3 Info Cours 5 : Structures de données linéaires Benjamin Wack 2015-2016 1 / 37 La dernière fois Logique de Hoare Dichotomie Aujourd hui Type Abstrait de Données

Plus en détail

Code_Aster. Procédure DEFI_FICHIER. 1 But

Code_Aster. Procédure DEFI_FICHIER. 1 But Titre : Procédure DEFI_FICHIER Date : 30/09/2013 Page : 1/5 Procédure DEFI_FICHIER 1 But Ouvrir ou fermer un fichier associé à un numéro d unité logique. Ce numéro peut être indiqué dans la procédure ou

Plus en détail

Projet (partie graphes)

Projet (partie graphes) Projet (partie graphes) G. Richomme gwenael.richomme@univ-montp3.fr Université Paul Valéry Montpellier 3 Licence AES parcours Misahs cours 2013-2014 1 Objectifs et MCC Objectifs : construire une (mini-)application

Plus en détail

Révisions : programmation en langage python

Révisions : programmation en langage python Révisions : programmation en langage python Retrouvez tout le cours de première année (et plus) sur le site : http://pcsi.kleber.free.fr/ipt/index.html 1. Modules Les modules sont des bibliothèques de

Plus en détail

Licence 2 MIEE Première session 2013-2014. GEN : Génie Logiciel

Licence 2 MIEE Première session 2013-2014. GEN : Génie Logiciel Licence 2 MIEE Première session 2013-2014 Le barème est donné à titre indicatif. GEN : Génie Logiciel 2 heures - Documents autorisés Question 1 (8 points). Vous indiquerez vos réponses sur votre copie

Plus en détail

PARTIE 2 : ALGORITHMIQUE & PROGRAMMATION

PARTIE 2 : ALGORITHMIQUE & PROGRAMMATION PARTIE 2 : ALGORITHMIQUE & PROGRAMMATION TP 1 DÉCOUVERTE DE PYTHON Objectifs Découvrir l environnement Python. Découvrir les limites de Python. Manipuler différents types. Python est un langage de programmation

Plus en détail

TP Interface graphique et C++ numéro 1

TP Interface graphique et C++ numéro 1 TP Interface graphique et C++ numéro 1 Master IGC - 1 re année année 2010-2011 Ce premier TP a pour objectif de vous familiariser avec le compilateur C++, les entréessorties du langage et l utilisation

Plus en détail

Héritage en java : Calculatrice SDC

Héritage en java : Calculatrice SDC Programmation orientée objet L3 MIAGE Héritage en java : Calculatrice SDC Travail à rendre : le code complet du projet SDC sous forme d une archive tar.gz. L archive comportera trois répertoires : un répertoire

Plus en détail

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

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Examen de TP Introduction aux systèmes d exploitation Durée : 3h

Examen de TP Introduction aux systèmes d exploitation Durée : 3h Université Paris-Est Créteil Énoncés L3 SPI parcours Électronique session déc. 2015 Examen de TP Introduction aux systèmes d exploitation Durée : 3h Documents et notes de cours autorisés. Ne répondez pas

Plus en détail

Installer un réseau simple (Windows 98)

Installer un réseau simple (Windows 98) Installer un réseau simple (Windows 98) Différents types de réseau Pour relier deux machines On peut relier deux machines munies chacune d'une carte réseau par un simple câble croisé (connecteur RJ45)

Plus en détail

Et également retour sur le TP2. Prog Web Server - 2015-2016

Et également retour sur le TP2. Prog Web Server - 2015-2016 Et également retour sur le TP2 C'est un moyen simple de passer en revue un tableau Deux syntaxes À chaque itération, la valeur de l'élément courant est assignée à $value et le pointeur interne à la liste

Plus en détail

Chapitre 10. Introduction à l algorithmique

Chapitre 10. Introduction à l algorithmique Date début :.. Date fin : Problématique : Le logiciel informatique contraint l ordinateur exécuter une suite de tâches élémentaires (calculs, impression ). L écriture d algorithmes permet de décrire avec

Plus en détail

Langages de programmation et compilation

Langages de programmation et compilation École Normale Supérieure Langages de programmation et compilation Jean-Christophe Filliâtre Cours 6 / 9 novembre 2015 Jean-Christophe Filliâtre Langages de programmation et compilation 2015 2016 / cours

Plus en détail

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 2 : JUnit

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 2 : JUnit iut ORSAY DUT Informatique Département Informatique 2008 / 2009 Travaux Pratiques n o 2 : JUnit Nom(s) : Groupe : Date : Objectifs : Apprendre à vérifier une implantation à l aide de tests unitaires sous

Plus en détail

Informatique Pour Tous

Informatique Pour Tous Informatique Pour Tous Informatique Pour Tous I-Petite introduction Qu est ce que c est Python? Python est un langage de programmation multi-paradigme. Historique : Développé en 1989 par Guido van Rossum.

Plus en détail

CRÉATION D UN FORMULAIRE AVEC ADOBE ACROBAT

CRÉATION D UN FORMULAIRE AVEC ADOBE ACROBAT CRÉATION D UN FORMULAIRE AVEC ADOBE ACROBAT Si la version professionnelle d Adobe Acrobat permet de lire et d annoter des fichiers PDF comme de nombreux outils gratuits elle dispose également de fonctions

Plus en détail

Travaux pratiques en classe de Seconde

Travaux pratiques en classe de Seconde ANNÉE SCOLAIRE 2010-2011 Travaux pratiques en classe de Seconde DIDIER PIHOUÉ Table des matières TP n 1 : Conjecture et preuve..................................... 2 TP n 2 : Équations de droites.....................................

Plus en détail

Routage compact. 1 Préambule. 2 Détail du sujet. Sujet proposé par Gilles Schaeffer Gilles.Schaeffer@lix.polytechnique.fr. 2.1 Un modèle de routage

Routage compact. 1 Préambule. 2 Détail du sujet. Sujet proposé par Gilles Schaeffer Gilles.Schaeffer@lix.polytechnique.fr. 2.1 Un modèle de routage Routage compact Sujet proposé par Gilles Schaeffer Gilles.Schaeffer@lix.polytechnique.fr URL de suivi : http://www.enseignement.polytechnique.fr/profs/informatique/ Gilles.Schaeffer/INF431/projetX06.html

Plus en détail

Mathématiques pour. l informatique

Mathématiques pour. l informatique Xavier Chanet Patrick Vert Mathématiques pour l informatique Pour le BTS SIO Toutes les marques citées dans cet ouvrage sont des marques déposées par leurs propriétaires respectifs. Illustration de couverture

Plus en détail

VII- Enumérations dans l ordre alphabétique

VII- Enumérations dans l ordre alphabétique VII- Enumérations dans l ordre alphabétique Prenons un dictionnaire. Comment savoir si un mot se trouve avant ou après un autre? On commence par comparer la première lettre de ces deux mots. Si elles sont

Plus en détail

Introduction à la Programmation Orientée Objet

Introduction à la Programmation Orientée Objet Introduction à la Programmation Orientée Objet Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 4 avril 2013 Bertrand Estellon (DII AMU) Introduction à la Programmation

Plus en détail

I) Présentation du logiciel Scratch

I) Présentation du logiciel Scratch Rudiments pour l utilisation du logiciel Scratch en lycée par j-a.roddier@wanadoo.fr L objectif de cet atelier est de montrer certaines spécificités du logiciel Scratch, et au-delà de cette présentation

Plus en détail

Web & XML. Evaluation 1/2. ENSEIRB Programmation Web / XML. Version 1.00 du 19 décembre 2012 Etat : Travail SOPRA GROUP. Page 1/9

Web & XML. Evaluation 1/2. ENSEIRB Programmation Web / XML. Version 1.00 du 19 décembre 2012 Etat : Travail SOPRA GROUP. Page 1/9 Web & XML ENSEIRB Programmation Web / XML Evaluation 1/2 Version 1.00 du 19 décembre 2012 Etat : Travail SOPRA GROUP Page 1/9 Historique : Version Date Origine de la mise à jour Rédigée par Validée par

Plus en détail

Initiation à l algorithmique

Initiation à l algorithmique Informatique S1 Initiation à l algorithmique procédures et fonctions 1. Définition d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex

Plus en détail

Préparation aux épreuves écrites du CAPES Conseils de rédaction

Préparation aux épreuves écrites du CAPES Conseils de rédaction Préparation aux épreuves écrites du CAPES Conseils de rédaction Claire Debord Le texte qui suit est une libre compilation de plusieurs textes sur le même thème, notamment ceux de Christophe Champetier

Plus en détail

Emmanuel Filiot Département d Informatique Faculté des Sciences Université Libre de Bruxelles. Année académique 2014-2015

Emmanuel Filiot Département d Informatique Faculté des Sciences Université Libre de Bruxelles. Année académique 2014-2015 INFO-F-302, Cours d Informatique Fondamentale Emmanuel Filiot Département d Informatique Faculté des Sciences Université Libre de Bruxelles Année académique 2014-2015 Problèmes Indécidables : Définition

Plus en détail

ALGORITHMIQUE II. Récurrence et Récursivité. SMI AlgoII

ALGORITHMIQUE II. Récurrence et Récursivité. SMI AlgoII ALGORITHMIQUE II Récurrence et Récursivité Récurrence Suite récurrente: la déition d une suite est la donnée d un terme général déi en fonction du (ou des) terme(s) précédant(s) D un terme initial qui

Plus en détail

Initiation à la programmation avec Python. Sommaire du cours n 1. Notion n 1 : programmer = automatiser un service. Développeur Programme Utilisateur

Initiation à la programmation avec Python. Sommaire du cours n 1. Notion n 1 : programmer = automatiser un service. Développeur Programme Utilisateur Initiation à la programmation avec Python Cours n 1 Copyright (C) 2015 Jean-Vincent Loddo Licence Creative Commons Paternité Partage à l Identique 3.0 non transposé. Sommaire du cours n 1 Notion n 1 :

Plus en détail

C.P.G.E - Meknès Langage Python 3 Haouati Abdelali

C.P.G.E - Meknès Langage Python 3 Haouati Abdelali 3. Langage Python 3 2 a. Introduction Présentation du langage Python : Python est un langage portable, dynamique, extensible, gratuit, qui permet (sans l imposer) une approche modulaire et orientée objet

Plus en détail

Implanter un algorigramme avec le logiciel EditAlgo

Implanter un algorigramme avec le logiciel EditAlgo Implanter un algorigramme avec le logiciel EditAlgo 1. Définir la fonction de l algorithme. Exemple a : On souhaite faire clignoter une diode à la période 2s. Exemple b : On souhaite compter les impulsions

Plus en détail

Python Notions de modularité. Valérie Bellynck (2009-2010), d après un diaporama d Alain Bozzi (2008), lui-même venant de celui de Bob Cordeau (2008)

Python Notions de modularité. Valérie Bellynck (2009-2010), d après un diaporama d Alain Bozzi (2008), lui-même venant de celui de Bob Cordeau (2008) Python Notions de modularité Valérie Bellynck (2009-2010), d après un diaporama d Alain Bozzi (2008), lui-même venant de celui de Bob Cordeau (2008) 1 Les sous-programmes sous-programme = suite nommée

Plus en détail

Fiche de révisions - Algorithmique

Fiche de révisions - Algorithmique Fiche de révisions - Algorithmique Rédigé par : Jimmy Paquereau 1. Généralités Algorithme : un algorithme est la description d une procédure à suivre afin de résoudre un problème donné. Il n est pas nécessairement

Plus en détail

Prendre un bon départ

Prendre un bon départ Chapitre A Prendre un bon départ 1 - Avant-propos Un ordinateur sait très bien faire deux choses : Calculer, d oùle nomcomputer en anglais que l on pourrait traduire par calculateur. Placer des données

Plus en détail

IPT : cours 5. Les instructions de base en Python

IPT : cours 5. Les instructions de base en Python IPT : cours 5 Les instructions de base en MPSI : Prytanée National Militaire Pascal Delahaye 3 novembre 2015 1 Structure d un programme Les programmes en se tapent dans la fenêtre Editeur de Spyder Structure

Plus en détail

TP 10 Interface graphique Initiation au module Tkinter

TP 10 Interface graphique Initiation au module Tkinter TP 10 Interface graphique Initiation au module Tkinter Le module Tkinter permet de créer des interfaces graphiques pour interagir avec l utilisateur de manière conviviale. Vous manipulez fréquemment des

Plus en détail

Plan. Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres.

Plan. Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres. Plan Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres Amphi 4 1 Retour sur les références class Code { int numero; Code(int

Plus en détail

Génie Logiciel I. Cours VII - La S.T.L. et les conteneurs. Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J. Filière M.A.M. 2ème année - 08/09

Génie Logiciel I. Cours VII - La S.T.L. et les conteneurs. Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J. Filière M.A.M. 2ème année - 08/09 Génie Logiciel I Cours VII - La S.T.L. et les conteneurs Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J. Filière M.A.M. 2ème année - 08/09 Nicolas Kielbasiewicz (C.D.C.S.P./I.S.T.I.L./I.C.J.) Génie

Plus en détail

Python : le tout début

Python : le tout début leçon de choses stephane@gonnord.org www.mp933.fr Lycée du parc - Lyon Mardi 7 mai 2013 - Luminy Dans quelle fenêtre ler? Maximum d une Langages interprétés ou compilés Les interprétés : Lisp Caml (souvent)

Plus en détail

TP Système d exploitation numéro 4

TP Système d exploitation numéro 4 TP Système d exploitation numéro 4 cycle ingénieur - 1ere année Année 2012-2013 L objectif de ce TP est d étudier un outil unix appelé awk qui permet d effectuer des traitements sur des fichiers texte

Plus en détail

introduction à la conception Orientée Objet

introduction à la conception Orientée Objet 1 introduction à la conception Orientée Objet IUP GEII 2ème année marcel@univ-tours.fr http://www.blois.univ-tours.fr/ marcel 2 plan cours 1. motivations génie logiciel 2. concepts et techniques orientés

Plus en détail

TP1 Prise en main de l environnement, premières commandes

TP1 Prise en main de l environnement, premières commandes Master 2 CCI - 2014-2015 Introduction aux Systèmes et Réseaux L. Gonnord & J.-P. Gelas http://laure.gonnord.org/pro/teaching/systemecci.html Objectifs TP1 Prise en main de l environnement, premières commandes

Plus en détail

NFA032 Programmation objet avec Java

NFA032 Programmation objet avec Java NFA032 Programmation objet avec Java CNAM-Paris-Île-de-France Première session 2013 (sujet bis) Documents et calculatrice interdits. Le barème est donné à titre indicatif. Exercice 1 : programmation objet

Plus en détail

Université de Strasbourg. Aucun document autorisé. Le barème est donné à titre indicatif. Exercice 1 (5 points)

Université de Strasbourg. Aucun document autorisé. Le barème est donné à titre indicatif. Exercice 1 (5 points) Université de Strasbourg Techniques de Programmation Feuille de CT (Correction) Exercice 1 (5 points) Aucun document autorisé. Le barème est donné à titre indicatif. 1. Qu est-ce qu un effet de bord? donner

Plus en détail

Cours Systemes d exploitation

Cours Systemes d exploitation Université de Kairouan Institut Supérieur des Siences Appliquées et de Technologie Cours Conçu Spécialement Aux Etudiants: De Master Pilotage et Réseaux Industriels Cours Systemes d exploitation Noureddine

Plus en détail

1 Création de processus : primitive fork()

1 Création de processus : primitive fork() O r s a y Travaux Pratiques n o 2 : Synchronisation DUT Informatique 2010 / 2011 Nom(s) : Groupe : Date : Objectifs : rappels sur la création de processus par la primitive fork() et synchronisation de

Plus en détail

Architecture des Ordinateurs et Systèmes d Exploitation

Architecture des Ordinateurs et Systèmes d Exploitation Architecture des Ordinateurs et Systèmes d Exploitation Cours n 5 Le langage assembleur (2): Pile, Procédures. Les Interruptions 3ème année L assembleur 8086 : la pile = structure de «rangement» de données

Plus en détail