Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- public class Main {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- printTableOfTruth(convertFromCNFToTable(sc));
- //System.out.println(convertFromTableToDNF(sc));
- sc.close();
- }
- public static int[][] convertFromCNFToTable(Scanner sc) {
- String input = sc.nextLine();
- input = input.replaceAll(" ","");
- System.out.println(input);
- String[] arrayOfAdds = new String[32];
- if(input.contains(")(")) {
- arrayOfAdds = input.split("\\)\\(");
- System.out.println(arrayOfAdds.length);
- // for(int i = 0; i < arrayOfAdds.length; i++) {
- // arrayOfAdds[i] = arrayOfAdds[i].replaceAll("\\(","");
- // arrayOfAdds[i] = arrayOfAdds[i].replaceAll("\\)","");
- // }
- }
- int[][] tableOfTruth = new int[32][6];
- for(int i = 0; i < arrayOfAdds.length; i++) {
- if(arrayOfAdds[i].contains("~a")) {
- tableOfTruth[i][0] = 1;
- } else {
- tableOfTruth[i][0] = 0;
- }
- if(arrayOfAdds[i].contains("~b")) {
- tableOfTruth[i][1] = 1;
- } else {
- tableOfTruth[i][1] = 0;
- }
- if(arrayOfAdds[i].contains("~c")) {
- tableOfTruth[i][2] = 1;
- } else {
- tableOfTruth[i][2] = 0;
- }
- if(arrayOfAdds[i].contains("~d")) {
- tableOfTruth[i][3] = 1;
- } else {
- tableOfTruth[i][3] = 0;
- }
- if(arrayOfAdds[i].contains("~e")) {
- tableOfTruth[i][4] = 1;
- } else {
- tableOfTruth[i][4] = 0;
- }
- }
- return tableOfTruth;
- }
- public static void printTableOfTruth(int[][] tableOfTruth) {
- System.out.println("a\tb\tc\td\te\tf");
- for(int i = 0; i < tableOfTruth.length; i++) {
- for(int j = 0; j < tableOfTruth[i].length; j++) {
- System.out.print(tableOfTruth[i][j] + "\t");
- }
- System.out.println();
- }
- }
- public static String convertFromTableToDNF(Scanner sc) {
- // Устанавливаем в качестве разделителя символ новой строки
- sc.useDelimiter("\n");
- // Считываем многострочный текст
- System.out.println("Введите многострочный текст (для завершения введите Ctrl+D в конце):");
- int lineCounter = 0;
- String outputDNF = "";
- while (lineCounter < 32) {
- String line = sc.next();
- lineCounter++;
- if(!convertTableStringToDNF(line).equals("")) {
- outputDNF += convertTableStringToDNF(line) + "+";
- }
- }
- return outputDNF.substring(0, outputDNF.length() - 1);
- }
- public static String convertTableStringToDNF (String input) {
- String[] arr = input.split("\t");
- if(arr[5].equals("0")) {
- return "";
- }
- String output = "";
- if(arr[0].equals("1")) {
- output += "a";
- } else {
- output += "~a";
- }
- if(arr[1].equals("1")) {
- output += "b";
- } else {
- output += "~b";
- }
- if(arr[2].equals("1")) {
- output += "c";
- } else {
- output += "~c";
- }
- if(arr[3].equals("1")) {
- output += "d";
- } else {
- output += "~d";
- }
- if(arr[4].equals("1")) {
- output += "e";
- } else {
- output += "~e";
- }
- return output;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement