Ro00
Messages postés2Date d'inscriptionmardi 3 novembre 2020StatutMembreDernière intervention 3 novembre 2020
-
Modifié le 3 nov. 2020 à 20:01
Ro00
Messages postés2Date d'inscriptionmardi 3 novembre 2020StatutMembreDernière intervention 3 novembre 2020
-
3 nov. 2020 à 19:21
Bonjour,
c'était demandé de moi d'écrire un code de programmation en java de déterminisation d'un automate non déterministe sans epsilon transitions par la méthode de construction des sous ensembles ...l'entrée et la sortie de ce code est un fichier txt avec le format suivant :
la 1 ère ligne:les symboles de l'alphabet séparés par des éspaces
la 2 : les états de l'automate séparés par des éspaces
la 3 : les états initiaux
la 4 : les états finaux
à partir de la 5 ligne : la fonction de transition segma(p,a)=q sous forme de triplets : p a q</bold>
pour le moment j'ai écris quelques lignes de code mais je ne sais pas comment continuer !
voilà ce que j'ai :
package thl_tp_determinisation;
import java.io.BufferedWriter;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.util.StringTokenizer;
public class main {
public static void main(String []args) throws IOException
{
File file = new File("/Users/mac/Desktop/Thl_Tp_determinisation/tp.txt");
if (!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
else {
try{
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
bw.write(" a b ");
bw.newLine();
bw.write(" 0 1 2 3 4 ");
bw.newLine();
bw.write(" 0 ");
bw.newLine();
bw.write(" 1 3 ");
bw.newLine();
bw.write(" 0 b 1 ");
bw.newLine();
bw.write(" 0 a 2 ");
bw.newLine();
bw.write(" 0 b 3 ");
bw.newLine();
bw.write(" 0 a 4 ");
bw.newLine();
bw.write(" 1 b 1 ");
bw.newLine();
bw.write(" 1 a 2 ");
bw.newLine();
bw.write(" 2 b 2 ");
bw.newLine();
bw.write(" 2 a 1 ");
bw.newLine();
bw.write(" 3 b 3 ");
bw.newLine();
bw.write(" 3 a 4 ");
bw.newLine();
bw.write(" 4 a 4 ");
bw.newLine();
bw.write(" 4 b 3 ");
bw.newLine();
BufferedReader br = new BufferedReader(new FileReader(file));
String line = br.readLine();
while (line != null) {
System.out.println(line);
line = br.readLine();
}
String a0="0 a";
String b0="0 b";
while (line != null) {
int i;
String s=" ";
for(i=line.indexOf("1 3");i<line.length();i++){
line = br.readLine();
if (s==a0){
line = br.readLine();
if (s==a0){
bw.write(a0+",24");
System.out.println(line);
line = br.readLine();
bw.newLine();
}
}
if (s==b0){
line = br.readLine();
if (s==b0){
bw.write(b0+",13");
System.out.println(line);
line = br.readLine();
bw.newLine();
}
}
}
String a1="24 a";
String b1="13 b";
String a2="24 b";
String b2="13 a";
String a3="14 a";
String b3="14 b";
String a4="23 a";
String b4="23 b";
bw.write(a1+",14");
bw.newLine();
System.out.println(line);
line = br.readLine();
bw.write(b1+",13");
System.out.println(line);
line = br.readLine();
bw.newLine();
bw.write(a2+",23");
System.out.println(line);
line = br.readLine();
bw.newLine();
bw.write(b2+",24");
System.out.println(line);
line = br.readLine();
bw.newLine();
bw.write(a3+",24");
System.out.println(line);
line = br.readLine();
bw.newLine();
bw.write(b3+",13");
System.out.println(line);
line = br.readLine();
bw.newLine();
bw.write(a4+",14");
System.out.println(line);
line = br.readLine();
bw.newLine();
bw.write(b4+",23");
System.out.println(line);
line = br.readLine();
bw.newLine();
}
bw.close();
br.close();
}
catch (IOException e){
e.printStackTrace();
}
}
}
}
mais le problème c que j'ai fait le travaille pour un automate défini et non pas quelconque
A voir également:
Automate java
Implémentation d'un automate en java - Meilleures réponses