Accueil > > > DE LOGIQUE DE PROGRAMMATION À JAVA
DE LOGIQUE DE PROGRAMMATION À JAVA
Information sur la source
Description
Cet exemple permet de convertir une suite d'instructions tel que : SI a>b ALORS a<-5 SINON a<-7 FINSI en if(a>b){ a=5; }else { a=7; }
Source
//JDK 1.5 !!!
import java.util.Scanner;// Classe Scanner (Lecture)
import java.io.File;
import java.util.regex.MatchResult;
//import java.util.regex.Matcher;
//import java.util.regex.Pattern;
public class Log2Java {
public static void main(String[] args) {
//Scanner clavier=new Scanner(System.in)
boolean trouvé=true;
MatchResult res;
if (args.length<1){
System.out.println("Utilisation : Log2Java fichier [-noSource]");
System.out.println("-noSource est optionel et permet de désactiver la sortie de la source...");
return;
}
File fich;
fich=new File(args[0]);
//Scanner fichier=new Scanner(System.in);
Scanner fichier;
try{
fichier=new Scanner(fich);
}catch(java.io.FileNotFoundException e){
System.out.println("fichier non trouvé");
return;
}
fichier.useDelimiter("\n");
System.out.println("import java.util.Scanner;\nScanner clavier=new Scanner(System.in);");
while(fichier.hasNextLine()){
//System.out.println(fichier.nextLine());
trouvé=true;
if (fichier.hasNext("\\W*SI (.*)ALORS(?://.*)?")){
//System.out.println("ok");
res=fichier.match();
if (res.groupCount()<1){
System.out.println("***ERREUR : Manque la condition !***");
}else {
String b;
b=res.group(1);
//b=b.replaceAll("\\bet\\b","&&");
b=conversion(b);
System.out.println("if("+b+"){");
}
}else if (fichier.hasNext("\\W*POUR (\\w*) DE (\\w*) A (\\w*)(?: PAR (.*))? FAIRE")){
res=fichier.match();
if (res.groupCount()<3){
System.out.println("***ERREUR : Manque une partie !!!***");
}else {
String variable,initialisation,fin;
variable=res.group(1);
initialisation=res.group(2);
fin=res.group(3);
if (res.group(4)!=null){
String pas=res.group(4);
int a=(Integer.decode(initialisation)-Integer.decode(fin));
System.out.println("for("+variable+"="+initialisation+";"+variable+((a<=0)?"<=":">=")+fin+";"+variable+"+="+pas+"){");
}else{
System.out.println("for("+variable+"="+initialisation+";"+variable+"<="+fin+";"+variable+"++){");
}
}
}else if (fichier.hasNext("\\W*TANTQUE (.*) FAIRE")){
res=fichier.match();
if (res.groupCount()>0){
System.out.println("while("+conversion(res.group(1))+"){");
}
}else if(fichier.hasNext("\\W*AFFICHER (.*)")){
res=fichier.match();
if (res.groupCount()>0){
System.out.println("System.out.println("+conversion(res.group(1))+");");
}
}else if(fichier.hasNext("\\W*FIN.*")){
System.out.println("}");
}else if(fichier.hasNext("\\W*SINON")){
System.out.println("}else{");
}else if(fichier.hasNext("\\W*LIRE (\\w*)")){
res=fichier.match();
System.out.println(res.group(1)+"=clavier.nextLine();");
}else if(fichier.hasNext("\\W*(\\w*)\\W*:entier")){
res=fichier.match();
if (res.groupCount()==1){
System.out.println("int "+res.group(1)+";");
}
}else if(fichier.hasNext("\\W*(\\w*)\\W*:chaîne")){
res=fichier.match();
if (res.groupCount()==1)System.out.println("String "+res.group(1)+";" );
}else if(fichier.hasNext("\\W*(\\w*)\\W*:bouléen")){
res=fichier.match();
if (res.groupCount()==1)System.out.println("boolean "+res.group(1)+";");
}{
trouvé=false;
}
if (args.length==1){
if (trouvé){
System.out.println("CS>>"+fichier.nextLine());
}else{
String tmp=fichier.nextLine();
System.out.println(conversion(tmp)+";");
System.out.println("CS>>"+tmp);
}
}else{
fichier.nextLine();
}
}
}
public static String conversion(String quoi){
quoi=quoi.replaceAll("\\bET\\b","&&");
quoi=quoi.replaceAll("\\bOU\\b","||");
quoi=quoi.replaceAll("\\bNON\\b","!");
quoi=quoi.replaceAll("=","==");
quoi=quoi.replaceAll("<-","=");
Scanner chaine=new Scanner(quoi);
MatchResult res;
if (chaine.hasNext(".*RACINE\\((.*)\\)")){
//System.out.println("ok" );
res=chaine.match();
//System.out.println("******"+res.group(1) );
quoi=quoi.replaceAll("RACINE\\(.*\\)","Math.sqrt("+res.group(1)+")");
}
return quoi;
}
}
Conclusion
L'une de mes sources en VB s'étend plus largement sur les re...
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
la logique de la programmation sous java [ par patlefils ]
je suis un débutant en info et je souhaite avoir des infos sur ce theme qui m'a été proposé
Convertir un String en Byte [ par theneo55 ]
Bonjour à tous,dans le projet que j'effectue je dois convertir un string (ex : 7e000100000107f) en un objet byte, sachant que 7e en byte devrait donne
programmation peer-peer [ par qjessye ]
Bonjour!j'aimerais savoir si quelqu'un à deja fait un chat en peer-peer avec TCP(en java).j'aurais besoin d'aide c'est pour un projet à rendre.merci d
Programmation 64Bit [ par ibreak ]
Bonjour tout le monde, alors voilà j'utilise eclipse pour la programmation java. Disposant d'un macbook pro, j'ai installé vista 64Bit. Dans le cadre
Convertir ontologie ecrite en OWL (Fichier XML) en une Ontologie ecrite en Logique description [ par netboydz ]
bonjour a tous, je veux Construire un Converter java pourune ontologie écrite en Owl en une Ontologie ecrite en Logique de description , je ne sais pa
Probleme avec mes pages JSP [ par tarekcom ]
Salut Tout le monde ,type Rapport d'exception <font style="BACKGROUND-COLOR: #525d76" color="#fff
jcreator [ par 60510 ]
bonsoir ,je m'appel sebastienje decouvre la programmation et j'aimerais qu'on m'explique comment debuter .j'ai installer jcreator et jdk et essaye ave
erreur sur tomcat [ par Nina2507 ]
bonjourj'ai un projet web, que je dois faire avec des servlet et des jspmais j'ai un enorme probleme, jusqu'à maintenant je n'ai pas arrivé à executé
Convertir Fichier Java To HTML [ par willy_r ]
Bonjour je cherche comment faire pour convertir un fichier java en html en gardant la même syntaxe que le fichier d'origine (couleur et mise en forme
Programmation structurée avec eclpise. ant, framwork....? [ par zinZ ]
Bonjour,Je suis en train de programmer un logiciel assez conséquent dans le cadre d'un stage de 4 mois.Pour ce qui est des fonctions spécifique je m'e
|
Derniers Blogs
[WF4] GROSSES MéPRISES EN PERSPECTIVE SUR LE KIT DE MIGRATION WF3->WF4[WF4] GROSSES MéPRISES EN PERSPECTIVE SUR LE KIT DE MIGRATION WF3->WF4 par JeremyJeanson
Comme un certain nombre de fanatiques des flux RSS, je suis avec grand intérêt les articles de la team WCF/WF et forcément l'annonce d'hier concernant un kit de migration WF3->WF4 m'a fait chaud au c½ur ;) (pour rappel, mon post au sujet de la migratio...
Cliquez pour lire la suite de l'article par JeremyJeanson RéUNION DU CLUB MOSS PARISRéUNION DU CLUB MOSS PARIS par VANNESTE Xavier
Bonjour à tous la réunion du club moss aura lieu le 15 mars 2010 à 14 heures:
14:00 - 14:05 Paris, EROL GIRAUDY + Gaetan BOUVERET + Nicolas Georgeault intro Présentateur : Pierre Erol GIRAUDY14:05 - 14:30 Paris, Worflow - visio Services - We...
Cliquez pour lire la suite de l'article par VANNESTE Xavier [WF4] ARGUMENT, QUI ES TU?[WF4] ARGUMENT, QUI ES TU? par JeremyJeanson
Quand je parle de Workflows ou d'activités (au passage, il s'agit de la même chose dans WF4 ;) ), je fais souvent la comparaison avec une méthode classique : Une activité peut avoir un retour, comme une méthode. Une activité peut avoir des arguments d'ent...
Cliquez pour lire la suite de l'article par JeremyJeanson [FAST] FORMATIONS GRATUITES EN E-LEARNING[FAST] FORMATIONS GRATUITES EN E-LEARNING par pierre
Bonjour, Quelques formations gratuites sur FAST: Developer Configuring Search UIs Presentation 37 minutes La...
Cliquez pour lire la suite de l'article par pierre MICROSOFT VISUAL STUDIO TEAM EXPLORER 2010 - NOM DE CODE "EAGLESTONE"MICROSOFT VISUAL STUDIO TEAM EXPLORER 2010 - NOM DE CODE "EAGLESTONE" par Etienne Margraff
Ca ne vous dit rien ?
Si vous êtes dans le monde Java et que vous utilisez Team Foundation Server, vous devez certainement connaître voir utiliser le plugin Team Prise. Il permet depuis plusieurs années d'avoir l'équivalent du Team Explorer ...
Cliquez pour lire la suite de l'article par Etienne Margraff
Forum
API COMMUNESAPI COMMUNES par katamara
Cliquez pour lire la suite par katamara RE : RANDOMRE : RANDOM par infogoss
Cliquez pour lire la suite par infogoss
Logiciels
Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor Xlite (v 3.0 build 41150)XLITE (V 3.0 BUILD 41150)c'est un logiciel qui permet de téléphoner par Internet à l'aide d'un compte SIP pratique pour le... Cliquez pour télécharger Xlite Academy System (10.9.3.0)ACADEMY SYSTEM (10.9.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Pacmin (1.1.0)PACMIN (1.1.0)Adaptation du célèbre jeu d'arcade. Incarnez une équipe de fantômes ou de pacmans et détruisez vo... Cliquez pour télécharger Pacmin italc (1.0.9)ITALC (1.0.9)italc permet de voir ce que font les ordinateurs de votre réseau (attention : juste pour petit ré... Cliquez pour télécharger italc
|