notes pour amélioration du cours

This commit is contained in:
gwen 2017-06-21 10:53:35 +02:00 committed by Benjamin Bohard
parent b98c46b4ae
commit 018af24545
2 changed files with 82 additions and 0 deletions

View File

@ -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))

21
algorithmique/todo.txt Normal file
View File

@ -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