Votre question

EXE: Alphabet binaire

Tags :
  • Créer un programme
  • Programmation
Dernière réponse : dans Programmation
6 Septembre 2005 18:59:21

Bonjour
J'aimerais bien me faire enligner au sujet de la programmation EXE.
Je ne connais, mais nullement, le language C++ (qui est la base de cela je crois?),
mais je suis prêt à m'y consacrer. Les "tutorials" ou votre aide sont les bienvenues.

Voici ce que j'ai en tête.
Je souhaite créer un programme exécutable (exe) qui, à l'entrée d'une phrase quelconque (alphabet),
me traduise le tout en binaire. Selon ma bonne logique, cela ne semble pas ardu,
mais je ne connais pas ce genre de code de programmation ni comment l'appréhender, alors...

-Mieu vaut bcp écrire que de sombrer dans l'incompréhensible...-

Merci !

Manuel Patry

Autres pages sur : exe alphabet binaire

6 Septembre 2005 19:15:25

le langage C++ n'est aucunement à la base des EXE !
Tout langage compilé, ou presque, peut produire des .exe

Par exemple, le langage Ocaml, que j'aime bien et qui est simple (plus que le C++) tout en étant puissant (autant que le C++), peut faire ca très facilement.

  1. let rec afficher_valeur_binaire valeur =
  2. if valeur > 0 then begin
  3. print_int (valeur mod 2);
  4. afficher_valeur_binaire (valeur/2)
  5. end
  6. in
  7.  
  8. let phrase = read_line() in
  9. for lettre = 0 to (String.length phrase) - 1 do
  10. afficher_valeur_binaire (int_of_char phrase.[lettre])
  11. done;
  12. print_newline();
6 Septembre 2005 19:32:28

Si je comprend bien, ce que tu m'écris là est le code
qui ferait en tout l'application que je désire ? (alphabet à binaire)
Mais il reste toujours le problème que je ne sais pas du tout ce que toute c'est phrase veulent dire !!
Il me faudrait un tutoriel ou une base de données qui m'expliquerait le signification de chaques termes (let phrase, for lettre,print_int, etc.).

Comme quoi ?

Sinon, dans quel logiciel puis-je entré c'est ligne que tu viens de me donner pour avoir mon programme ?

Merci

Manuel Patry
Contenus similaires
Pas de réponse à votre question ? Demandez !
a b L Programmation
6 Septembre 2005 19:58:49

qu'entends-tu par alphabet binaire ? Peux-tu donner un exemple ?

Sinon pour le langage, je te conseille plutôt le python qui est encore plus simple dans la syntaxe.
6 Septembre 2005 20:14:43

Il suffit d'installer ocaml, et de compiler ce programme.

Pour des cours de ocaml accessibles aux débutants, et qui expliquent tout ce que j'ai utilisé ici, vas sur
http://www.france-ioi.org/cours_caml
(un lien vers le compilateur et tout et tout est fourni).

Si tu le désires, je peux aussi compiler ce programme depuis chez moi et te l'envoyer par mail. (il me faut ton mail).

Pour le python, je ne crois pas qu'il gère pour l'instant la compilation : il est interprété, et n'est donc pas un choix pertinent dans ce cas là.
6 Septembre 2005 20:34:55

C'est bien beau tout cela, mais je ne pourrais toujours rien comprendre au codes.

Si tu peux m'envoyer le programme déjà fait, hourra!
skatenjoi@gmail.com



p.s. (Alphabet à binaire = voir le premier topic)
a b L Programmation
6 Septembre 2005 20:44:52

Effectivement ce n'est pas de la compilation en exécutable, mais de la compilation (en fichier .pyc) qui accélère le lancement du code (un peu comme le Java avec sa JVM).
Bon je ne dis pas que caml c'est pourri. C'est bien mais ce n'est pas le top. ;-)
6 Septembre 2005 21:02:52

jparle pas de caml, mais de Ocaml :p 
(ya quand meme une nuance importante hein, surtout si t'as appris le caml dans le cadre de tes études)
a b L Programmation
6 Septembre 2005 21:06:08

Citation :

skatenjoi a écrit :
[...]
p.s. (Alphabet à binaire = voir le premier topic)

Oui, c'est bien ça que je n'ai pas compris !
tu veux tranformer des caractère en code binaire codé en ASCII et afficher les bits ?
a b L Programmation
6 Septembre 2005 21:11:31

Citation :

bluedylc a écrit :
jparle pas de caml, mais de Ocaml :p 
(ya quand meme une nuance importante hein, surtout si t'as appris le caml dans le cadre de tes études)

Effectivement, je ne connais pas le Ocaml, c'est quoi la différence ?

ps: désolé skatenjoi pour la déviation du topic ;-)
6 Septembre 2005 23:40:26

ok je recommence en faisant ça plus simple.

Je souhaite créer un programme où je pourrais entrer des phrases de mon choix et qu'en cliquant
sur un "piton" quelconque, le programme transforme
ma phrase en chiffres binaires (du style A=1, B=10, C=11, D=100, E=101,, Z=11 010 (le code binaire étant la position de la lettre dans la l'alphabet (sur 26))).
Voilà.

Je me fiche du code à utiliser, je ne compte pas aller plus loin pour le moment. Je sais que ce n'est pas très compliqué de faire le tout et si quelqu'un veux le faire pour moi je lui en serais très reconnaissant.

Merci !
Manuel Patry
a b L Programmation
7 Septembre 2005 13:33:59

voivi le programme en C (C++ aussi) qui permet de faire ça:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stRING.h>
  4.  
  5. int main(int argc, char *argv[])
  6. {
  7. // Déclaration de la chaine (tableau de caractères)
  8. char chaine[65536];
  9.  
  10. // Déclaration de l'index du caractère courant qui sera utilisé dans la boulce
  11. int i, j;
  12.  
  13. // Le code du caractère courant
  14. int numeroCaractere = 0;
  15.  
  16. // Demande à l'utilisateur la chaine
  17. scanf("%s", chaine);
  18.  
  19. // Boucle sur tous les caractères (un tableau commence par 0)
  20. for( i = 0 ; i < strlen(chaine) ; ++i)
  21. {
  22.  
  23. // on récupère le caractère
  24. char caractere = chaine[ i ];
  25.  
  26. // en fait un char est codé en ASCII, c'est déjà une valeur binaire
  27. // mais elle ne commance pas par 0 pour 'a', et il y a les minuscule et
  28. // les majuscules
  29. if( caractere >= 'a' && caractere <= 'z' )
  30. numeroCaractere = caractere - 'a';
  31. else if( caractere >= 'A' && caractere <= 'Z' )
  32. numeroCaractere = caractere - 'A';
  33.  
  34. // on indique le caractère à lire
  35. printf( "Caractère n°%d ('%c'):", i, caractere );
  36.  
  37. // affichage du numéro en binaire
  38. // boucle sur tous les bits du nombre (on se limite à 5 bits car
  39. // 26 < 2^5 = 32
  40. for( j = 0 ; j < 5 ; ++j)
  41. {
  42. // On teste en faisant un masque binaire ET sur le bit à tester
  43. // l'opérateur << décale les bit vers la gauche, pour déplacer le bit
  44. // là on veut tester
  45. // et on commance par la gauche (d'où l'inversion par 5 - j)
  46. int masque = (0x01 << (4 - j));
  47.  
  48. if( (numeroCaractere & masque) > 0 )
  49. printf( "1" );
  50. else
  51. printf( "0" );
  52. }
  53.  
  54. // Saut à la ligne suivante
  55. printf( "\n" );
  56. }
  57.  
  58. system("PAUSE");
  59. return 0;
  60. }


Mais attention en C et C++ tout commance par 0: le premier caractère est 0, le deuxième 1 etc.
d'ailleurs 'numeroCaractere' vaut 0 pour 'a', mais tuu peux remplacer
numeroCaractere = caractere - 'a';
par
numeroCaractere = caractere - 'a' + 1;

si tu veux que ça commance par 1.

Si tu veux plus d'explication n'hésite pas à demander ;-)
7 Septembre 2005 18:31:30

Merci pour toutes ces précisions, mais je ne sais fichetrement pas où mettre sé code et quoi en faire !

en attente de directives...
7 Septembre 2005 19:07:18

dans mon mail, je t'ai envoyé le programme compilé, pourquoi ne l'as-tu pas recu ?
a b L Programmation
7 Septembre 2005 19:25:14

Pour caml prend le mail de bluedylc ;-)

Pour le C:
- sous windows, si tu tiens à en faire (c'est pas le mieux pour commencer à programmer, car un peu complexe), tu peux installer Dev-c++ qui est gratuit, tu fais un nouveau projet en mode console, tu crée un fichier .c dans le projet, tu copie ce texte, tu compiles et exécute.
- sous linux, tu mets dans un fichier texte (en extension .c par exemple main.c) et dans une console tu tapes: gcc main.c -o monProgramme.
8 Septembre 2005 00:25:40

J'ai bel et bien reçu ton mail bluedylc, mais le programme que tu m'as fais était un .skatenjoi (wtf?)
pourquoi pas .exe ?

Et au risque de me faire traiter de fénéasse, y'a pas
l'un d'entre vous qui pourrait me le faire ce programme. Genre m'envoyer un .exe ou quoi que ce soit que j'ouvre sous windows et qui va exécuter
ce que je lui demande ??

merci d'avance
MP
8 Septembre 2005 14:22:13

faut le renommer en .exe !!
Tu crois que je peux envoyer des .exe par gmail ?

edit : la prochaine fois, envoie moi un mail pour me demander de l'aide, plutot que d' ignorer purement et simplement mon boulot :-P
8 Septembre 2005 19:02:37

Bien bien...
Dsl Bluedylc si j'ai fait ça, mais sé parce que le fichier
que tu m'as envoyé (.skatenjoi) même renommer
en .exe ne fait rien du tout. Une fenêtre de style "MS-DOS" s'ouvre ¼ de seconde et se referme toute suite, rien de plus. Merci tout d'même, je t'en suis
reconnaissant même si sa marche pas hehe
J'ai tu omis de faire quelque chose ?
8 Septembre 2005 19:36:59

hum. il faut que tu lances une console dans le meme repertoire, et que tu execute ce fichier depuis la console (c'est comme ca avec tous les fichiers compiles simples).

Pour lancer la console : programmes > accessoires > invite de commande, ou alors tu cree dans le repertoire un fichier 'start.bat', bouton droit > editer, tu mets 'start', tu enregistres et tu le lance, ca devrait ouvrir un terminal.
16 Mai 2006 18:16:14

Salut.
Peut-on faire l'alphabet en binaire?
Si oui, est-ce-que quelqu'un pourrais m'expliquer comment?
Merci
16 Mai 2006 20:26:42

Citation :

bluedylc a écrit :
hum. il faut que tu lances une console dans le meme repertoire, et que tu execute ce fichier depuis la console (c'est comme ca avec tous les fichiers compiles simples).

Pour lancer la console : programmes > accessoires > invite de commande, ou alors tu cree dans le repertoire un fichier 'start.bat', bouton droit > editer, tu mets 'start', tu enregistres et tu le lance, ca devrait ouvrir un terminal.


Lorsque j'essai d'ouvrir "phrase_binaire.exe" dans l'invite de commande MS-DOS, il me renvoit l'erreur "programme trop grand pour tenir en mémoire".
Alors je suis bloqué ici.
Merci

(dsl pour l'attente)
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS