Pour les fanes de C++ (HELP)

Fermé
l-ghost Messages postés 5 Date d'inscription samedi 26 juillet 2008 Statut Membre Dernière intervention 3 août 2008 - 2 août 2008 à 20:25
l-ghost Messages postés 5 Date d'inscription samedi 26 juillet 2008 Statut Membre Dernière intervention 3 août 2008 - 3 août 2008 à 20:24
Bonjour,
voila je suis debutant en cryptographie, et pour faire une fréquence d'apparution ca me prend tro de temps, donc si vous pouvez me faire un programme qui va effectuer cette tache ca sera hyper sympo de votre part car je connais presque rien en programation.
l'enjeu consiste a calculer le nombre de fois que chaque lettre apparait ds un texte que je saisis pour ce programme.
espérant que j aurais des rps. Merci.

1 réponse

D-Predator Messages postés 257 Date d'inscription dimanche 3 août 2008 Statut Membre Dernière intervention 25 janvier 2009 80
3 août 2008 à 07:34
Voici une solution somple et efficace. À compiler avec Microsoft Visual C++. Si tu ne l'a pas, je peux t'envoyer le .exe:

#include <iostream>
#include <iomanip>

using namespace std;

int main() {
	char ligne[255] = {0};
	cout << "Veuillez écrire du texte SANS appuyer sur Enter, sauf à la fin: ";
	cin.getline(ligne, 255);
	char* ligneEnMajuscule = _strupr(ligne);
	short tableau[255] = {0};
	int total = 0;
	for(size_t I = 0; I < strlen(ligneEnMajuscule); I++) {
		unsigned char caractere = ligneEnMajuscule[I];
		if(caractere >= 33) {
			tableau[caractere]++;
			total++;
		}
	}
	cout << "Caractère | Compte | Pourcentage\n";
	for(int I = 0; I <= 255; I++) {
		if(tableau[I] > 0) {
			cout << ((char)I) << " | " << tableau[I] << " | " << fixed << setprecision(2) << (((float)tableau[I] / total * 100)) << "%\n";
		}
	}
	cout << total << " Caractère(s) reconnu(s)\n";

	system("PAUSE");
	return 0;
}


Exemple d'utilisation:
Veuillez Úcrire du texte SANS appuyer sur Enter, sauf Ó la fin: ftvseyzvsqtesmy
vxeizrsemrvxgqlesmmwwpmilwdjzsimxwttevvsxgmlgemmtriiewym
CaractÞre | Compte | Pourcentage
D | 1 | 1.39%
E | 8 | 11.11%
F | 1 | 1.39%
G | 3 | 4.17%
I | 5 | 6.94%
J | 1 | 1.39%
L | 3 | 4.17%
M | 10 | 13.89%
P | 1 | 1.39%
Q | 2 | 2.78%
R | 4 | 5.56%
S | 7 | 9.72%
T | 5 | 6.94%
V | 6 | 8.33%
W | 5 | 6.94%
X | 4 | 5.56%
Y | 3 | 4.17%
Z | 3 | 4.17%
72 CaractÞre(s) reconnu(s)
Appuyez sur une touche pour continuer...
0
l-ghost Messages postés 5 Date d'inscription samedi 26 juillet 2008 Statut Membre Dernière intervention 3 août 2008
3 août 2008 à 20:24
merci bcp
0