Les exercices ci-dessous sont des mini-projets.
La production finale est :
Pour tester un mini-projet en cliquant sur "Résultat attendu" vous devez être sous le navigateur Mozilla Firefox
Pour sécuriser des informations sur internet, il est demandé aux utilisateurs de saisir un mot de passe.
L'objectif de ce mini projet est d'écrire un script javascript qui vérifie le niveau
de sécurité de ce mot de passe et s'il n'y a pas eu d'erreur de saisie.
Les vérifications pourront se faire soit à l'issue de la 2nde saisie, soit au fur et à mesure.
Vous inviterez l'utilisateur à saisir un nouveau mot de passe dans les cas suivants :
Le script fonctionnera avec des majuscules ou des minuscules.
On souhaite programmer le jeu du pendu. Le programme consistera à :
Dans cet exercice on souhaite écrire la fonction decbin(decimal) qui entre en paramètre le nombre decimal et qui restitue sa conversion binaire sous la forme d'une chaîne de caractères.
Pour coder un message, on procède de la manière suivante : à chacune des 26 lettres de l'alphabet, on commence par lui associer un entier $n$ de l'ensemble
$\Omega = \{0~;~ 1~;~2~;~\ldots~;~24~;~ 25\}$ selon le tableau ci-dessous :
$$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}\hline
A &B &C &D &E &F &G &H & I&J &K &L &M&N &O &P &Q &R &S &T &U &V &W &X &Y &Z\\ \hline
0 &1 &2 &3 &4 &5 &6 &7 &8 &9 &10 &11 &12&13 &14 &15 &16 &17 &18 &19 &20 &21 &22 &23 &24 &25\\ \hline\hline
\end{array}$$
Le texte s'obtient en remplaçant chaque lettre du texte clair original par une lettre à distance fixe, toujours du même côté, dans l'ordre de l'alphabet.
Pour les dernières lettres (dans le cas d'un décalage à droite), on reprend au début.
La distance fixe est la clé du codage, elle est donnée par deux lettres.
Si la clé est CH, la distance entre C et H est 5.
Avec un décalage de 5 vers la droite, A est remplacé par F, B devient G, et ainsi jusqu'à X devient C, puis Y devient D etc.
Il s'agit d'une permutation circulaire de l'alphabet.
La longueur du décalage, 5 dans l'exemple évoqué, constitue la clé du chiffrement qu'il suffit de transmettre au destinataire
— s'il sait déjà qu'il s'agit d'un chiffrement de César — pour que celui-ci puisse déchiffrer le message.
Dans le cas de l'alphabet latin, le chiffre de César n'a que 26 clés possibles (y compris la clé nulle, qui ne modifie pas le texte).
Pour simplifier, les messages à coder nous utiliserons seulement les lettres du tableau. Autrement dit, il n'y a pas de ponctuation, pas d'accents , etc.
Exemple : On veut coder la phrase " Je suis en BTS SIO" avec la clé CH
On utilisera :
Votre script fera appel à quatre fonctions :
Pour coder un message, on procède comme précédemment : à chacune des 26 lettres de l'alphabet, on commence par lui associer un entier $n$ de l'ensemble
$\Omega = \{0~;~ 1~;~2~;~\ldots~;~24~;~ 25\}$.
Puis on associe à tout entier $n$ de $\Omega$ le reste de la division euclidienne de $(3n + 5)$ par 26 ; ce reste est alors associé à la lettre correspondante.
On admet que tous ces restes allant de 0 à 25 sont distincts.
Exemple : pour coder la lettre P on procède de la manière suivante :
Ainsi la lettre P est codée par la lettre Y. Les étapes 2 et 3 sont appelées codage affine.
Pour le décodage on procède de la même manière en associant à tout entier $n$ de $\Omega$ le reste de la division euclidienne de $(9n + 7)$ par 26 ; ce reste est alors associé à la lettre correspondante.
Un système de cryptographie, difficile à briser, fut inventé au XVIe siècle par le français Vigenère.
Il consistait à écrire 25 alphabets
décalés par rapport à l’alphabet normal :
l’alphabet qui commence par B et finit par …YZA,
l’alphabet qui commence par C et finit par …ZAB ... etc.
Le codage va s’effectuer sur le principe du chiffre de César : on remplace la lettre d’origine par la lettre occupant la même place dans l’alphabet décalé.
Mais à la différence du chiffre de César, un même message va utiliser non un, mais plusieurs alphabets décalés.
Pour savoir
quels alphabets doivent être utilisés, et dans quel ordre, on utilise une clé.
Si cette clé est VIGENERE et le message " Il faut coder cette phrase, on procédera comme suit :
$$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}\hline
A &B &C &D &E &F &G &H & I&J &K &L &M&N &O &P &Q &R &S &T &U &V &W &X &Y &Z\\ \hline
0 &1 &2 &3 &4 &5 &6 &7 &8 &9 &10 &11 &12&13 &14 &15 &16 &17 &18 &19 &20 &21 &22 &23 &24 &25\\ \hline\hline
\end{array}$$
Vous pouvez tester vos codages ici : Chiffre de Vigenère
Exemple :
$$\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}\hline
\hline
Lettre1&I&L&F&A&U&T&C&O&D&E&R&C&E&T&T&E&P&H&R&A&S&E\\
\hline
Rang1&8&11&5&0&20&19&2&14&3&4&17&2&4&19&19&4&15&7&17&0&18&4\\
\hline
Clé&V&I&G&E&N&E&R&E&V&I&G&E&N&E&R&E&V&I&G&E&N&E\\
\hline
Rang&21&8&6&4&13&4&17&4&21&8&6&4&13&4&17&4&21&8&6&4&13&4\\
\hline
Rang2&3&19&11&4&7&23&19&18&24&12&23&6&17&23&10&8&10&15&23&4&5&8\\
\hline
Lettre2&D&T&L&E&H&X&T&S&Y&M&X&G&R&X&K&I&K&P&X&E&F&I\\
\hline
\end{array}$$
Dans le cas d'un nombre impair de lettres, la drenière lettre n'est pas codée.
Pour la procédure de décodage on reprend les trois étapes précédentes mais en utilisant un nouveau calcul
En mathématiques, un carré magique d’ordre n est composé de $n^2$ entiers strictement positifs, 1,2,3 .....$n^2$, écrits sous la forme
d’un tableau carré.
Ces nombres sont disposés de sorte que leurs sommes sur chaque rangée, sur chaque colonne et sur chaque diagonale principale soient égales.
On nomme alors constante magique (et parfois densité) la valeur de ces sommes.
Cette constante magique est égale à $ \dfrac{n\left(n^2+1 \right)}{2}$.
Exemple :
Carré magique d'ordre 3 : $$\begin{array}{|c|c|c|}
\hline
8&1&6\\
\hline
3&5&7\\
\hline
4&9&2\\
\hline
\end{array}.$$
Constante magique :$ \dfrac{3\times \left(3^2+1\right)}{2}=15$.
On souhaite construit des carrés magiques d'ordre impair.
Pour cela on pourra utiliser la méthode suivante :
Explication pour un carré d'ordre 3 :
Étape 1 : $\begin{array}{|c|c|c|}\hline
.&1&.\\\hline .&.&.\\\hline .&.&.\\\hline
\end{array}$
.
Étape 2 : $ \begin{array}{cccc}
\begin{array}{ccc}
~&~&(2)\end{array}\\
\begin{array}{|c|c|c|}\hline
.&1&.\\\hline .&.&.\\\hline .&.&.\\\hline
\end{array}&\Longrightarrow&
\begin{array}{|c|c|c|}\hline
.&1&.\\\hline .&.&.\\\hline .&.&2\\\hline
\end{array}&
\text{ On dépasse la première ligne, on met 2 à la dernière ligne.}
\end{array}$
.
Étape 3 : $ \begin{array}{ccccc}
\begin{array}{|c|c|c|}\hline
.&1&.\\\hline .&.&.\\\hline .&.&2\\\hline
\end{array}&
\hspace{-0.4cm}\begin{array}{c}
\\(3)\\\\
\end{array}
&\Longrightarrow&
\begin{array}{|c|c|c|}\hline
.&1&.\\\hline 3&.&.\\\hline .&.&2\\\hline
\end{array}&
\text{ On dépasse la troisième colonne , on met 3 à la première colonne.}
\end{array}$
.
Étape 4 : $ \begin{array}{ccccc}
\begin{array}{|c|c|c|}\hline
.&1&.\\\hline 3&.&.\\\hline .&.&2\\\hline
\end{array}&
\begin{array}{|c|c|c|}\hline
.&1&.\\\hline 3&.&.\\\hline 4&.&2\\\hline
\end{array}&
\text{La case est occupée par 1 on met 4 en dessous de la case courante.}
\end{array}$
.
Étape 5 :
$\begin{array}{|c|c|c|}\hline
.&1&.\\\hline 3&5&.\\\hline 4&.&2\\\hline
\end{array}$
.
Étape 6 :
$\begin{array}{|c|c|c|}\hline
.&1&6\\\hline 3&5&.\\\hline 4&.&2\\\hline
\end{array}$
.
Étape 7 :
$ \begin{array}{ccc}
\begin{array}{cccc}
~&~~~&~~~&~~~(7)\end{array}\\
\begin{array}{|c|c|c|}\hline
.&1&6\\\hline 3&5&.\\\hline 4&.&2\\\hline
\end{array}&\Longrightarrow&
\begin{array}{|c|c|c|}\hline
.&1&6\\\hline 3&5&7\\\hline 4&.&2\\\hline
\end{array}
\end{array}$.
On dépasse la première ligne, et la dernière colonne. 7 doit se trouver à la dernière ligne, première colonne.
Cette case est occupée par 4, on met 7 sous la case courante.
.
Étape 8 : $ \begin{array}{ccccc}
\begin{array}{|c|c|c|}\hline
.&1&6\\\hline 3&5&7\\\hline 4&.&2\\\hline
\end{array}&
\hspace{-0.4cm}\begin{array}{c}
(8)\\\\\\
\end{array}
&\Longrightarrow&
\begin{array}{|c|c|c|}\hline
8&1&6\\\hline 3&5&7\\\hline 4&.&2\\\hline
\end{array}&
\text{ On dépasse la troisième colonne , on met 8 à la première colonne.}
\end{array}$
.
Étape 9 : $ \begin{array}{ccccc}
\begin{array}{ccc}
~&(9)&\end{array}\\
\begin{array}{|c|c|c|}\hline
8&1&6\\\hline 3&5&7\\\hline 4&.&2\\\hline
\end{array}
&\Longrightarrow&
\begin{array}{|c|c|c|}\hline
8&1&6\\\hline 3&5&7\\\hline 4&9&2\\\hline
\end{array}&
\text{ On dépasse la première ligne, on met 9 à la dernière ligne.}
\end{array}$
Le script proposé permettra de générer un carré magique d'ordre impair.
MOTUS est un jeu où un l'on doit trouver un mot de six lettres en faisant au plus cinq propositions.
Au départ seulement la première lettre est donnée. Pour chaque proposition du candidat on regarde chaque lettre du mot proposé et
on distingue trois cas :
Le jeu ciseau, pierre, papier est le suivant : deux joueurs choisissent chacun une des trois possibilités puis confrontent leur choix. Le résultat est alors le suivant : égalité si les choix sont identiques, sinon le gagnant est obtenu selon les règles : le ciseau coupe le papier, le papier enveloppe la pierre, la pierre casse le ciseau.
Un des joueurs est la machine qui choisit ses coups au hasard avec une fonction hasard qui donne le résultat ciseau, pierre
ou papier aléatoirement.
Le jeu correspond à une suite de 5 parties simples qui s'enchaînent. A l'issue des 5 parties, on affichera le gagnant et le score.
Ce quiz est un qcm où la machine choisit au hasard quatre questions parmi l'informatique, les maths, la physique et la svt.
L'utilisateur répond par A, B et C.
A l'issue des 4 questions, on affichera le score.
Outre la numération décimale (base 10) et la numération binaire (base 2), il existe entre autre la numération Shadock (base 4). Les Shadock sont des personnages dessinés apparus à la télévision dans les années 60.
Leur cerveau étant limité, ils ne connaissent que les chiffres 0, 1, 2 et 3 et les lisent respectivement : GA,BU, ZO et MEU.
On souhaite ici concevoir un programme de conversion qui consistera à :
Afin de vous familiariser avec leur numération, vous pouvez vous entraîner sur le site : Shadock
La conjecture de Goldbach dit que Tout nombre entier pair supérieur à 3 peut s’écrire comme la somme de deux nombres premiers..
4=2+2, 6=3+3, 8=3+5, 10= 3+7 ......etc
Vous pouvez consulter la vidéo : Sciences etonnantes
Ecrire un programme qui