• Aucun résultat trouvé

2 De la pile en liste chaînée à la liste Python

N/A
N/A
Protected

Academic year: 2021

Partager "2 De la pile en liste chaînée à la liste Python"

Copied!
2
0
0

Texte intégral

(1)

P REMIERS ALGORITHMES

1 Introduction

OBJECTIF :L’objectif de ce tp est de rendre l’élève capable :

• de concevoir un algorithme répondant à un problème précisément posé

• d’utiliser des fonctions pour en créer d’autres

• de décomposer un problème en sous problèmes

Q - 1 : Dans le dossier /INFO/1-ALGO-PROG/ALGO-PROG-1, créer un fichier pnom-ALGO-PROG-1-Tp-1.pypour y répondre aux questions suivantes.

2 De la pile en liste chaînée à la liste Python

2.1 Présentation du jeu

Dans cette partie, on n’a au départ qu’une pilepile construite avec une liste chaînée. Pour cela, on utilise le modulepile_non_bornee(à télécharger) importé avec l’alliasppour obtenir une nouvelle classePile. Les seuls actions possibles sont :

• créer une pilepile = Pile()

• empilerpile.empile(x)pour ajouterxen haut de la pile.

• dépiler x = pile.depile() pour enlever le dernier élément de la pile et affecter sa valeur àx.

• tester si la pile est videpile.est_vide()

• obtenir la valeur du sommetx = pile.sommet()

C’est un peu rudimentaire mais nous allons créer des fonctions permettant d’élaborer les outils (fonctions et méthodes) associées aux listes Python. Dans la partie suivante, nous utiliserons à

nouveau les listesPythoncomme d’ordinaire. 0

1 2 3 4 5 6

P

On a bien sûr le droit d’utiliser les structures algorithmiques avec les tests et boucles conditionnelleswhileet incondition- nellesfor.

Première étape : fabrication de la pilePcontenant les valeurs 0, 1, 2, 3, 4, 5, 6.

Q - 2:Créer la pilepileen utilisant uniquement la méthodeempile.

2.2 Création des outils de base

Q - 3:Écrire une fonctioninverse(pile)qui dépilepilepour renvoyer la pile inverse depile. Que vautpileaprès avoir appliquéinverse(pile)?

LYCÉECARNOT(DIJON) 1/2 INFO ENMPSI & PCSI - TP1 - ALGO-PROG-1

(2)

Q - 4:Créer une fonctioncopie(pile):

• qui videpilepour construire la pile inverse depilequ’on noteinv_pile.

• qui reconstruitpileet construitcopie_pileen vidantinv_pile

• qui renvoiecopie_pile

Q - 5:Écrire une fonctionlongueur(pile)qui renvoie le nombre d’éléments depile. Prendre bien soin de travailler sur la copie depile, grâce à la fonction précédemment créée.

On dispose donc ici d’une pile et des fonctions permettant de copier la pile et d’en connaître la longueur.

Q - 6:Écrire une fonctionvaleur(pile, i)qui renvoie la ième valeur depileen partant du bas de la pile.

REMARQUE:si la pile ne contient pas l’indicei, la fonctionvaleur(pile, i)renvoie un message d’erreur.

Q - 7:Écrire une fonctionconcatenation(pile_p, pile_q)qui permet d’ajouter à la pilepile_p, la pilepile_q.

Q - 8:Écrire une fonctionsupprime(pile, i)qui permet de supprimer de la pilepile, l’élémenti.

Q - 9:Écrire une fonctioninsertion(pile, x, i) qui permet d’ajouter un élémentx en positioni dans la pilepile.

Q - 10:Écrire une fonctionsubstitue(pile, x, i)qui permet de remplacer l’élément i de la pilepile parx.

Q - 11:Donner la complexité de toutes les fonctions créées.

Si vous avez d’autres idées et d’autres besoins, sentez vous libres des les programmer.

3 Crible d’Ératosthène

On cherche à déterminer la liste des nombres premiers jusqu’àn. Pour cela, on utilisera le crible d’Ératosthène vu en cours ou ici.

L’idée est demarquerles nombres qui ne sont pas premiers.

Q - 12:Déterminer la liste des nombres premiers jusqu’à 1000 en utilisant, soit vos fonctions précédemment créées, soit une listePythonnormaleL.

LYCÉECARNOT(DIJON) 2/2 INFO ENMPSI & PCSI - TP1 - ALGO-PROG-1

Références

Documents relatifs

C'est Euler qui, longtemps avant Ulam, trouva cette suite de nombres premiers, comme images d'entiers consécutifs par le polynôme P (x )=x 2 −x + 41. Si on calcule ces images avec un

[r]

(2) En d´ eduire la fonction supprime qui prend en arguments une liste L et un nombre n et supprime le premier ´ el´ ement de la liste ´ egal ` a n... Avec la fonction random

blottir sous un plaid, avec une bonne tasse de thé. L’occasion de se détendre et faire une pause. Je vous ai concocté un petit programme axé sur la sérénité avec la complicité

Returns the index in this list of the first occurrence of the specified element, or -1 if the List does not contain this element. Retourner l’indice de la première occurence

Écrivez un constructeur de la classe Liste qui, à partir d’un tableau dynamique d’éléments, crée la liste contenant les mêmes éléments dans le même ordre.. Donnez un

Table mère Table fille Clé primaire Clé étrangère Sections Classes Code_sec Code_sec Sections Matières Code_sec Code_sec Classe Elèves Code_cla Code_cla Elèves Notes

Déterminer en fonction de  le module et argument de chacun des nombres complexes a, b