Cryptage César
cs_maria04
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
cs_maria04 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
cs_maria04 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
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
--
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
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
--
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
--
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!
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!