PLUS PETIT OU PLUS GRAND

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 11 déc. 2010 à 22:13
wkenw Messages postés 19 Date d'inscription mardi 30 septembre 2008 Statut Membre Dernière intervention 3 août 2009 - 13 déc. 2010 à 09:31
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52596-plus-petit-ou-plus-grand

wkenw Messages postés 19 Date d'inscription mardi 30 septembre 2008 Statut Membre Dernière intervention 3 août 2009
13 déc. 2010 à 09:31
Tape string c++ dans google. Tu verras entre autres www.cplusplus.com/reference/string/string, dans lequel tu trouveras la methode c_str.
Venomt09 Messages postés 4 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 12 décembre 2010
12 déc. 2010 à 14:25
ok, merci de l'explication, mais juste a titre d'information, dans mon programme les textboxs renvoie des strings et non des char je me demandais donc comment convertir une string en char jai chercher un peu mais je n'ai pas vraiment réussi à l'appliquer c'est pourquoi j'ai fais cette longue chaine de if pour attitré, metton que l'utilisateur entre la lettre "j" ou "J", lui attitré un "chiffrechoisi" pour qui ensuite vérifie s'il est plus grand ou plus petit que le chiffre aléatoire entre 0 et 26(qui est le nombre de lettre dans l'alphabet" encore une fois mes connaissances me limitais puisque mon but était de faire en sorte que le programme choisisse une lettre aléatoire dans l'alphabet et que le programme valide celle entrée par l'utilisateur dans le textbox pour lui dire si la lettre qu'il doit deviné est plus grand ou plus petite dans l'alphabet, donc je ne savais pas comment convertir une string en char ce qui me limitais pour faire ta technique ou à moins qu'on puisse la faire quand même mais bon... je sais que le code n'est vraiment pas élégant mais c'est le résultat que je voulais, je sais vous allez me dire c'est pas le résultat qui compte mais dans ce cas ci pour mon cour ça l'étais...
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
12 déc. 2010 à 10:32
Je vais répodre ici à ton MP en espérant que ça profitera à d'autres.

"...une soustraction de string me semble un peu étrange..."
Si vraiment la prog t'intéresse, il faut abandonner de suite l'interprété (.NET ici) qui t'obscurcit le cerveau de tas de faux concepts comme on peut le voit à ta phrase plus haut.

On va donc parler d'une chaine (et non d'une 'String').
char sz[24];
'sz' est l'ADRESSE base du 1er octet (sz[0]) partant de laquelle on a réservé 24 octets EN TOUT.
sz n'est donc rien d'autre qu'un NOMBRE puisque c'est une adresse en mémoire.
Le dernier octet est donc à sz+23 (ou sz{23]).
L'octet sz[23] DOIT contenir un ZERO si on veut manipuler sz comme une chaine.

Reprenons ton probleme.
On va accepter les caractères 'a:z', 'A:Z'.

Une fonction: void Func(DWORD vMajusc);

BYTE b;
b = (BYTE) sz[0];
if(b < 65) return; // < 'A'
if(b > 122) return; // > 'z'
if(b <= 90) goto goFunc; // ok est majuscule
if(b < 97) return;
b -= 32; // minuscule passe en valeur de majuscule
goFunc:
Func(b);
Venomt09 Messages postés 4 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 12 décembre 2010
12 déc. 2010 à 02:35
merci de l'explication bactérius, j'ai quand même mis le dossier du projet visual studio si ça peut aider certains
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
12 déc. 2010 à 02:31
Et là t'es pas renfermé ? Assumes-le : ton code n'est pas efficace. Il donne peut-être le bon résultat, mais n'y-a-t-il pas une différence entre un code qui met dix minutes à trouver un résultat et un code qui en met une ? Bon, c'est un peu caricaturé mais l'idée est là, il y a moyen de faire beaucoup mieux avec très peu d'effort et c'est ceci qui t'est reproché. On ne s'attend evidemment pas à un code parfait, mais au moins un truc décent. Il n'est jamais agréable de se voir critiqué, mais il faut savoir l'admettre quand quelque chose n'est juste pas assez bon.

"a tu au moins vu la source du code que j'ai pris et l'a tu compiler pour comparer les deux"
Excuses-moi mais quand je lis le contenu de la méthode button_jouer_Click, j'ai des envies de suicide. Ce n'est pas élégant, il y a moyen de faire la même chose en trois lignes avec seulement un peu de logique.

"vous n'avez même pas pris la peine de regarder le résultat"
Mets-toi ceci dans la tête : en programmation, on se fiche du résultat, ce qu'on aime c'est un code efficace et élégant. Le résultat viendra avec.

Arrêtes de te croire le plus malin et essaye de comprendre ce qu'on essaye de te dire. Si tu en es capable, tu pourras sûrement progresser et faire mieux. Si tu n'en es pas capable, tu n'arriveras à rien et tu resteras au même niveau. Tous les programmeurs ont commencé avec des codes mauvais, la différence c'est que les programmeurs qui ont réussi sont ceux qui ont su apprendre. Commencer c'est facile, progresser l'est moins.

Cordialement, Bacterius !
Venomt09 Messages postés 4 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 12 décembre 2010
12 déc. 2010 à 02:18
Quand meme drole, me "fermer comme une coquille a toute remarque", vraiment? lol et tu dit que mon code n'atteing pas le niveau de débutant, jai bien ris, a tu au moins vu la source du code que j'ai pris et l'a tu compiler pour comparer les deux? et puis, sur quoi vous basez vous pour évaluer le niveau "débutant"? désoler mon newbisme c'est la premiere fois je publie quelque chose ici mais je suis a peu pret sur que vous n'avez meme pas pris la peine de regarder le résultat. enfin bref, jdevrais peut etre vous donner l'éxécutable, jai omis de le mettre
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
12 déc. 2010 à 02:11
Je pense que tu as mal compris le commentaire de BruNews. On ne te demande pas un code d'une efficacité algorithmique inébranlable, on demande juste quelque chose de niveau "Débutant" au moins. Sans vouloir te vexer, ton code n'atteint pas ce niveau. Au lieu de te fermer comme une coquille à toute remarque, essaye d'élargir tes horizons et prends-en de la graine. La programmation, ça ne s'apprend pas en une nuit.

Cordialement, Bacterius !
Venomt09 Messages postés 4 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 12 décembre 2010
11 déc. 2010 à 23:45
réponse a brunews, le but n'étais pas de faire un code d'une éfficacité algorithmique innébranlable mais bien d'ajouter des fonctionnalités a un programme quelconque.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 déc. 2010 à 22:13
Il n'y a pas l'ombre d'un demi quart d'algo.
Même en piochant tout au fond de ma diplomatie, je dis tout net que c'est d'une nullité affligente.
if(c a || c 'A') n = 0;else if(c b || c 'B') n = 1;
else if ... ainsi de suite sur au moins 20 cas.

On teste les bornes en 3 if et ensuite 1 soutraction suffisait.
Bien entendu je ne suis pas allé + loin dans le H qui contient tout.

Ne sera pas conservé.
Les exercices de débutant sont à conserver sur vos disques durs.
Rejoignez-nous