Affichage des réponses on/off

This commit is contained in:
Geoffrey Frogeye 2015-03-15 09:34:46 +01:00
parent b11cc3df57
commit 18fabdfeb6

View file

@ -20,6 +20,7 @@ __date_creation__ = 'Tue, 10 Mar 2015 10:26:41 +0100'
from random import randint
affichage = __name__ == '__main__'
def partie(nom):
"""
@ -28,6 +29,7 @@ def partie(nom):
"""
assert type(nom) == str
if affichage:
print('\n', nom, '=' * len(nom), sep='\n')
@ -38,6 +40,7 @@ def section(nom):
"""
assert type(nom) == str
if affichage:
print('\n', nom, '-' * len(nom), sep='\n')
@ -48,8 +51,20 @@ def question(numero):
"""
assert type(numero) == int
if affichage:
print('\n***', 'Question', numero, '***')
def reponse(texte):
"""
str
Affiche la réponse à la question.
"""
assert type(texte) == str
if affichage:
print(texte)
partie("Prérequis")
@ -187,7 +202,7 @@ compteur = 0
tri_selection(liste_alea(100, -5000, 5000))
print('{} comparaisons ont été faite pour cette liste.'.format(compteur))
reponse('{} comparaisons ont été faite pour cette liste.'.format(compteur))
question(2)
@ -234,13 +249,14 @@ def afficher_tableau(donnees):
question(1)
tableau = [['nb ', 'croissante ', 'aléatoire ', 'decroissante']]
for nb in range(1, 101):
if affichage:
tableau = [['nb ', 'croissante ', 'aléatoire ', 'decroissante']]
for nb in range(1, 101):
tableau.append([nb,
tri_et_compte(tri_selection, liste_croissante(nb))[1],
tri_et_compte(tri_selection, liste_alea(nb, 0, 500))[1],
tri_et_compte(tri_selection, liste_decroissante(nb))[1]])
afficher_tableau(tableau)
afficher_tableau(tableau)
question(2)
@ -248,68 +264,72 @@ partie("Analyse du tri par insertion")
question(1)
tableau = [tableau[0]]
for nb in range(1, 101):
if affichage:
tableau = [tableau[0]]
for nb in range(1, 101):
tableau.append([nb,
tri_et_compte(tri_insertion, liste_croissante(nb))[1],
tri_et_compte(tri_insertion, liste_alea(nb, 0, 500))[1],
tri_et_compte(tri_insertion, liste_decroissante(nb))[1]])
afficher_tableau(tableau)
afficher_tableau(tableau)
section("Dans le meilleur des cas")
question(1)
print("Le meilleur des cas est lorsque la liste est déjà triée.")
reponse("Le meilleur des cas est lorsque la liste est déjà triée.")
question(2)
print("Résultat théorique établi : c_{tri-insert}(n)=n-1")
tableau = [['i', 'coût comtpé', 'coût théor.', 'fidèle']]
tousFideles = True
for nb in range(1, 101):
if affichage:
reponse("Résultat théorique établi : c_{tri-insert}(n)=n-1")
tableau = [['i', 'coût comtpé', 'coût théor.', 'fidèle']]
tousFideles = True
for nb in range(1, 101):
c_compte = tri_et_compte(tri_insertion, liste_croissante(nb))[1]
c_theor = nb - 1
fidele = c_compte == c_theor
if not fidele:
tousFideles = False
tableau.append([nb, c_compte, c_theor, fidele])
afficher_tableau(tableau)
print("Les résultats comptés {} tous fidèles aux résultats théoriques."
afficher_tableau(tableau)
reponse("Les résultats comptés {} tous fidèles aux résultats théoriques."
.format("sont" if tousFideles else "ne sont pas"))
section("Dans le pire des cas")
question(1)
print("Le pire des cas est lorsque la liste est triée dans l'ordre inverse.")
reponse("Le pire des cas est lorsque la liste est triée dans l'ordre inverse.")
question(2)
print("Résultat théorique établi : c_{tri-insert}(n)=n(n-1)/2")
tableau = [tableau[0]]
tousFideles = True
for nb in range(1, 101):
if affichage:
reponse("Résultat théorique établi : c_{tri-insert}(n)=n(n-1)/2")
tableau = [tableau[0]]
tousFideles = True
for nb in range(1, 101):
c_compte = tri_et_compte(tri_insertion, liste_decroissante(nb))[1]
c_theor = nb * (nb - 1) // 2
fidele = c_compte == c_theor
if not fidele:
tousFideles = False
tableau.append([nb, c_compte, c_theor, fidele])
afficher_tableau(tableau)
print("Les résultats comptés {} tous fidèles aux résultats théoriques."
afficher_tableau(tableau)
reponse("Les résultats comptés {} tous fidèles aux résultats théoriques."
.format("sont" if tousFideles else "ne sont pas"))
section("En moyenne")
question(1)
t1 = tri_et_compte(tri_insertion, liste_alea(100, -5000, 5000))[1]
t2 = tri_et_compte(tri_insertion, liste_alea(100, -5000, 5000))[1]
if affichage:
t1 = tri_et_compte(tri_insertion, liste_alea(100, -5000, 5000))[1]
t2 = tri_et_compte(tri_insertion, liste_alea(100, -5000, 5000))[1]
print("Le nombre de comparaisons de la première liste est {t1}, celui de la deuxième liste est {t2}\
.\nLes nombres de comparaisons pour ces deux tris sont {res}.".format(t1=t1, t2=t2, \
res=("identiques (mais c'est un coup de chance)" if t1 == t2 else "différents")))
reponse("Le nombre de comparaisons de la première liste est {t1}, celui de la deuxième liste \
est {t2}.\nLes nombres de comparaisons pour ces deux tris sont {res}.".format(t1=t1, t2=t2, \
res=("identiques (mais c'est un coup de chance)" if t1 == t2 else "différents")))
question(1)