Cryptage César

Fermé
cs_maria04 Messages postés 6 Date d'inscription mardi 26 avril 2011 Statut Membre Dernière intervention 30 novembre 2013 - 30 nov. 2013 à 23:04
cs_maria04 Messages postés 6 Date d'inscription mardi 26 avril 2011 Statut Membre Dernière intervention 30 novembre 2013 - 30 nov. 2013 à 23:41
Bonjour tout le monde,

J'ai voulu apprendre le langage c++, pour cette raison je me inscrite sur une plateforme éducative, pour apprendre et avoir un certificat à la fin. Cependant, impossible de réussir mon dernier devoir.


je vous explique:

je dois faire un programme qui réalise le cryptage de Jules César. Ce programme constitué de 3 fonctions, code, decale et decode plus la fonction principale main.

-la fonction code prend un caractère et un entier en paramètre et retourne le caractère «décalé» correspondant si c'est une lettre majuscule ou minuscule, et retourne la même lettre sinon.


-la fonction decale prend trois paramètres : un caractère c, un caractère debut et un entier decalage. Tant que le decalage est strictement négatif, lui ajouter 26 ;
et elle retourne un caractère suivant la formule :
debut + (((c - debut) + decalage) % 26)


-soit c le caractère et d le décalage reçus par la fonction code :
si c est supérieur ou égal à 'a' et qu'il est inférieur ou égal à 'z' , alors renvoyer le résultat de l'appel de decale sur c, à partir de 'a' avec le décalage d ;
si c est supérieur ou égal à 'A' et qu'il est inférieur ou égal à 'Z', procédez de même mais en partant de 'A' ;
sinon renvoyez c inchangé.

la fonction decode prend en paramètres une chaîne de caractères et un entier, décode la chaîne reçue (pour le décalage reçu) et retourne la chaîne ainsi décodée.


pour le moment j'ai écris un programme sans la fonction decode, le voilà:


#include <iostream>
#include <string>

using namespace std;


char code (char c, int decalage);
char decale (char c,char debut, int decalage);
string decode (string chaineOrig, int decalage);


char decale(char c, char debut, int decalage){
char chardep;
while(decalage<0){
decalage=decalage+26;
}

chardep=debut+(((c-debut)+decalage)%26)+debut;

return chardep;
}

char code(char c, int d){
char codee;

if (c>='a' && c<='z'){
codee=decale(c,'a',d);
}else{
codee=c;
}

if(c>='A' && c<='Z'){

codee=decale(c,'A',d);
}else{
codee=c;
}

return codee;
}

int main(){
string message;
int d;


cout << "Donner le message a crypter >";
getline(cin,message);
cout << " Donnez la cle numerique de cryptage/decryptage >";
cin >>d;
int taille= message.size();

for(int i(0); i< taille ; ++i){

cout << code(message[i],d);
}


return 0;
}


Je suis vraiment bloquée, et je dois rendre le travail au plus tard demain,



J'ai essayé d'être le plus précis possible, désolé pour le pavé :)

En espérant que vous pourrez m'aider.

Merci d'avance
--

2 réponses

cs_maria04 Messages postés 6 Date d'inscription mardi 26 avril 2011 Statut Membre Dernière intervention 30 novembre 2013
30 nov. 2013 à 23:41
Merci nistarok

je regarderai ce site que tu m'a donné,

par rapport la platforme voilà son site: coursera.org

ça te parmet de suivre des cours et avoir des certificats; c'est trés pratique

je te l'aisse la découvrir

bon courage et Merci


--
0
nistarok Messages postés 304 Date d'inscription vendredi 27 juillet 2012 Statut Membre Dernière intervention 18 avril 2023 23
30 nov. 2013 à 23:31
Salut!

Je suis désolé je vais pas pouvoir t'aider car moi même j'apprends le C++ et je ne suis pas encore à ton niveau.

J'ai tout de même trouvé ça: https://www.dcode.fr/chiffre-cesar

Mais pas de C++, surtout du C qui s'en rapproche.

Seulement tu dis que ta plateforme te permet de valider une certification. Pourrais tu me dire de quelle plateforme il s'agit?
Je te remercie!
-1