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

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é.

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

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

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

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

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

Génie Logiciel avec Ada. 4 février 2013 Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre

Plus en détail

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

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,

Plus en détail

1 Recherche en table par balayage

1 Recherche en table par balayage 1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément

Plus en détail

Cours de Systèmes d Exploitation

Cours de Systèmes d Exploitation Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation

Plus en détail

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

Université Bordeaux 1, Licence Semestre 3 - Algorithmes et struct... Université Bordeaux 1 table des matières Licence Semestre 3 - Algorithmes et structures de données 1 Dernière mise à jour effectuée le 23 Octobre 2013 Piles et Files Déitions Primitives de piles, exemples

Plus en détail

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

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation : Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail

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

#include <stdio.h> #include <stdlib.h> struct cell { int clef; struct cell *suiv; }; #include #include struct cell int clef; struct cell suiv; ; / longueur. pc->suiv est l abréviation de (pc).suiv. pour cette fonction comme pour les suivantes, on donne, lorsqu il existe

Plus en détail

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

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

TD3: tableaux avancées, première classe et chaînes

TD3: tableaux avancées, première classe et chaînes TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN

Plus en détail

Programmation linéaire

Programmation linéaire 1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit

Plus en détail

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

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

Chapitre 4 : Exclusion mutuelle

Chapitre 4 : Exclusion mutuelle Chapitre 4 : Exclusion mutuelle Pierre Gançarski Juillet 2004 Ce support de cours comporte un certain nombre d erreurs : je décline toute responsabilité quant à leurs conséquences sur le déroulement des

Plus en détail

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Plus en détail

Cours 7 : Utilisation de modules sous python

Cours 7 : Utilisation de modules sous python Cours 7 : Utilisation de modules sous python 2013/2014 Utilisation d un module Importer un module Exemple : le module random Importer un module Exemple : le module random Importer un module Un module est

Plus en détail

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

Plus en détail

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée

Plus en détail

Initiation à l algorithmique

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

Plus en détail

Découverte de Python

Découverte de Python Découverte de Python Python est un des langages informatiques au programme des concours à partir de la session 2015. Ce tutoriel vous permettra de vous mettre à peu près à niveau de ce qui a été fait en

Plus en détail

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan Cours de C++ François Laroussinie Dept. d Informatique, ENS de Cachan 2 novembre 2005 Première partie I Introduction Introduction Introduction Algorithme et programmation Algorithme: méthode pour résoudre

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun> 94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue

Plus en détail

Chapitre 2 Devine mon nombre!

Chapitre 2 Devine mon nombre! Python 3 : objectif jeux Chapitre 2 Chapitre 2 Devine mon nombre! 2.1. Thèmes abordés dans ce chapitre commentaires modules externes, import variables boucle while condition : if... elif... else la fonction

Plus en détail

ÉPREUVE COMMUNE DE TIPE 2008 - Partie D

ÉPREUVE COMMUNE DE TIPE 2008 - Partie D ÉPREUVE COMMUNE DE TIPE 2008 - Partie D TITRE : Les Fonctions de Hachage Temps de préparation :.. 2 h 15 minutes Temps de présentation devant le jury :.10 minutes Entretien avec le jury :..10 minutes GUIDE

Plus en détail

Intégration et probabilités TD1 Espaces mesurés Corrigé

Intégration et probabilités TD1 Espaces mesurés Corrigé Intégration et probabilités TD1 Espaces mesurés Corrigé 2012-2013 1 Petites questions 1 Est-ce que l ensemble des ouverts de R est une tribu? Réponse : Non, car le complémentaire de ], 0[ n est pas ouvert.

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année 2003-2004 Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES Maude Manouvrier La reproduction de ce document par

Plus en détail

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

Architecture des Systèmes d Information Architecture des Systèmes d Information Plan... Tableaux et tris I3 - Algorithmique et programmation 1 Rappels Nicol Delestre 2 Tableaux à n dimensions 3 Initiation aux tris Tableaux - v2.0.1 1 / 27 Tableaux - v2.0.1 2 / 27 Rappels : tableau

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche Bachir Bekka Février 2007 Le théorème de Perron-Frobenius a d importantes applications en probabilités (chaines

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris : Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens

Plus en détail

Chapitre 5 : Flot maximal dans un graphe

Chapitre 5 : Flot maximal dans un graphe Graphes et RO TELECOM Nancy A Chapitre 5 : Flot maximal dans un graphe J.-F. Scheid 1 Plan du chapitre I. Définitions 1 Graphe Graphe valué 3 Représentation d un graphe (matrice d incidence, matrice d

Plus en détail

I. Introduction aux fonctions : les fonctions standards

I. Introduction aux fonctions : les fonctions standards Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons

Plus en détail

Corrigé des exercices sur les références

Corrigé des exercices sur les références Corrigé des exercices sur les références Exercice 3.1.1 dessin Pour cet exercice, vous allez dessiner des structures de données au moyen de petits schémas analogues à ceux du cours, comportant la pile

Plus en détail

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

Programmation C++ (débutant)/instructions for, while et do...while Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

Perl Orienté Objet BioPerl There is more than one way to do it

Perl Orienté Objet BioPerl There is more than one way to do it Perl Orienté Objet BioPerl There is more than one way to do it Bérénice Batut, berenice.batut@udamail.fr DUT Génie Biologique Option Bioinformatique Année 2014-2015 Perl Orienté Objet - BioPerl Rappels

Plus en détail

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

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Jean-Philippe Préaux http://www.i2m.univ-amu.fr/~preaux

Jean-Philippe Préaux http://www.i2m.univ-amu.fr/~preaux Colonies de fourmis Comment procèdent les colonies de fourmi pour déterminer un chemin presque géodésique de la fourmilière à un stock de nourriture? Les premières fourmis se déplacent au hasard. Les fourmis

Plus en détail

SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources

SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources SNT4U16 - Initiation à la programmation Licence SVT 2 ème année 2014-2015 TD - Dynamique de POP III - Fichiers sources contacts : mathias.gauduchon@univ-amu.fr, melika.baklouti@univ-amu.fr, xavier.giraud@univ-amu.fr,

Plus en détail

Développement décimal d un réel

Développement décimal d un réel 4 Développement décimal d un réel On rappelle que le corps R des nombres réels est archimédien, ce qui permet d y définir la fonction partie entière. En utilisant cette partie entière on verra dans ce

Plus en détail

Fibonacci et les paquerettes

Fibonacci et les paquerettes Fibonacci et les paquerettes JOLY Romain & RIVOAL Tanguy Introduction Quand on entend dire que l on peut trouver le nombre d or et la suite de Fibonacci dans les fleurs et les pommes de pin, on est au

Plus en détail

Initiation à la Programmation en Logique avec SISCtus Prolog

Initiation à la Programmation en Logique avec SISCtus Prolog Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentuées

Plus en détail

Exercices Types Algorithmique et simulation numérique Oral Mathématiques et Algorithmique Banque PT Propositions de réponses

Exercices Types Algorithmique et simulation numérique Oral Mathématiques et Algorithmique Banque PT Propositions de réponses Exercices Types Algorithmique et simulation numérique Oral Mathématiques et Algorithmique Banque PT Propositions de réponses Exercice 0 print('\n ') n = 1234 q = 1234 // 10 # quotient de n par 10 r = 1234

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

Programmation Orientée Objet Java

Programmation Orientée Objet Java Programmation Orientée Objet Java Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 12 novembre 2014 Bertrand Estellon (DII AMU) Programmation Orientée Objet Java 12 novembre

Plus en détail

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011 Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique

Plus en détail

Cours Informatique Master STEP

Cours Informatique Master STEP Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions

Plus en détail

Les algorithmes de base du graphisme

Les algorithmes de base du graphisme Les algorithmes de base du graphisme Table des matières 1 Traçage 2 1.1 Segments de droites......................... 2 1.1.1 Algorithmes simples.................... 3 1.1.2 Algorithmes de Bresenham (1965).............

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

Les arbres binaires de recherche

Les arbres binaires de recherche Institut Galilée Année 2010-2011 Algorithmique et arbres L2 TD 6 Les arbres binaires de recherche Type en C des arbres binaires (également utilisé pour les ABR) : typedef struct noeud_s { struct noeud_s

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

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

Cours de Programmation Impérative: Zones de mémoires et pointeurs Cours de Programmation Impérative: Zones de mémoires et pointeurs Julien David A101 - david@lipn.univ-paris13.fr Julien David (A101 - david@lipn.univ-paris13.fr) 1 / 1 Z`o n`e s `d`e m`é m`o i r`e Julien

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche 1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

Simulation de variables aléatoires

Simulation de variables aléatoires Chapter 1 Simulation de variables aléatoires Références: [F] Fishman, A first course in Monte Carlo, chap 3. [B] Bouleau, Probabilités de l ingénieur, chap 4. [R] Rubinstein, Simulation and Monte Carlo

Plus en détail

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)

Plus en détail

Initiation à LabView : Les exemples d applications :

Initiation à LabView : Les exemples d applications : Initiation à LabView : Les exemples d applications : c) Type de variables : Créer un programme : Exemple 1 : Calcul de c= 2(a+b)(a-3b) ou a, b et c seront des réels. «Exemple1» nom du programme : «Exemple

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence Sciences et Technologies Examen janvier 2010 Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS) PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et

Plus en détail

AWS avancé. Surveiller votre utilisation d EC2

AWS avancé. Surveiller votre utilisation d EC2 10 AWS avancé Dans ce chapitre, nous bâtirons sur les bases que nous avons apprises jusqu ici. Nous étudierons des sujets plus avancés tels que la surveillance de votre utilisation d AWS, l utilisation

Plus en détail

Algorithmique et Programmation

Algorithmique et Programmation École Supérieure d Ingénieurs de Poitiers Gea Algorithmique et Programmation Laurent Signac ii Algorithmique et programmation Gea Table des matières Avant Propos v Structures de données Notion de pointeur..............................................

Plus en détail

MIS 102 Initiation à l Informatique

MIS 102 Initiation à l Informatique MIS 102 Initiation à l Informatique Responsables et cours : Cyril Gavoille Catherine Pannier Matthias Robine Marc Zeitoun Planning : 6 séances de cours 5 séances de TD (2h40) 4 séances de TP (2h40) + environ

Plus en détail

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

Exercices INF5171 : série #3 (Automne 2012) Exercices INF5171 : série #3 (Automne 2012) 1. Un moniteur pour gérer des ressources Le moniteur MPD 1 présente une première version d'un moniteur, exprimé en pseudo-mpd, pour gérer des ressources le nombre

Plus en détail

1. Structure d'un programme FORTRAN 95

1. Structure d'un programme FORTRAN 95 FORTRAN se caractérise par la nécessité de compiler les scripts, c'est à dire transformer du texte en binaire.(transforme un fichier de texte en.f95 en un executable (non lisible par un éditeur) en.exe.)

Plus en détail

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours Exo7 Continuité (étude globale). Diverses fonctions Exercices de Jean-Louis Rouget. Retrouver aussi cette fiche sur www.maths-france.fr * très facile ** facile *** difficulté moyenne **** difficile *****

Plus en détail

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes

Plus en détail

Raisonnement par récurrence Suites numériques

Raisonnement par récurrence Suites numériques Chapitre 1 Raisonnement par récurrence Suites numériques Terminale S Ce que dit le programme : CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES Raisonnement par récurrence. Limite finie ou infinie d une suite.

Plus en détail

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

Corrigé des TD 1 à 5

Corrigé des TD 1 à 5 Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un

Plus en détail

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que Introduction. On suppose connus les ensembles N (des entiers naturels), Z des entiers relatifs et Q (des nombres rationnels). On s est rendu compte, depuis l antiquité, que l on ne peut pas tout mesurer

Plus en détail

Programme Compte bancaire (code)

Programme Compte bancaire (code) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; Programme Compte bancaire (code) namespace compte_bancaire /// Classe Program public

Plus en détail

Programmation linéaire et Optimisation. Didier Smets

Programmation linéaire et Optimisation. Didier Smets Programmation linéaire et Optimisation Didier Smets Chapitre 1 Un problème d optimisation linéaire en dimension 2 On considère le cas d un fabricant d automobiles qui propose deux modèles à la vente, des

Plus en détail

Chapitre 10. Les interfaces Comparable et Comparator 1

Chapitre 10. Les interfaces Comparable et Comparator 1 Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

Théorie des Langages

Théorie des Langages Théorie des Langages Analyse syntaxique descendante Claude Moulin Université de Technologie de Compiègne Printemps 2010 Sommaire 1 Principe 2 Premiers 3 Suivants 4 Analyse 5 Grammaire LL(1) Exemple : Grammaire

Plus en détail

LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE

LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE LA PHYSIQUE DES MATERIAUX Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE Pr. A. Belayachi Université Mohammed V Agdal Faculté des Sciences Rabat Département de Physique - L.P.M belayach@fsr.ac.ma 1 1.Le réseau

Plus en détail

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?

Plus en détail

Classes et Objets en Ocaml.

Classes et Objets en Ocaml. Classes et Objets en Ocaml. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/2/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/2/ Cours Exercices Slide 1 1. Objets 2.

Plus en détail

TP3 : Manipulation et implantation de systèmes de fichiers 1

TP3 : Manipulation et implantation de systèmes de fichiers 1 École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande

Plus en détail

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

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009 Déroulement Algorithmes et structures de données Cours 1 et 2 Patrick Reuter http://www.labri.fr/~preuter/asd2009 CM mercredi de 8h00 à 9h00 (Amphi Bât. E, 3 ème étage) ED - Groupe 3 : mercredi, 10h30

Plus en détail

Programmation avec des objets : Cours 7. Menu du jour

Programmation avec des objets : Cours 7. Menu du jour 1 Programmation avec des objets : Cours 7 Menu du jour 1. Retour sur la classe Liste 2. Précisions sur l interface 3. Difficultés dans le cas d erreurs 4. Soulever des exceptions 5. Utilisation des Listes

Plus en détail

Informatique III: Programmation en C++

Informatique III: Programmation en C++ Informatique III: Programmation en C++ Listes haînées Lundi 9 Janvier 2006 1 2 Introdution Les listes hainées permettent de stoker un nombre d objets qui n a pas besoin d être spéifié a priori. Rajouter

Plus en détail

Chp. 4. Minimisation d une fonction d une variable

Chp. 4. Minimisation d une fonction d une variable Chp. 4. Minimisation d une fonction d une variable Avertissement! Dans tout ce chapître, I désigne un intervalle de IR. 4.1 Fonctions convexes d une variable Définition 9 Une fonction ϕ, partout définie

Plus en détail

Traduction des Langages : Le Compilateur Micro Java

Traduction des Langages : Le Compilateur Micro Java BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant

Plus en détail

chapitre 4 Nombres de Catalan

chapitre 4 Nombres de Catalan chapitre 4 Nombres de Catalan I Dénitions Dénition 1 La suite de Catalan (C n ) n est la suite dénie par C 0 = 1 et, pour tout n N, C n+1 = C k C n k. Exemple 2 On trouve rapidement C 0 = 1, C 1 = 1, C

Plus en détail

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 4 : Fonctions La construction de fonctions dans un langage de programmation permet aux

Plus en détail

Claude Delannoy. 3 e édition C++

Claude Delannoy. 3 e édition C++ Claude Delannoy 3 e édition Exercices Exercices C++ en en langage langage delc++ titre 4/07/07 15:19 Page 2 Exercices en langage C++ AUX EDITIONS EYROLLES Du même auteur C. Delannoy. Apprendre le C++.

Plus en détail