notes pour amélioration du cours
This commit is contained in:
parent
b98c46b4ae
commit
018af24545
|
@ -0,0 +1,61 @@
|
||||||
|
# coding: utf-8
|
||||||
|
minuscules = 'abcdefghijklmnopqrstuvwxyz'
|
||||||
|
majuscules = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
||||||
|
|
||||||
|
def rotation(chaine, x):
|
||||||
|
"""
|
||||||
|
Effectue une rotation de x caractères vers la droite:
|
||||||
|
>>> rotation('abcde', 2)
|
||||||
|
'cdeab'
|
||||||
|
"""
|
||||||
|
return chaine[x:] + chaine[:x]
|
||||||
|
|
||||||
|
def index(c, chaine):
|
||||||
|
"""
|
||||||
|
Trouve l'index de c dans la chaine:
|
||||||
|
>>> index('n', 'bonjour')
|
||||||
|
2
|
||||||
|
"""
|
||||||
|
for i in range(len(chaine)):
|
||||||
|
if (c == chaine[i]):
|
||||||
|
return i
|
||||||
|
return -1
|
||||||
|
|
||||||
|
def chiffre_minuscules(chaine, x):
|
||||||
|
"""
|
||||||
|
Chiffre une chaîne composée de minuscules
|
||||||
|
>>> chiffre_minuscules('bonjour', 3)
|
||||||
|
'erqmrxu'
|
||||||
|
"""
|
||||||
|
r = rotation(minuscules, x)
|
||||||
|
resultat = ''
|
||||||
|
for lettre in chaine:
|
||||||
|
resultat = resultat + r[index(lettre, minuscules)]
|
||||||
|
return resultat
|
||||||
|
|
||||||
|
def chiffre(chaine, x):
|
||||||
|
"""
|
||||||
|
Chiffre une chaîne quelconque
|
||||||
|
>>> chiffre('Bonjour les amis!', 3)
|
||||||
|
'Erqmrxu ohv dplv!'
|
||||||
|
"""
|
||||||
|
r_min = rotation(minuscules, x)
|
||||||
|
r_maj = rotation(majuscules, x)
|
||||||
|
resultat = ''
|
||||||
|
for lettre in chaine:
|
||||||
|
if lettre in minuscules:
|
||||||
|
resultat = resultat + r_min[index(lettre, minuscules)]
|
||||||
|
elif lettre in majuscules:
|
||||||
|
resultat = resultat + r_maj[index(lettre, majuscules)]
|
||||||
|
else:
|
||||||
|
resultat = resultat + lettre
|
||||||
|
return resultat
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# Programme principal
|
||||||
|
#############################################################################
|
||||||
|
print(chiffre_minuscules('bonjour', 3))
|
||||||
|
print(chiffre('Bonjour les amis!', 3))
|
||||||
|
print(chiffre('Erqmrxu ohv dplv!', 23))
|
||||||
|
print(chiffre('Eudyr, yrxv dyhc ilql fhw hahuflfh!', 23))
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
todo
|
||||||
|
====
|
||||||
|
|
||||||
|
- un code-block:: ocaml ne passe pas (c'était lequel?)
|
||||||
|
- le tri de listes est à supprimer (ou bien le faire en python)
|
||||||
|
- donner les corrections des exos de TP
|
||||||
|
- l'abstraction de type dans les modules :
|
||||||
|
refaire le type date correctement
|
||||||
|
|
||||||
|
- l'analyse descendante avec les dates : je l'avais zappé mais c'était bien
|
||||||
|
- modules paramétrés ? à effacer
|
||||||
|
|
||||||
|
|
||||||
|
- éviter de "mélanger" le python et le ocaml
|
||||||
|
- l'appel d'une fonction n'a pas été assez clair:
|
||||||
|
- reprendre la "boite noire" plutôt avec une analogie avec la cybernétique
|
||||||
|
- plutôt que de chercher à dire procédure/fonction, dire "bloc de code qu'on
|
||||||
|
isole" et insister sur les locales et les globales
|
||||||
|
- ne pas centrer sur la programmation impérative ou fonctionnelle,
|
||||||
|
mentionner la fonctionnelle
|
||||||
|
|
Loading…
Reference in New Issue