Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- os.chdir("/home/eleve/Bureau/")
- from materiel import *
- def pileListe(liste):
- p = Pile()
- while len(liste) > 0:
- p.empiler(liste.pop())
- return p
- def pileDefaut():
- pile = Pile()
- pile.empiler(1)
- pile.empiler(2)
- pile.empiler(3)
- pile.empiler(4)
- return pile
- # EXERCICE 1
- def inverser_pile(pile):
- renvoye = Pile()
- sauvegarde = Pile()
- while not pile.est_vide():
- sommet = pile.pop()
- sauvegarde.empiler(sommet)
- renvoye.empiler(sommet)
- while not sauvegarde.est_vide():
- pile.empiler(sauvegarde.pop())
- pile = sauvegarde
- return renvoye
- def desempiler(pile, k):
- while not pile.est_vide() and k > 0:
- pile.desempiler()
- k -= 1
- #return pile
- def desempilerJusqu(pile, e):
- while not pile.est_vide() and pile.pop() != e:
- pass
- #return pile
- def perm2(pile):
- top, top2 = pile.pop(), pile.pop()
- pile.empiler(top)
- pile.empiler(top2)
- #return pile # ?
- def rot(pile, k):
- elements = []
- i = k
- for i in range(k - 1):
- perm2(pile)
- elements.append(pile.pop())
- while i < k:
- pile.empiler(elements.pop())
- i += 1
- # EXERCICE 2
- def taillePile(pile):
- paux = Pile()
- renvoye = 0
- while not pile.est_vide():
- renvoye += 1
- paux.empiler(pile.pop())
- for i in range(renvoye):
- pile.empiler(paux.pop())
- return renvoye
- # EXERCICE 3
- def couper(pile):
- import random
- elts = random.randint(1, taillePile(pile) - 1)
- paux = Pile()
- for i in range(elts):
- paux.empiler(pile.pop())
- paux = inverser_pile(paux)
- return paux
- def melange(p1, p2):
- t = (p1, p2)
- renvoye = Pile()
- import random
- while not p1.est_vide() and not p2.est_vide():
- renvoye.empiler(t[random.randint(0, 1)].pop())
- while not p1.est_vide():
- renvoye.empiler(p1.pop())
- while not p2.est_vide():
- renvoye.empiler(p2.pop())
- return renvoye
- pile = pileListe([1, 2, 3, 4, 5])
- pile2 = pileListe([5, 6, 7, 8, 9, 10])
- def magiemagie(k = 2, n = 32):
- cartes = Pile()
- import copy
- N = copy.deepcopy(cartes_noires)
- R = copy.deepcopy(cartes_rouges)
- random.shuffle(R)
- random.shuffle(N)
- for i in range(n // k):
- cartes.empiler(N.pop())
- cartes.empiler(R.pop())
- cartes2 = couper(cartes)
- print(melange(cartes2, cartes))
- print(infixe_to_postfixe('3*(4+2)-3/5'))
- def calculer(a, b, op):
- if op == '+':
- return a + b
- elif op == '-':
- return a - b
- elif op == '/':
- return a / b
- elif op == '*':
- return a * b
- assert False, "Mauvais opérateur : " + str(op)
- def calculNPI(npi):
- operandes = ['+', '-', '/', '*']
- p = Pile()
- resultat = 0
- for elt in npi:
- p.empiler(elt)
- if elt in operandes:
- op, b, a = p.pop(), p.pop(), p.pop()
- p.empiler(calculer(a, b, op))
- return p.pop()
- calculNPI(infixe_to_postfixe('10+(4*8)-7*5+18'))
- def obtenirSecret():
- f = open("lesecret.txt")
- lignes = f.readlines()
- f.close()
- return lignes[0]
- d = {}
- def dechiffrer():
- global d
- contenu = obtenirSecret()
- dico = {}
- for lettre in contenu:
- if lettre != ' ' and lettre != '\n':
- dico[lettre] = dico.get(lettre, 0) + 1
- lettres = pileListe(['e', 'a', 'i', 't', 's', 'n', 'l', 'u', 'r', 'o', 'd', 'm', 'c', 'p', 'v', 'q', 'h', 'f', 'b', 'g', 'j', 'x', 'y', 'w', 'z', 'k'])
- d = copy.deepcopy(dico)
- dechiffre = copy.deepcopy(contenu)
- while not lettres.est_vide():
- try:
- l = lettres.pop()
- lettreChiffree = max(d, key = d.get)
- dechiffre = dechiffre.replace(lettreChiffree, l)
- d.pop(lettreChiffree)
- except:
- print("Lettre : ", lettre)
- print(dechiffre)
- dechiffrer()
Advertisement
Add Comment
Please, Sign In to add comment