Bonjour,
Je ne sais pas comment traduire ce programme C++ en langage C pour Arduino. Quelqu'un aurait-il la gentillesse de traduire ce programme en C ?
Voici le programme en question:
#include <iostream>
#include <sstream>
#include <string>
#include <cstdlib>
#include <cmath>
#include <ctime>
using namespace std;
// Headers
string toString (double);
int toInt (string);
double toDouble (string);
int chiffrer(int m, int e);
string mA1();
string mA2(string x);
void mA2bis();
string mA3();
string mA4();
string mA5(string x);
int modexp(int a, int e, int n);
int main() {
string x, résultat1, résultat2, résultat3, résultat4, résultat5;
cout << "Entrez votre nom" << endl;
cin >> x;
if (x == "A") {
mA1();
mA2(x);
mA3();
mA5(x);
résultat1 = "correct";
résultat2 = "correct";
résultat3 = "correct";
résultat5 = "correct";
cout << "Vous avez accés au coffre" << endl;
} else {
if (x == "B") {
mA1();
mA2(x);
mA3();
mA5(x);
résultat1 = "correct";
résultat2 = "correct";
résultat3 = "correct";
résultat5 = "correct";
cout << "Vous avez accés au coffre" << endl;
} else {
if (x == "C") {
mA1();
mA2(x);
mA3();
mA5(x);
résultat1 = "correct";
résultat2 = "correct";
résultat3 = "correct";
résultat5 = "correct";
cout << "Vous avez accés au coffre" << endl;
} else {
if (x == "D") {
mA2(x);
mA5(x);
résultat2 = "correct";
résultat5 = "correct";
} else {
if (x == "E") {
mA2(x);
mA5(x);
résultat2 = "correct";
résultat5 = "correct";
} else {
if (x == "F") {
mA1();
mA3();
résultat1 = "correct";
résultat3 = "correct";
} else {
if (x == "H") {
mA1();
mA3();
résultat1 = "correct";
résultat3 = "correct";
} else {
if (x == "I") {
mA1();
mA4();
résultat1 = "correct";
résultat4 = "correct";
} else {
if (x == "J") {
mA2(x);
mA5(x);
résultat2 = "correct";
résultat5 = "correct";
} else {
if (x == "K") {
mA2(x);
mA3();
mA4();
résultat2 = "correct";
résultat3 = "correct";
résultat4 = "correct";
} else {
if (x == "L") {
mA1();
mA3();
résultat1 = "correct";
résultat3 = "correct";
} else {
if (x == "M") {
mA1();
mA4();
résultat1 = "correct";
résultat4 = "correct";
} else {
if (x == "N") {
mA1();
mA4();
résultat1 = "correct";
résultat4 = "correct";
} else {
if (x == "O") {
mA1();
mA3();
résultat1 = "correct";
résultat3 = "correct";
} else {
if (x == "P") {
mA1();
mA4();
résultat1 = "correct";
résultat4 = "correct";
} else {
if (x == "Q") {
mA2(x);
mA5(x);
résultat2 = "correct";
résultat5 = "correct";
} else {
cout << "Qui êtes-vous ???" << endl;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
return 0;
}
int chiffrer(int m, int e) {
int c, n;
n = 43 * 67;
c = modexp(m, e, n);
return c;
}
string mA1() {
string résultat1;
string réponse;
cout << "En quelle année a été crée CESI ?" << endl;
cout << "Réponse A : 1972 ; Réponse B : 1958 ; Réponse C : 1986" << endl;
cout << "entrez la bonne lettre" << endl;
cin >> réponse;
if (réponse == "B") {
cout << "Question 1 validée" << endl;
} else {
cout << "Question 1 non validé" << endl;
}
cout << "Qui est le président actuel de la République française ?" << endl;
cout << "Réponse A : Donald Trump ; Réponse B : François Hollande ; Réponse C : Emmanuel Macron" << endl;
cout << "Entrez la bonne lettre" << endl;
cin >> réponse;
if (réponse == "C") {
cout << "Question 2 validée" << endl;
} else {
cout << "Question 2 non validé" << endl;
}
cout << "Combien y a-t-il de campus CESI en France ?" << endl;
cout << "Réponse A : 27 ; Réponse B : 25 ; Réponse C : 30" << endl;
cout << "Entrez la bonne lettre" << endl;
cin >> réponse;
if (réponse == "B") {
cout << "Question 3 validée" << endl;
cout << "Mécanisme 1 validé" << endl;
résultat1 = "correct";
} else {
cout << "Question 3 non validé" << endl;
}
return résultat1;
}
string mA2(string x) {
string résultat2;
int e, m, mp, c;
if (x == "A") {
e = 601;
} else {
if (x == "B") {
e = 619;
} else {
if (x == "C") {
e = 631;
} else {
if (x == "D") {
e = 641;
} else {
if (x == "E") {
e = 647;
} else {
if (x == "F") {
e = 653;
} else {
if (x == "H") {
e = 661;
} else {
if (x == "I") {
e = 673;
} else {
if (x == "J") {
e = 691;
} else {
if (x == "K") {
e = 701;
} else {
if (x == "L") {
e = 733;
} else {
if (x == "M") {
e = 739;
} else {
if (x == "N") {
e = 751;
} else {
if (x == "O") {
e = 797;
} else {
if (x == "P") {
e = 809;
} else {
if (x == "Q") {
e = 811;
} else {
cout << "Vous n'êtes pas reconnu" << endl;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
m = rand() % 2881;
c = chiffrer(m, e);
cout << "Message à déchiffrer :" << c << endl;
cin >> mp;
if (m == mp) {
cout << "Vous êtes authentifié ! Bienvenue agent" << x << endl;
résultat2 = "correct";
cout << "Mécanisme 2 validé" << endl;
} else {
cout << "Erreur d'authentification. Le processus de sécurité se déclenchera dans 5 secondes" << endl;
résultat2 = "incorrect";
}
return résultat2;
}
void mA2bis() {
}
string mA3() {
string résultat3;
string rétine;
cout << "Veuillez scaner votre rétine" << endl;
cin >> rétine;
if (rétine == "rétine") {
résultat3 = "correct";
cout << "Mécanisme 3 validé" << endl;
} else {
résultat3 = "incorrect";
}
return résultat3;
}
string mA4() {
string résultat4;
string digit;
cout << "Scannez votre empreinte" << endl;
cin >> digit;
if (digit == "doigt") {
résultat4 = "correct";
cout << "Mécanisme 4 validé" << endl;
} else {
résultat4 = "incorrect";
}
return résultat4;
}
string mA5(string x) {
string résultat5;
int carteID;
cout << "Veuillez entrer votre Carte ID" << endl;
cin >> carteID;
if (x == "A" && carteID == 1) {
cout << "Bonjour, agent A" << endl;
résultat5 = "correct";
} else {
if (x == "B" && carteID == 2) {
cout << "Bonjour, agent B" << endl;
résultat5 = "correct";
} else {
if (x == "C" && carteID == 3) {
cout << "Bonjour, agent C" << endl;
résultat5 = "correct";
} else {
if (x == "D" && carteID == 4) {
cout << "Bonjour, agent D" << endl;
résultat5 = "correct";
} else {
if (x == "E" && carteID == 5) {
cout << "Bonjour, agent E" << endl;
résultat5 = "correct";
} else {
if (x == "F" && carteID == 6) {
cout << "Bonjour, agent F" << endl;
résultat5 = "correct";
} else {
if (x == "G" && carteID == 7) {
cout << "Bonjour, agent F" << endl;
résultat5 = "correct";
} else {
if (x == "H" && carteID == 8) {
cout << "Bonjour, agent H" << endl;
résultat5 = "correct";
} else {
if (x == "I" && carteID == 9) {
cout << "Bonjour, agent I" << endl;
résultat5 = "correct";
} else {
if (x == "J" && carteID == 10) {
cout << "Bonjour, agent J" << endl;
résultat5 = "correct";
} else {
if (x == "K" && carteID == 11) {
cout << "Bonjour, agent K" << endl;
résultat5 = "correct";
} else {
if (x == "L" && carteID == 12) {
cout << "Bonjour, agent L" << endl;
résultat5 = "correct";
} else {
if (x == "M" && carteID == 13) {
cout << "Bonjour, agent M" << endl;
résultat5 = "correct";
} else {
if (x == "N" && carteID == 14) {
cout << "Bonjour, agent N" << endl;
résultat5 = "correct";
} else {
if (x == "O" && carteID == 15) {
cout << "Bonjour, agent O" << endl;
résultat5 = "correct";
} else {
if (x == "P" && carteID == 16) {
cout << "Bonjour, agent P" << endl;
résultat5 = "correct";
} else {
cout << "Vous n'êtes pas reconnu." << endl;
résultat5 = "incorrect";
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
return résultat5;
}
int modexp(int a, int e, int n) {
int r;
if (e < 0) {
cout << "Unhandled case" << endl;
exit(-1);
}
if (a == 0 || n == 1) {
r = 0;
} else {
r = 1;
while (e > 0) {
r = r * (a % n) % n;
e = e - 1;
}
}
return r;
}
// The following implements type conversion functions.
string toString (double value) { //int also
stringstream temp;
temp << value;
return temp.str();
}
int toInt (string text) {
return atoi(text.c_str());
}
double toDouble (string text) {
return atof(text.c_str());
}
Merci à vous.
Afficher la suite