Petit exo en simplejava
Fermé
Bonjour, cela va peut être vous paraître très simple mais je débute la programmation en simplejava, je connais les diffèrentes structures(boucles, si sinon ...) . Je voudrais réaliser un programme en simplejava, qui parcours une chaine de caractère et qui associe à chaque caractère, le caractère + 3 dans l'alphabet . Par exemple, pour la lettre "a" , il associe "d" , ceci pour chaque caractère de la chaine. Par exemple, si je rentre : "bonjour" , je dois obtenir : "erqmrxu" . Le but étant de "crypter" le message, même si la méthode utilisé est très simple, c'est juste pour s'entrainer. Le problème c'est que je ne vois pas trop comment procéder...
A voir également:
- Petit exo en simplejava
- Comment imprimer une photo en petit ✓ - Forum Photo numérique
- Trier du plus petit au plus grand excel - Guide
- Comment imprimer en petit format - Guide
- Petit 2 ✓ - Forum Bureautique
- Imprimer une photo à la taille qu'on veut? - Forum Photo numérique
9 réponses
Hmmm, toi, tu es Lillois pour tes études :-)
Pour en revenir au problème qui nous intéresse, l'opérateur + fonctionne entre les char et les int.
Tu peux donc faire A=(char)(A+3); (en suipposant que A soit une variable de type char).
Par exemple, A='r'; A=(char)(A+3); System.out.print(A); t'affichera le caractère u.
Il te suffit de faire ça pour tout les caractères de ta chaîne, et le tour est joué !
Pour en revenir au problème qui nous intéresse, l'opérateur + fonctionne entre les char et les int.
Tu peux donc faire A=(char)(A+3); (en suipposant que A soit une variable de type char).
Par exemple, A='r'; A=(char)(A+3); System.out.print(A); t'affichera le caractère u.
Il te suffit de faire ça pour tout les caractères de ta chaîne, et le tour est joué !
En java, ca marche en tout cas. Je suppose que simplejava l'accepte aussi...
Par contre, c'est le cas général. Il reste 3 cas particuliers à faire manuellement :-)
Par contre, c'est le cas général. Il reste 3 cas particuliers à faire manuellement :-)
En fait moi c'est du simplejava, donc j'ai essayé d'utiliser la fonction charToString qu'on peut utilisé en java apparamment, mais dans le logiciel de compilation simplejava que le prof a crée pour nous je ne peux pas l'utiliser, il ne connais pas la méthode charToString, je n'ai que ces méthodes pour les chaines :
• char charAt(String,int)
• int longueur(String)
• String concatener(String,String)
• String sousChaine(String,int,int)
• String intToString(int)
• String doubleToString(double)
• int stringToInt(String)
• double stringToDouble(String)
• boolean lessThan(String,String)
• boolean lessThanOrEqualsTo(String,String)
• boolean greaterThan(String,String)
• boolean greaterThanOrEqualsTo(String,String)
• boolean equalsTo(String,String)
• boolean notEqualsTo(String,String)
Donc je ne pense pas que ta méthode va passer dans le logiciel que j'ai....compliqué hein?
• char charAt(String,int)
• int longueur(String)
• String concatener(String,String)
• String sousChaine(String,int,int)
• String intToString(int)
• String doubleToString(double)
• int stringToInt(String)
• double stringToDouble(String)
• boolean lessThan(String,String)
• boolean lessThanOrEqualsTo(String,String)
• boolean greaterThan(String,String)
• boolean greaterThanOrEqualsTo(String,String)
• boolean equalsTo(String,String)
• boolean notEqualsTo(String,String)
Donc je ne pense pas que ta méthode va passer dans le logiciel que j'ai....compliqué hein?
non, getBytes, il faut l'appliquer à un String, pas au char :) Mais ceci dit, effectivement, je ne pense pas que ce soit la méthode que ton prof veuilles que tu emploies (sinon, ce ne serait pas la peine d'avoir mijoté simplejava :) )
(rhaa ! Et evidemment, y'a pas le source dans le .jar de simplejava, donc on ne peut pas voir ce qu'il fait exactement avec les bouts de code qu'on lui rentre...)
Hmmmm... j'essaye de faire des tests et je te dis quoi...
(rhaa ! Et evidemment, y'a pas le source dans le .jar de simplejava, donc on ne peut pas voir ce qu'il fait exactement avec les bouts de code qu'on lui rentre...)
Hmmmm... j'essaye de faire des tests et je te dis quoi...
Le source est peut être dans le jar de simplejava, tu l'as aussi le logiciel? Le prof ne m'a pas donné l'exo à faire, c'est moi qui me le suis concocté pour m'entrainer:) Mais il doit bien y avoir moyen, on a fait des petits programe comme le mirroir, palindrome...et là j'ai pensé à ce problème de caractère + 3 ...etc. En gros comment appliqué pas mal de changement à une chaine de façon automatique pour qu'elle soit cryptée, je pensais que ça allait être simple mais ...
merci encore pour ton aide! J'ai envoyé un mail à ma prof pour lui demander si elle pouvait m'aider, on verra bien ce qu'elle dira...
J'ai trouvé d'autres alternatives plus longues(plusiuers boucles imbriquées, une pour l'alphabet, une pour parcourir la chaine de caractère, limite une encore en plus avec des nombres jusqu'à 26) mais c'est trop compliqué à faire je pense...
merci encore pour ton aide! J'ai envoyé un mail à ma prof pour lui demander si elle pouvait m'aider, on verra bien ce qu'elle dira...
J'ai trouvé d'autres alternatives plus longues(plusiuers boucles imbriquées, une pour l'alphabet, une pour parcourir la chaine de caractère, limite une encore en plus avec des nombres jusqu'à 26) mais c'est trop compliqué à faire je pense...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je l'ai téléchargé sur le site de 'IUT de Lille. J'ai essayé d'en faire quelque chose, mais en l'absence de doc, c'est dur :) Même pour un programme tout bête qui ne fait rien, je me prend un NullPointerException à la compilation (et là, ça doit venir de la cuisine interne du logiciel, étant donné que je n'ai utilisé que des types primitifs...)
Oui, il y a toujours la méthode bourrin de faire 26 if en fonction de ce que retourne charAt (ou un switch à 26 cas, si ca existe en simplejava...) mais effectivement, ce n'est pas très joli :-)
Dis-moi ce qu'il en est en tout cas, je suis curieux de voir ça...
Oui, il y a toujours la méthode bourrin de faire 26 if en fonction de ce que retourne charAt (ou un switch à 26 cas, si ca existe en simplejava...) mais effectivement, ce n'est pas très joli :-)
Dis-moi ce qu'il en est en tout cas, je suis curieux de voir ça...
Ah, mieux, le premier TP a l'air de détailler plus de choses, contrairement à ce que propose l'auteur original... Je regarde ça...
Arrgh ! Faut installer la 1.5... je n'ose même pas imaginer comment ça a été codé pour être incompatible avec la 1.6... :/ Bon, heureusement, j'ai le mac à coté...
YES ! On peut quand même pallier au manque de certaines fonctions dans simplejava !
Ce code là fonctionne (j'ai "oublié" de déclarer les variables dans la partie prévue à cet effet, mais ça fonctionne très bien quand même...)
String s = new String("Ratapoil ugusse");
byte[] c = s.getBytes();
byte trois=3;
for (int i=0;i<c.length; i++) {
c[i]=(byte)(c[i]+3);
}
s = new String(c);
println(s);
Je n'ai pas fait le test de l'espace ou des lettres x y et z, mais pour le reste, ça marche...
"byte", c'est le type octet en java (d'autres langages considèrent que byte et char sont exactement la même chose, mais pas java apparemment).
Si j'ai bien compris son fonctionnement, simplejava prend le bout de code que tu lui entres, colle un tas de fioritures autour de manière à en faire un vrai programme java, le compile, et l'exécute. Par contre, je ne sais pas ce qu'il fait au juste de la partie "variables", mais on peut pas mettre tout le code dedans. Pas drôle :)
Ce code là fonctionne (j'ai "oublié" de déclarer les variables dans la partie prévue à cet effet, mais ça fonctionne très bien quand même...)
String s = new String("Ratapoil ugusse");
byte[] c = s.getBytes();
byte trois=3;
for (int i=0;i<c.length; i++) {
c[i]=(byte)(c[i]+3);
}
s = new String(c);
println(s);
Je n'ai pas fait le test de l'espace ou des lettres x y et z, mais pour le reste, ça marche...
"byte", c'est le type octet en java (d'autres langages considèrent que byte et char sont exactement la même chose, mais pas java apparemment).
Si j'ai bien compris son fonctionnement, simplejava prend le bout de code que tu lui entres, colle un tas de fioritures autour de manière à en faire un vrai programme java, le compile, et l'exécute. Par contre, je ne sais pas ce qu'il fait au juste de la partie "variables", mais on peut pas mettre tout le code dedans. Pas drôle :)
Non, d'Orléans. Mais j'avais entendu parler du simplejava des Lillois qui permettait de faire faire du java aux étudiants sans leur parler de programmation objet, ni leur dire "bon, y'a des lignes magiques, mettez les tout le temps, vous verrez plus tard à quoi elles servent" :)
(mais personellement, je pense qu'il y a des langages plus appropriés pour s'initier à l'algo / la programmation, comme ADA, voire Python... Mais bon, ceci est un autre sujet ;-) )
Il semblerait que simplejava permette de rajouter relativement simplement des fonctions supplémentaires ceci dit (il y a un répertoire .simplerjava qui contient moultes choses, dont des fichiers qui semblent contenir la définition de toutes les fonctions directement disponibles dans simplejava). Donc, au pire, il doit être possible de demander gentiment à son auteur...
(mais personellement, je pense qu'il y a des langages plus appropriés pour s'initier à l'algo / la programmation, comme ADA, voire Python... Mais bon, ceci est un autre sujet ;-) )
Il semblerait que simplejava permette de rajouter relativement simplement des fonctions supplémentaires ceci dit (il y a un répertoire .simplerjava qui contient moultes choses, dont des fichiers qui semblent contenir la définition de toutes les fonctions directement disponibles dans simplejava). Donc, au pire, il doit être possible de demander gentiment à son auteur...
Ok, ba en fait je fais un semestre 1 bis (en décalé), j'était trop juste pour passer en semestre 2 donc je refait direct un semestre 1 en décalé, et en fait pendant mon premier semestre 1, on avait fait de l'ADA, je préfèrait ce language, là je suis d'accord avec toi, soit on fait du vrai java, mais pas facile pour débuter, soit on fait de l'ada...
22 févr. 2009 à 22:46
22 févr. 2009 à 22:53