Voici un exercice de dm que je n'aie pas du tout compris aidez moi svp je suis à bout :
On souhaite coder un texte donné à partir d'une clé de cryptage.
Pour chiffrer une lettre d'un texte on doit d'abord utiliser le tableau de correspondance de l'alphabet ci-dessous. A=0, B=1, C=2, ... Z=25
fonction affine : f(x)=ax+b ou a =3 et b=2
Exemple E (de rang 4) est f(4)=3*4+2=14 soit alors la lettre O
Si le résultat n'est pas dans le tableau de 0 à 25 alors il faut faire par exemple 53-2*26=1 lettre A.
1-Codée le mot SECONDE
2-Réaliser un algorithme en language codé puis en language calculatrice qui permet de coder un texte à partir des rangs du tableau.
Merci d'avance
J'ai essayé et j'ai trouvé les lettres EOIILLO mais je ne pense que c bon car j'ai trouver des nombre négatif
Bonjour, (à toi aussi)
je me demande bien comment tu trouves des nombres négatifs en multipliant un nombre entre 0 et 25 par 3 et en ajoutant 2 !!
en tout cas c'est faux ton EOIILLO pour le code de SECONDE
c'est "visiblement faux" puisque le C et le O seraient tous deux codés par I ?? et comment diable pourrait on décoder ?
(et pareil pour le N et le D qui ne peuvent pas être tous deux codés l=par L !)
tu dois faire des erreurs de calcul ... du genre grossières.
si le résultat n'est pas dans le tableau on ne retranche pas 2*26 comme dans l'exemple (qui n'est qu'un exemple)
mais autant de fois 26 qu'il faut pour que ça retombe entre 0 et 25.
si j'obtiens 32 par exemple je ne retranche qu'une seule fois 26
salut
en posant f(x)= 3x +2 modulo 26
alors pour le mot "seconde" les rangs des lettres sont : 18 4 2 14 13 3 4
f(18)= 3*8+2 modulo 26 soit f(18)= 26 modulo 26 soit f(18)=0 modulo 26 --> lettre A
f(4)= 3*4+2 modulo 26 soit f(18)= 14 modulo 26 --> lettre O
pareil pour les suivants
pour le bout de programme permettant de coder , j'ai pu fabriquer ca sous excel vba
Sub codage()
alpha = Array("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")
p = UCase(InputBox("saisir la chaine de caractères à coder"))
For i = 1 To Len(p)
For j = 0 To UBound(alpha)
If Mid(p, i, 1) = alpha(j) Then
x = x & " " & alpha((3 * j + 2) Mod 26)
End If
Next
Next
MsgBox x 'qui renvoi une codification de la chaine saisie dans l'alphabet
End Sub
testé et ca marche
En language calculatrice ca donne quoi car j'ai reconnu certaines formules mais d'autres pas du tout je n'utilise pas souvent excel : /
je reprend cette ligne pour laquelle j'ai trainé une petite erreur
f(18)= 3*18+2 modulo 26 soit f(18)= 56 modulo 26 soit f(18)=4 modulo 26 --> lettre E
déja il faut que ta calculatrice puisse traiter du texte ...
(trouver quelle lettre de l'alphabet etc)
en tout cas c'est comme partout et toujours
on ne commence pas par le codage d'un programme mais par un algorithme :
écrire en langage naturel la succession des opérations, décrites en langage naturel (= en français courant) à effectuer
ensuite on se pose les questions comment coder ce truc la :
comment connaitre le rang d'une lettre dans l'alphabet
comment extraire les lettres individuelles d'un message etc etc
et les réponses à ça dépendent du matériel / logiciel à sa disposition (en cherchant au besoin dans la notice la spécification des fonctions)
oui le problème c'est que je sais pas comment trouver le codage et l'algoritme on n'a pas vu ça en cours et j'ai beau chercher je ne trouve pas ce que je dois faire ?
algorithme :
pour chacune des lettres du message à coder
calculer le rang x dans l'alphabet de cette lettre
calculer la formule y = 33*x+2
tant que y est > 25, retrancher 26 à y
sortir la lettre correspondant au rang y dans l'alphabet
c'est ça du langage naturel
et ça fait se poser les bonnes questions pour la réalisation (c'est à dire pour le codage de cet algorithme en un programme)
comment je vais entrer le message à coder ?
comment je vais extraire chacune des lettres de ce message ?
vais-je devoir dés le départ entrer le message lettre par lettre ? ou tout d'un coup ?
comment je vais trouver le rang d'une lettre dans l'alphabet ?
etc et toutes ces questions là dépendent du matériel sur lequel tu vas faire ton programme
une calculette : voir la notice de la calculette pour traiter des textes (des lettres et pas des chiffres)
Algobox ? chercher du côté des chaines de caractères par exemple, des tableaux, des fonctions de Algobox qui traitent ce genre de trucs (lire l'aide en ligne)
un autre langage ? pareil, même démarche (notice et doc)
aucune idée de la façon dont cette calculette pourrait transformer une lettre entrée en texte en un nombre qui serait le rang dans l'alphabet.
si ça se trouve la calculette n'est pas du tout adaptée à cet usage ...
il faut attendre un spécialiste de cette calculette là.
(faire remonter par des "up" au besoin)
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :