Si, avec un si, on peut mettre Paris dans une bouteille, on doit pouvoir aussi, avec un si bémol ou naturel, mettre une contrebasse dans un porte-documents ou un hélicon dans un carton à chapeau.
Pierre Dac (Sur mon T shirt!)
Vous êtes peu nombreux à avoir réussi la mission de la séquence 7, l'énoncé était codé en César 13....
Le but de cette séquence, et des suivantes est de construire un codeur-décodeur CESAR.
Etudions la fonction suivante :
Code Python traduit en HTML:def indice (n,clef):
""" la fonction calcule le nouvel indice en connaissant la clef"""
return n + clef
C'est une fonction qui accepte 2 paramètres
Le premier est le rang de la lettre dans l'alphabet, c'est un nombre compris strictement entre 1 et 26.
Le second est la clef CESAR
On peut tester cette fonction en la saisissant dans un nouveau document texte (cesar.py par exemple) et en exécutant.
L'IDLE s'ouvre mais il ne se passe rien...
Il faut entrer au clavier par exemple :
>>> indice (5,3)
Pour voir apparaitre:
8>>>
La fonction ajoute bien la clef au rang et semble trouver le nouvel indice. Mais essayez d'autres valeurs !
Cette fonction fonctionne t-elle pour n=24 et clef=5 ? Pourquoi ?
Code Python traduit en HTML: def indice (n,clef):
""" la fonction calcule le nouvel indice en connaissant la clefs"""
if n+clef<27:
return n + clef
else:
return indice(n-26,clef)
Cette nouvelle fonction fonctionne, je vous laisse vous en convaincre !
Cette fonction est très particulière : Elle "s'appelle" elle-même. C'est une fonction récursive.
Votre mission est de trouver une autre solution (non récursive):
Vous pouvez utiliser une syntaxe avec "if" "else"
Vous pouvez penser à la division euclidienne (l'opérateur % vous donne le reste de cette division...)
Les plus rapides d'entre vous réfléchiront ensuite à la suite de notre projet !
Au cycle 4, les élèves s'initient à la programmation, en développant dans une démarche de projet quelques programmes simples, sans viser une connaissance experte et exhaustive d'un langage ou d'un logiciel particulier. En créant un programme, ils développent des méthodes de programmation, revisitent les notions de variables et de fonctions sous une forme différente, et s'entraînent au raisonnement.
Décomposer un problème en sous-problèmes afin de structurer un programme ; reconnaître des schémas. Écrire, mettre au point (tester, corriger) et exécuter un programme en réponse à un problème donné. Écrire un programme dans lequel des actions sont déclenchées par des événements extérieurs. Programmer des scripts se déroulant en parallèle. - Notions d'algorithme et de programme. - Notion de variable informatique. - Déclenchement d'une action par un événement, séquences d'instructions, boucles, instructions conditionnelles.
Jeux dans un labyrinthe, jeu de Pong, bataille navale, jeu de nim, tic tac toe. Réalisation de figure à l'aide d'un logiciel de programmation pour consolider les notions de longueur et d'angle. Initiation au chiffrement (Morse, chiffre de César, code ASCII...). Construction de tables de conjugaison, de pluriels, jeu du cadavre exquis... Calculs simples de calendrier. Calculs de répertoire (recherche, recherche inversée...). Calculs de fréquences d'apparition de chaque lettre dans un texte pour distinguer sa langue d'origine : français, anglais, italien, etc.
En 5e, les élèves s'initient à la programmation événementielle. Progressivement, ils développent de nouvelles compétences, en programmant des actions en parallèle, en utilisant la notion de variable informatique, en découvrant les boucles et les instructions conditionnelles qui complètent les structures de contrôle liées aux événements.
CommentCaMArche.net, encyclopédie libre.
Ce site est une mine d'informations accessibles, d'ici en cliquant sur "Liens" puis "Plus!!!"