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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

Transcription

1 2015/2016

2 Exercice 1 : Pile renversée Corrigé

3 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 l on ne s autorisera à n utiliser sur les piles que leurs seules primitives : creer pile(), depiler(), empiler(,), top(,), taille(), est vide() On travaillera au choix avec des piles à capacité limitée ou illimitée. (Indication : il est légèrement plus simple d utiliser des piles à capacité illimitée, on n a pas à s occuper de leur capacité). Le corrigé utilise les piles à capacité limitée ; il s adapte presque immédiatement aux piles à capacité illimitée en ignorant tout ce qui concerne la capacité des piles.

4 Exercice 1 : créer une pile renversée Exercice Ecrire une fonction renverse(pile) prenant en argument une pile et qui retourne la pile obtenue en inversant l ordre des éléments de pile. La pile pile pourra être vidée. 2. Même question, sauf qu à la fin l argument pile doit être inchangé.

5 Exercice 1 : créer une pile renversée - a) On s autorise à vider pile. def renverse(pile): n = taille(pile) pile2 = creer pile(n) # supprimer n pour une pile illimitée while not(est vide(pile2)): empiler(pile2,depiler(pile)) return pile2

6 Exercice 1 : créer une pile renversée - b) A la fin pile doit être inchangée. On stocke les résultats dépilés dans une pile tampon, que l on utilisera à la fin pour reconstituer le contenu de pile. def renverse1(pile): n = taille(pile) pile2 = creer pile(n) pile3 = creer pile(n) # pour stoker les éléments dépilés while not(est vide(pile)): lu = depiler(pile) empiler(pile2,lu) empiler(pile3,lu) while not(est vide(pile3)): # Reremplir pile empiler(pile,depiler(pile3)) return pile2

7 Exercice 2. Ecrire une fonction supprime(pile,p) qui supprime dans la pile pile son p-ième élément compté en partant du sommet (indication : il faudra utiliser une deuxième pile). Si p dépasse la taille de la pile la fontion retournera False, et sinon retournera True.

8 - On utilise une deuxième pile pour stocker les p 1 premiers éléments dépilés avant de supprimer le p-ième élément puis de rempiler ces p 1 éléments. def suprime(pile,p): if taille(pile) < p: return False pile2 = creer pile(p-1) # supprimer p-1 si pile illimitée for i in range(p-1): empiler(pile2,depiler(pile)) depiler(pile) for i in range(p-1): empiler(pile,depiler(pile2))) return True

9 Exercice 3. Ecrire une fonction echange(pile,p,q) qui échange dans la pile pile ses p-ième et q-ième éléments, comptés en partant du sommet. Si p ou q dépasse la taille de la pile la fonction retournera False, et sinon retournera True.

10 - def echange(pile,p,q): assert isinstance(p,int) and isinstance(q,int) if taille(pile)<p or taille(pile)<q: # Cas d impossibilité return False if p == q: return True # Ici rien à faire if p > q: # pour que p soit inférieur à q p,q = q,p pile2 = creer pile(p) pile3 = creer pile(q-p) for i in range(p): empiler(pile2,depiler(pile)) for i in range(q-p): empiler(pile3,depiler(pile)) empiler(pile,depiler(pile2)) empiler(pile2,depiler(pile3)) for i in range(q-p-1): empiler(pile,depiler(pile3)) for i in range(p): empiler(pile,depiler(pile2)) return True

11 Adapter l algorithme vu en cours pour déterminer si un mot est bien parenthésé pour englober les cas des 3 types de parenthèses (), [], {}.

12 - avec piles def parenthesage(mot): pile1 = creer pile(len(mot)) # création de la pile () pile2 = creer pile(len(mot)) # création de la pile [] pile3 = creer pile(len(mot)) # création de la pile {} pile0 = creer pile(len(mot)) # création de la pile mémoire" for char in mot: # Parcours du mot if char == ( : # Si ( empiler(pile1,0); empiler(pile0,1) # on empile pile1 et on mémorise elif char == [ : # Si [ empiler(pile2,0); empiler(pile0,2) # on empile pile2 et on mémorise elif char == { : # Si { empiler(pile3,0); empiler(pile0,3) # on empile pile3 et on mémorise elif char == ) : # Si ) if est vide(pile1) or depiler(pile0)!= 1: return False else: depiler(pile1) elif char == ] : # Si ] if est vide(pile2) or depiler(pile0)!= 2: return False else: depiler(pile2) elif char == } : # Si } if est vide(pile3) or depiler(pile0)!= 3: return False else: depiler(pile3) return est vide(pile1) and est vide(pile2) and est vide(pile3)

13 - avec 1 pile Ou encore utiliser une seule liste et empiler les différentes parenthèses ouvrantes : def parenthesage(mot): pile = creer pile(len(mot)) # création de la pile for char in mot: # Parcours du mot if char == ( : # Si ( empiler(pile, ( ) # on empile ( elif char == [ : # Si [ empiler(pile, [ ) # on empile [ elif char == { : # Si { empiler(pile, { ) # on empile { elif char == ) : # Si ) if est vide(pile) or depiler(pile)!= ( : return False elif char == ] : # Si ] if est vide(pile) or depiler(pile)!= [ : return False elif char == } : # Si } if est vide(pile) or depiler(pile)!= { : return False return est vide(pile) Cette approche est moins pratique que la précédente si l on souhaite adapter le programme pour qu il retourne aussi les positions des différentes parenthèses.

14 Exercice 7. Exercice 4. On se bornera aux seules parenthèses ( et ). 1. Adapter l algorithme vu en cours pour tester si une chaine est bien parenthésée, de sorte que : il retourne False pour une chaine non correctement parenthésée, il retourne la position des parenthèses pour une chaine bien parenthésée ; par exemple avec pour argument 2*(1+(3-1)) l algorithme retournera la liste : [(6,10),(3,11)].

15 Exercice 5. On adapte le programme vu en cours pour qu il empile les positions des parenthèses ouvrantes rencontrées. def parentheses(mot): pile = creer pile(len(mot)) result = [ ] for i in range(len(mot)): if mot[i] == ( : empiler(pile, i+1) elif mot[i] == ) : if est vide(pile): return False result.append((depiler(pile), i+1)) if est vide(pile): return result else: return False

16 Exercice 5. : 2ème version Plutôt que de parcourir la séquence par indice on peut mettre à profit l instruction : for i, c in enumerate(seq) qui implémente une boucle for où : c parcourt les éléments de la séquence seq, tandis que i parcourt les indices correspondants. def parentheses(mot): pile = creer pile(len(mot)) result = [ ] for i, c in enumerate(mot): if c == ( : empiler(pile,i+1) elif c == ) : if est vide(pile): return False result.append((depiler(pile),i+1)) if est vide(pile): return result else: return False

17 Corrigé Exercice 6. Résolution d un labyrinthe On se donnera un labyrinthe carré par un tableau carré de type ndarray (numpy). Un 0 symbolisera un passage, un 1 un mur. On prendra par exemple : import numpy as np T = np.array([ [0,0,1,0,1,0], [0,1,1,0,0,0], [0,0,0,0,1,1], pour : [1,1,1,0,1,0], [0,0,1,0,0,0], [0,0,0,0,1,0] ]) De chaque case on peut se déplacer sur une case libre voisine horizontalement ou verticalement. Entrée et sortie du labyrinthe seront des cases données par leurs indices, par exemple (0, 0) et (5, 5).

18 Corrigé Exercice 6. Résolution d un labyrinthe Le but de l exercice est d écrire une fonction qui détermine un chemin de l entrée à la sortie du labyrinthe par une recherche en profondeur utilisant une pile. Le principe est : Chaque case sera symbolisée par le couple (i,j) de ses indices dans le tableau. Lorsqu une case aura été déjà visité, sa valeur dans le tableau sera mise à -1. Une fonction voisin() prendra en paramètre le tableau et les indices d une case et retournera la liste de ses cases voisines libres et non déjà visitées. De chaque case on se déplacera sur une telle case voisine libre et non déjà visitée. Une pile à capacité illimitée constituera le fil d ariane : on empilera les cases visitées successivement. Dès qu une case n aura plus aucune case voisine non déjà visitée on la dépilera, pour poursuivre le trajet à partir de la case précédente.

19 Corrigé Exercice 6. Résolution d un labyrinthe 1. Ecrire la fonction voisin() comme décrite ci-dessus. 2. Ecrire la fonction trajet() prenant en paramètre le tableau du labyrinthe, et les couples d indices de l entrée et de la sortie, et qui retourne la pile des cases successivement visitées constituant un trajet de l entrée à la sortie. 3. La tester sur le tableau ci-dessus avec pour entrée (0,0) et sortie (5,5).

20 Corrigé Exercice 6. Résolution d un labyrinthe On utilise des piles à capacités illimitées. 1) def voisins(t,v): V = [] N = np.shape(t)[0] i,j = v[0],v[1] for a in (-1,1): if 0<= i+a <N: if T[i+a,j] == 0: V.append((i+a,j)) if 0<= j+a <N: if T[i,j+a] == 0: V.append((i,j+a)) return V

21 Corrigé Exercice 6. Résolution d un labyrinthe from copy import deepcopy def labyrinthe(t,entree,sortie): T = deepcopy(t) P = creer pile() Recherche = True v = entree empiler(p,v) while Recherche: vois = voisins(t,v) if vois == []: depiler(p) if est vide(p): return False v = top(p) else: i,j = vois[0] T[i,j] = -1 empiler(p,(i,j)) v = (i,j) if v == sortie: Recherche = False return P

22 Corrigé Exercice 6. Résolution d un labyrinthe In [1]: labyrinthe(t,(0,0),(5,5)) Out[1]: [(0, 0), (1, 0), (2, 0), (2, 1), (2, 2), (2, 3), (3, 3), (4, 3), (4, 4), (4, 5), (5, 5)] import numpy as np T = np.array([ [0,0,1,0,1,0], [0,1,1,0,0,0], [0,0,0,0,1,1], [1,1,1,0,1,0], [0,0,1,0,0,0], [0,0,0,0,1,0] ]) pour :

23 Annexe. 1. Montrer qu une chaine de caractère est bien parenthésée si et seulement si : le nombre de parenthèses ouvrantes ( égale le nombre de parenthèses fermantes ), et Dans chacun de ses préfixes le nombre de parenthèses ouvrantes est supérieur ou égal au nombre de parenthèses fermantes. On pourra procéder par récurrence forte sur la longueur de la chaine. 2. En déduire la correction de l algorithme vu en cours pour déterminer si une chaine de caractère est ou non bien parenthésée.

24 Annexe. 1. Montrons par récurrence forte sur la longueur de la chaine que : une chaine de caractère est bien parenthésée si et seulement si : (Propriété (P)) : (Propriété (P1)) : le nombre de parenthèse ouvrante égale le nombre de parenthèse ouvrante, et (Propriété (P2)) : dans chacun de ses préfixes le nombre de parenthèses ouvrantes est supérieur ou égal au nombre de parenthèses fermantes. Rappelons qu avec les parenthèses ( et ) un mot est bien parenthésé si : 1. Il ne contient aucune parenthèse ( ou ), ou 2. Il est de la forme (m) avec m un mot bien parenthésé, ou 3. Il est la concaténation m1.m2 de 2 mots m1, m2 bien parenthésés. (plutôt que de chaine de caractère, on parlera de mot.)

25 Annexe. Initialisation. Le mot vide ε est bien parenthésé, et vérifie (P) puisqu il ne contient aucune parenthèse, de même que tous ses préfixes (c est à dire lui-même ε). L équivalence est trivialement vérifiée pour le mot de longueur nulle. Hérédité. Soit un entier N > 0. Supposons que l équivalence est vérifiée pour tout mot de longueur < N. On montre séparément les deux implications et. Implication directe. Soit w un mot de longueur N bien parenthésé. 1er cas : si w ne contient aucune parenthèse. Alors il en est de même de tous ses préfixes, et trivialement w vérifie la propriété (P). Ce cas est réglé. 2ème cas : Si w est de la forme w = (u) avec u un mot bien parenthésé de longueur N 2. Par hypothèse de récurrence u contient autant de ( que de ). Or w contient 1 ( de plus et 1 ) de plus que u, ainsi w contient autant de ( que de ) : w vérifie (P1).

26 Si w est de la forme w = (u) avec u bien parenthésé. Soit w 0 un préfixe de w. Alors soit : w 0 est le mot vide ε, et ne contient aucune parenthèse, soit w 0 = (.u 0 où u 0 est un préfixe de u. Par hypothèse de récurrence u 0 contient au moins autant de ( que de ). Or w 0 = (.u 0 contient exactement 1 ( de plus que u 0 et autant de ). Ainsi w vérifie aussi la propriété (P2). Cela montre que lorsque w = (u) avec u bien parenthésé, alors w vérifie (P). 3ème cas. si w = u.v avec u et v deux mots de longueur non-nulle bien parenthésés. Alors u et v sont de longueur < N, et par hypothèse de recurrence vérifient (P). En particulier u et v contiennent tous deux autant de ( que de ), et donc il en est de même de w : w vérifie (P1). Montrons que w vérifie aussi (P2). Soit w 0 un préfixe de w. Deux cas sont possibles : w 0 est un préfixe de u, et donc, puisque u vérifie (P), il contient au moins autant de ( que de ). w 0 = u.v 0 où v 0 est un préfixe de v. Puisque v 0 contient au moins autant de ( que de ) tandis que u contient autant des 2, alors w 0 contient au moins autant de ( que de ). Ainsi w vérifie (P2) et donc (P). Ceci conclut la preuve de l implication directe.

27 Implication réciproque. Soit w un mot de longueur N vérifiant la propriété (P) ; il s agit de montrer que w est bien parenthésé. 1er cas. Si w ne débute pas par une parenthèse, w = c.w où c est un caractère autre que ( ou ). Alors w est de longueur N 1 et vérifie aussi (P). Par (HR), w est bien parenthésé, et par définition c aussi, et donc, toujours par définition, leur concaténation w est bien parenthésée. 2ème cas. w =).w est impossible : cela contredirait le fait que w vérifie (P) : en effet (P2) serait mis en défaut par le préfixe ). 3ème cas. Si w = (.w. Comme ci-dessus, si w ne se termine pas par une parenthèse alors on conclut aisément que w est bien parenthésé. De plus w ne peut pas se terminer par ( car puisque w contient autant de ( que de ) alors le préfixe de longueur N 1 de w contiendrait 1 ) de plus que de ( et contredirait le fait que w vérifie (P2).

28 Ainsi il ne reste plus qu à considérer le cas où w = (.u.). Puisque w vérifie (P1) alors u aussi. Soit u 0 un préfixe de u = u 0.u 1. Alors (.u 0 est un préfixe de w et contient donc au moins autant de ( que de ). Soit : u 0 contient au moins autant de ( que de ), soit : (.u 0 contient autant de ( que de ). Dans ce dernier cas : (.u 0 et u 1.) contiennent autant de ( que de ) et vérifient donc (P). Par (HR) (.u 0 et u 1.) sont bien parenthésés et par définition w, concaténation des deux, est bien parenthésé. On a la conclusion souhaitée. Ainsi soit w est bien parenthésé comme concaténation de deux mots bien parenthésés, soit tout préfixe de u contient au moins autant de ( que de ), c est à dire u vérifie (P 2), et donc (P). Par (HR) u est bien parenthésé. Alors par définition w = (u) l est aussi. Dans tous les cas w est bien parenthésé, ce qui prouve la réciproque et conclut la preuve.

29 Annexe. du programme def parenthesage(mot): compteur = 0 for char in mot: if char == ( : compteur += 1 elif char == ) : if compteur == 0: return False else: compteur -= 1 return (compteur == 0) # Parcours du mot # Si parenthèse ouvrante # on incrémente le compteur # Si parenthèse fermante # Et si aucun ( rencontré # Alors mal parenthésé # Sinon décrémentation # retourne True si le compteur=0 Un boucle for s achève toujours, il suffit donc de vérifier que le programme retourne le résultat attendu. Chaque passage dans la boucle correspond à l un des préfixes de mot. Et la condition compteur > 0 équivaut à avoir rencontré au moins autant de ( que de ) dans ce préfixe. Ainsi la sortie de la boucle sans retourner False équivaut à la condition (P2). La condition finale compteur == 0 correspond quant à elle à (P1). Donc l algorithme retourne True si et seulement si le mot vérifie (P), c est à dire s il est bien parenthésé.

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

PC* Structure de pile

PC* Structure de pile Structure de pile I. Définition........................................... 2 I.1 Introduction..................................... 2 I.2 Opérations caractérisant une structure de pile...................

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

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

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

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

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

ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE Section d Informatique et de Systèmes de Communication

ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE Section d Informatique et de Systèmes de Communication ÉCOLE POLYTECHNIQUE FÉDÉRALE DE LAUSANNE Section d Informatique et de Systèmes de Communication Corrigé de la série 9 3 Juin 2005 1. Augmenter les poids a) Soit T l ensemble de tous les arbres couvrants

Plus en détail

Tableaux et manipulation d images «bitmap»

Tableaux et manipulation d images «bitmap» T.P. numéro VII Tableaux et manipulation d images «bitmap» Ce T.P. va faire intervenir les notions suivantes : lecture/écriture de fichiers binaires ; images bitmap ; tableaux de données. 1 Fichiers binaires

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

ALGORITHME DE DIJKSTRA

ALGORITHME DE DIJKSTRA Auteur : Marie-Laurence Brivezac ALGORITHME DE DIJKSTRA TI-83 Premium CE Mots-clés : graphes, matrices, algorithme, programmation. Fichiers associés : dijkstra_eleve.pdf, DIJKSTRA.8xp, MINL.8xp, [C].8xm,

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

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

Langage C notes de cours

Langage C notes de cours Langage C notes de cours K. El Omari IUT GTE, UPPA 1 Présentation générale 1.1 Introduction La programmation par le langage C (ainsi que par d autres langages dit compilés) est basée sur : 1. la rédaction

Plus en détail

TD 1 : Listes et séquences. PC - Lycée Thiers

TD 1 : Listes et séquences. PC - Lycée Thiers Exercice 1 Exercice 1. Exercice 1. 1. Ecrire une fonctions moyenne() prenant en paramètre une séquence numérique (liste ou tuple) et retournant sa moyenne. 2. Ecrire une fonctions variance() prenant en

Plus en détail

Contrôle Classant Informatique 431

Contrôle Classant Informatique 431 Contrôle Classant Informatique 431 Dominique Perrin 3 juillet 2002 Tous les documents du cours sont autorisés. On attachera une grande importance à la concision, à la clarté, et à la précision de la rédaction.

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

Tableaux à deux dimensions

Tableaux à deux dimensions Cours 8 Tableaux à deux dimensions Un tableau à deux dimensions (tableau 2D) est un tableau contenant des lignes et des colonnes comme celui-ci : 4 22 55 2 5 2 4 4 2 24 2 12 Ce tableau à deux dimensions

Plus en détail

Chapitre 1: Représentation des Nombres

Chapitre 1: Représentation des Nombres Chapitre 1: Représentation des Nombres 1 Représentation des entiers naturels 11 Écriture dans une base Rappels sur la base 10 Considérons un nombre entier strictement positif, par exemple N = 432 Alors,

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

Plus en détail

Corrigé des exercices sur les tableaux

Corrigé des exercices sur les tableaux Corrigé des exercices sur les tableaux Exercice 4.1.1 tableau d entiers Dans cet exercice, on va travailler avec un tableau d entiers initialisé : int[] tab = {12, 15, 13, 10, 8, 9, 13, 14; Question 1

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

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance 5 de cours/td Université Paris-Diderot Objectifs: Boucles while. Variables booléennes. 1 La boucle while Boucle non bornée [Cours] La boucle non bornée permet de

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

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

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

TOPOLOGIE DE LA DROITE REELLE

TOPOLOGIE DE LA DROITE REELLE TOPOLOGIE DE LA DROITE REELLE P. Pansu 16 mai 2005 1 Qu est-ce que la topologie? C est l étude des propriétés des objets qui sont conservées par déformation continue. Belle phrase, mais qui nécessite d

Plus en détail

Université Mohammed Premier Année universitaire 2011-2012. Complément d exercices avec correction

Université Mohammed Premier Année universitaire 2011-2012. Complément d exercices avec correction Université Mohammed Premier Année universitaire 2011-2012 Faculté des Sciences Filière SMI Département de Mathématiques et d Informatique Module : POO Java Semestre : S5 Complément d exercices avec correction

Plus en détail

SUJET + CORRIGE. Avertissement

SUJET + CORRIGE. Avertissement Année : 2012/2013 Semestre 2 DEVUIP Service scolarité PARCOURS : Licence LIMI201 & LIMI211 UE J1MI2013 : Algorithmes et Programmes Épreuve : Devoir Surveillé Terminal Date : Lundi 10 juin 2013 Heure :

Plus en détail

Programmation : Exercices

Programmation : Exercices Programmation : Exercices IUT de Villetaneuse R&T 1 ère année Laure Petrucci 6 novembre 2007 1 Premiers programmes Exercice 1.1 : Machine à dessiner On souhaite écrire un programme pour afficher des dessins.

Plus en détail

Le Déterminant. par Alain Prouté Université Denis Diderot Paris 7. 1 Permutations. 1. 2 Application transposée, base duale. 3. 3 Mesures de volume.

Le Déterminant. par Alain Prouté Université Denis Diderot Paris 7. 1 Permutations. 1. 2 Application transposée, base duale. 3. 3 Mesures de volume. Ce cours peut être librement copié et distribué. Il est recommandé d en télécharger la version la plus récente à partir de : http://www.math.jussieu.fr/~alp. Toute remarque, correction ou suggestion doit

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

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

Elements de correction du TP 1 9 octobre 2014

Elements de correction du TP 1 9 octobre 2014 PSI* PSI Informatique Pour Tous, Lycée Kléber Elements de correction du TP 1 9 octobre 2014 Exercice 1 Rappels : Une chaîne est une suite éventuellement vide non modifiable de caractères : chaine = Je

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

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

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

MAP-SIM2 : Planification de trajectoire

MAP-SIM2 : Planification de trajectoire MP-SIM : Planification de trajectoire sujet proposé par Nicolas Kielbasiewicz : nicolas.kielbasiewicz@ensta-paristech.fr 0 janvier 06 La planification de trajectoire consiste à déterminer une trajectoire,

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

6. Lecture/écriture formatées et Fichiers. printf / scanf Fichier: Mémoire tampon Accès aux fichiers Modes d'ouverture Lecture / écriture

6. Lecture/écriture formatées et Fichiers. printf / scanf Fichier: Mémoire tampon Accès aux fichiers Modes d'ouverture Lecture / écriture 1 6. Lecture/écriture formatées et Fichiers printf / scanf Fichier: Mémoire tampon Accès aux fichiers Modes d'ouverture Lecture / écriture 2 Références Site du zèro : Programmer en C http://www.siteduzero.com/tutoriel-3-14189-apprenez-a-programmer-en-c.html

Plus en détail

Chapitre 4 Automates à pile et langages hors-contexte

Chapitre 4 Automates à pile et langages hors-contexte Chapitre 4 Automates à pile et langages hors-contexte 87 Introduction Langage a n b n n est pas accepté par un automate fini. Par contre L k = {a n b n n k} est accepté. Mémoire finie, mémoire infinie,

Plus en détail

L2 - Algorithmique et structures de données (Année 2010/2011) Examen (2 heures)

L2 - Algorithmique et structures de données (Année 2010/2011) Examen (2 heures) L2 - lgorithmique et structures de données (nnée 2010/2011) Delacourt, Phan Luong, Poupet xamen (2 heures) Les documents (cours, TD, TP) sont autorisés. Les quatre exercices sont indépendants. À la fin

Plus en détail

Au menu. Cours 7: Classes Probabilistes. Application : Calcul de la médiane. Sous menu. Retours sur quelques algorithmes.

Au menu. Cours 7: Classes Probabilistes. Application : Calcul de la médiane. Sous menu. Retours sur quelques algorithmes. Au menu Cours 7: Classes Probabilistes Olivier Bournez bournez@lix.polytechnique.fr LIX, Ecole Polytechnique Retours sur quelques algorithmes Quelques résultats INF561 Algorithmes et Complexité 1 2 Sous

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

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

Agrégation externe de mathématiques, texte d exercice diffusé en 2012 Épreuve de modélisation, option informatique

Agrégation externe de mathématiques, texte d exercice diffusé en 2012 Épreuve de modélisation, option informatique Agrégation externe de mathématiques, texte d exercice diffusé en 2012 Épreuve de modélisation, option informatique Résumé : A partir du problème de la représentation des droites sur un écran d ordinateur,

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

Algorithmique P2. Optimisation d'un algorithme de tri 2009-2010, Ulg R.Dumont

Algorithmique P2. Optimisation d'un algorithme de tri 2009-2010, Ulg R.Dumont Algorithmique P2 Optimisation d'un algorithme de tri 2009-2010, Ulg R.Dumont Sources supplémentaires Cours Algorithms and Data Structures in Java, Patrick Prosser, 2000, Glasgow University Algorithmique

Plus en détail

LES PILES ET LES FILES

LES PILES ET LES FILES LES PILES ET LES FILES 1 Dénition Une pile et une file en informatique sont des structures de données offrant trois opérations élémentaires : tester si la structure est vide, ajouter un élément dans la

Plus en détail

Machines de Turing. Chapitre 14 14.1. DÉFINITION ET FONCTIONNEMENT

Machines de Turing. Chapitre 14 14.1. DÉFINITION ET FONCTIONNEMENT Chapitre 4 Machines de Turing Dans ce chapitre on présente un modèle de calcul introduit dans les années 3 par Turing, les machines de Turing. Ces machines formalisent la notion de calculabilité. La thèse

Plus en détail

Structures de Données Tableaux et implémentation des listes en python. PC/PC* - Lycée Thiers

Structures de Données Tableaux et implémentation des listes en python. PC/PC* - Lycée Thiers Structures de Données Tableaux et implémentation des listes en python Rappels sur les listes en python Les listes en python Les objets de la classe (les listes ) constituent une structure de données

Plus en détail

Généralités sur les fonctions numériques

Généralités sur les fonctions numériques 7 Généralités sur les fonctions numériques Une fonction numérique est, de manière générale, une fonction d une variable réelle et à valeurs réelles. 7.1 Notions de base sur les fonctions Si I, J sont deux

Plus en détail

Programmation système : tampons

Programmation système : tampons Programmation système : tampons Juliusz Chroboczek 12 Octobre 2009 1 Tampons Le programme de copie décrit au cours précédent effectue deux appels système pour chaque octet copié ce qui est tragique. Une

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

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

Eléments du langage. Eléments du langage PHP. Variables. Variables

Eléments du langage. Eléments du langage PHP. Variables. Variables Eléments du langage Eléments du langage PHP Séparation des instructions Comme en C, C++, Perl, les instructions doivent être séparées par un point virgule. Les commentaires // Ceci est un commentaire sur

Plus en détail

OLYMPIADES FRANÇAISES DE MATHÉMATIQUES

OLYMPIADES FRANÇAISES DE MATHÉMATIQUES OLYMPIADES FRANÇAISES DE MATHÉMATIQUES OLYMPIADES OFM FRANÇAISES MATHÉMATIQUES ENVOI NO. 3 CORRIGÉ 1 Exercices du groupe B Exercice 1. Soit n 1 un entier tel que le quotient de 2 n par n est une puissance

Plus en détail

Grammaires hors-contexte

Grammaires hors-contexte Analyse syntaxique Grammaires hors-contexte Une grammaire hors-contexte est un 4-uplet N, Σ, P, S où : N est un ensemble de symboles non terminaux, appelé l alphabet non terminal. Σ est un ensemble de

Plus en détail

Transformations du photomaton et du boulanger

Transformations du photomaton et du boulanger Corrigé informatique commune Transformations du photomaton et du boulanger Question 1. symétrie d axe vertical On utilise les relations x = x et y = q 1 x pour définir la fonction : def symétrie(img):

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

Les Tables de Hachage

Les Tables de Hachage NICOD JEAN-MARC Licence 3 Informatique Université de Franche-Comté UFR des Sciences et Techniques septembre 2007 NICOD JEAN-MARC 1 / 34 Référence Tables à adressage directe Thomas H. Cormen, Charles E.

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

Informatique TP4 : Manipulations de fichiers Manipulations de chaînes et de tableaux CPP 1A

Informatique TP4 : Manipulations de fichiers Manipulations de chaînes et de tableaux CPP 1A Informatique TP4 : Manipulations de fichiers Manipulations de chaînes et de tableaux CPP 1A Djamel Aouane, Frederic Devernay, Matthieu Moy Mars - avril 2015 1 Manipulations de fichiers Pour organiser des

Plus en détail

Fiche PanaMaths Introduction au tracé de courbes avec Scilab

Fiche PanaMaths Introduction au tracé de courbes avec Scilab Fiche PanaMaths Introduction au tracé de courbes avec Scilab Introduction Ce document présuppose un certain niveau de connaissance du logiciel Scilab de la part du lecteur (de la lectrice) : calcul matriciel,

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

UNIVERSITE SAAD DAHLAB DE BLIDA

UNIVERSITE SAAD DAHLAB DE BLIDA Chapitre 5 :. Introduction aux méthodes par séparation et évaluation Les méthodes arborescentes ( Branch and Bound Methods ) sont des méthodes exactes d'optimisation qui pratiquent une énumération intelligente

Plus en détail

Luc PONSONNET Lycée Bonaparte 83000 Toulon Académie de Nice TRAAM 2013-2014 Page 1

Luc PONSONNET Lycée Bonaparte 83000 Toulon Académie de Nice TRAAM 2013-2014 Page 1 Luc PONSONNET - Académie de Nice - TraAM 2013-2014 " L ENORME SAUT DE THIERRY NEUVILLE AU RALLYE DE FINLANDE" Niveau de la classe : première scientifique Testée avec une classe de première scientifique

Plus en détail

Remarques sur le premier contrôle de TD :

Remarques sur le premier contrôle de TD : Remarques sur le premier contrôle de TD : Démêlons les confusions en tous genres... Licence 1 MASS semestre 2, 2006/2007 La première remarque est qu il faut apprendre le cours, faire les exercices et poser

Plus en détail

Le problème des multiplications matricielles enchaînées peut être énoncé comme suit : étant

Le problème des multiplications matricielles enchaînées peut être énoncé comme suit : étant Licence informatique - L Année 0/0 Conception d algorithmes et applications (LI) COURS Résumé. Dans cette cinquième séance, nous continuons l exploration des algorithmes de type Programmation Dynamique.

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

1 Recherche d une chaîne de caractères dans un fichier

1 Recherche d une chaîne de caractères dans un fichier TP NÆ3 1 Université de Nice-Sophia Antipolis Deug MIAS-MI 1 Algorithmique & Programmation 2003 2004 TP NÆ3 Structures de données composées Le but de cette séance est d utiliser les structures de données

Plus en détail

L1 Informatique Université Paris 8-2010-2011 Programmation Impérative I Rim Chaabane rchaabane@ai.univ-paris8.fr - Cours 6 - Les pointeurs

L1 Informatique Université Paris 8-2010-2011 Programmation Impérative I Rim Chaabane rchaabane@ai.univ-paris8.fr - Cours 6 - Les pointeurs Les pointeurs Le langage C permet de manipuler des adresses d objets ou de fonctions par le biais de pointeurs. Pour ce faire on peut désigner des variables dites de type pointeur, destinées à contenir

Plus en détail

ISMIN 1A Programmation 1 : Examen de programmation C. Réponses. Partie 1. Questions ouvertes

ISMIN 1A Programmation 1 : Examen de programmation C. Réponses. Partie 1. Questions ouvertes ISMIN 1A Programmation 1 : Examen de programmation C Réponses Partie 1. Questions ouvertes 1. Soit la déclaration suivante, char tab[] = "". Que contient le tableau tab? Réponse : tab[0] = \0. tab est

Plus en détail

PLAN DU COURS ENTRÉE SORTIE FONCTION PRINTF. Fonction de la bibliothèque stdio.h. Affichage d'un texte:

PLAN DU COURS ENTRÉE SORTIE FONCTION PRINTF. Fonction de la bibliothèque stdio.h. Affichage d'un texte: PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, Tableaux, opérateurs Entrées sorties de base Structures de contrôle Algorithmes de recherche Algorithmes de

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

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

Informatique (INFO-F-206) Exemple de questionnaire d examen

Informatique (INFO-F-206) Exemple de questionnaire d examen Informatique (INFO-F-206) Exemple de questionnaire d examen Jean Cardinal Année académique 2010 2011 Consignes : 1. Les réponses doivent figurer sur des feuilles distinctes, indiquant le numéro de la question,

Plus en détail

Cours/TD n 3 : les boucles

Cours/TD n 3 : les boucles Cours/TD n 3 : les boucles Où on se rendra compte qu il est normal de rien comprendre Pour l instant, on a vu beaucoup de choses. Les variables, les Si Alors Sinon, les tests avec les ET, les OU et les

Plus en détail

Université Mohammed Premier Année universitaire 2012-2013

Université Mohammed Premier Année universitaire 2012-2013 Université Mohammed Premier Année universitaire 2012-2013 Faculté des Sciences Filière SMI Département de Mathématiques Module : POO Java et d Informatique Semestre : S5 Responsable du cours : El Mostafa

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

Gestion de la mémoire

Gestion de la mémoire Chapitre 9 Gestion de la mémoire Durant l exécution d un programme, les éléments manipulés par le programme sont stockés dans différents types de mémoire. La pile d exécution contient des éléments dont

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

TP Maple 4 Eléments de programmation

TP Maple 4 Eléments de programmation TP Maple 4 Eléments de programmation Les structures de branchement (tests) et de répétition (boucles) sont au fondement de la programmation informatique. Elles permettent respectivement d effectuer certaines

Plus en détail

Premiers exemples de traitements

Premiers exemples de traitements #include #include Premiers exemples de traitements void main() float b(0.0); float c(0.0); float delta(0.0); cin >> b >> c; delta = b*b - 4*c; if (delta < 0.0) cout

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

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

Notion d algorithme. Boucles et tests avec et sans Python. Stéphane Gonnord. stephane@gonnord.org www.mp933.fr. Lycée du parc - Lyon

Notion d algorithme. Boucles et tests avec et sans Python. Stéphane Gonnord. stephane@gonnord.org www.mp933.fr. Lycée du parc - Lyon Boucles et tests avec et sans stephane@gonnord.org www.mp933.fr Lycée du parc - Lyon Vendredi 4, 11 et 18 octobre 2013 Lycée du parc 1. : des exemples de la vraie vie ; un peu de mathématiques 2. Des maths

Plus en détail

Tri en Python. # on cherche k tel que a k = min(a j ) ji

Tri en Python. # on cherche k tel que a k = min(a j ) ji Tri en Python On considère ici des tableaux ou listes d entiers ou de ottants. En Python, on peut trier une liste à l aide de la méthode sort : si a est une liste d entiers ou de ottants, a.sort() modi

Plus en détail

Obert Hervé Stumpf Mathieu Licence 3 RIA. Réseaux & Protocoles. Client pair-à-pair. Projet L3 RIA 2005-2006 Sommaire.

Obert Hervé Stumpf Mathieu Licence 3 RIA. Réseaux & Protocoles. Client pair-à-pair. Projet L3 RIA 2005-2006 Sommaire. Obert Hervé Stumpf Mathieu Licence 3 RIA Réseaux & Protocoles Client pair-à-pair Projet L3 RIA 2005-2006 Sommaire Page 1 sur 10 Introduction - Présentation du projet 3 Fonctionnement coté graine 4 Fonctionnement

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

TP 9 Agenda 2. Fonctions avancées CORRECTION

TP 9 Agenda 2. Fonctions avancées CORRECTION echo -n "entrer un entier " ; read n res=1 ; res=$(($res*2)) ; ; echo $res Introduction aux systèmes d exploitation (IS1) 1 Structures de contrôle 1.1 Boucles for Exercice 1 Échauffement. TP 9 Agenda 2.

Plus en détail

Compression LZW. 1 Gestion d un dictionnaire. 2 Algorithme LZW. 2.1 Compression

Compression LZW. 1 Gestion d un dictionnaire. 2 Algorithme LZW. 2.1 Compression MPSI Option Informatique Année 2001, Septième TP Caml Vcent Simonet (http://cristal.ria.fr/~simonet/) Compression LZW Lorsque l on stocke ou l on transmet via un réseau une grande quantité de données,

Plus en détail

Informatique Pour Tous III-Propositions de solutions aux exercices

Informatique Pour Tous III-Propositions de solutions aux exercices Informatique Pour Tous III-Propositions de solutions aux exercices exercice 1 exercice 2 exercice 3 exercice 4 exercice 1 exercice 1 Fonction de saisie d'un nombre def input_nb(invite): """ cette fonction

Plus en détail

Tableau R : 255 0 0 255 255 0. Tableau G : 0 255 255 255 255 0. Tableau B : 0 0 255 0 255 0. Chaque carré représente un pixel

Tableau R : 255 0 0 255 255 0. Tableau G : 0 255 255 255 255 0. Tableau B : 0 0 255 0 255 0. Chaque carré représente un pixel Mini-Projet n 2 : Jouer avec les images. A rendre pour le lundi 14 novembre 2011 avant midi. Introduction : Une image est un ensemble de pixels dont chacun est défini par trois valeurs, que l'on note R,

Plus en détail

Arithmétique Algorithmique. http://www.math.univ-lyon1.fr/~roblot/ens.html

Arithmétique Algorithmique. http://www.math.univ-lyon1.fr/~roblot/ens.html Arithmétique Algorithmique http://www.math.univ-lyon1.fr/~roblot/ens.html Partie III Algorithmes classiques 1 Coût de la multiplication et de la division 2 Exponentiation rapide 3 Algorithme d Euclide

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

APPLICATION. Définition des classes : On va définir - une classe carte - une classe piledecartes - une classe joueur

APPLICATION. Définition des classes : On va définir - une classe carte - une classe piledecartes - une classe joueur APPLICATION On souhaite écrire un programme qui permet à l utilisateur de jouer au jeu de cartes 21. Principe : L utilisateur reçoit une carte à la fois et après chaque carte il décide s il continue ou

Plus en détail

Intégration de polynômes Points de Gauss

Intégration de polynômes Points de Gauss Intégration de polynômes Points de Gauss Commençons par un exercice classique de premier cycle. Problème 1 Trouver trois réels α, β et γ tels que, pour tout polynôme P de degré au plus 2, on ait : ( )

Plus en détail

Objectifs. Pointeurs et tableaux. Arithmétique des pointeurs et sizeof. sizeof. Exemple : liste chaînées. Cast. Débordement de tampons

Objectifs. Pointeurs et tableaux. Arithmétique des pointeurs et sizeof. sizeof. Exemple : liste chaînées. Cast. Débordement de tampons du cours d aujourd hui Programmation «orientée système» LANGAGE C POINTEURS (5/5) des pointeurs Complément (et mise en garde) sur Exemple pratique : listes Forçage de type (casting) Laboratoire d Intelligence

Plus en détail