Advertisement
anas_harby

Untitled

Apr 29th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.08 KB | None | 0 0
  1.     import java.util.Scanner;
  2.    
  3.     import java.util.*;
  4.    
  5.     public class Solver {
  6.    
  7.         static ArrayList <Integer> minterms = new ArrayList <Integer>();
  8.         static ArrayList <Integer> dontcares = new ArrayList <Integer>();
  9.         static ArrayList <ArrayList<String>> minterms_binary = new ArrayList <ArrayList<String>>();
  10.         static ArrayList <ArrayList<String>> dontcares_binary = new ArrayList <ArrayList<String>>();
  11.         static Scanner in = new Scanner(System.in);
  12.        
  13.         private static void fillArrayList() {
  14.             for(int i=0; i<8; i++) {
  15.                 minterms_binary.add(new ArrayList());
  16.                 dontcares_binary.add(new ArrayList());
  17.             }
  18.         }
  19.        
  20.         private static void decimalToBinary() {
  21.             fillArrayList();
  22.             for(int i=0; i<minterms.size(); i++) {
  23.                 int div = minterms.get(i), ones = 0;
  24.                 String res= "";
  25.                 while(div!=0) {
  26.                     if(div%2==1) {
  27.                         ones++;
  28.                         res = "1" + res;
  29.                     }
  30.                     else
  31.                         res = "0" + res;
  32.                     div/=2;
  33.                 }
  34.                 for(int j=0, len = res.length(); j<8-len; j++)
  35.                     res = "0" + res;
  36.                 minterms_binary.get(ones).add(res);
  37.             }
  38.             for(int i=0; i<dontcares.size();i++) {
  39.                 int div = dontcares.get(i), ones = 0;
  40.                 String res = "";
  41.                 while(div!=0) {
  42.                     if(div%2==1) {
  43.                         ones++;
  44.                         res = "1" + res;
  45.                     }
  46.                     else
  47.                         res = "0" + res;
  48.                     div/=2;
  49.                 }
  50.                 for(int j=0, len = res.length(); j<8-len; j++)
  51.                     res = "0" + res;
  52.                 minterms_binary.get(ones).add(res);
  53.             }
  54.         }
  55.        
  56.         public static void main(String[] args) {
  57.             System.out.println("Enter the minterms in decimal <-1 to finish>:");
  58.             while(true) {
  59.                 int input;
  60.                 input = in.nextInt();
  61.                 if(input==-1)
  62.                     break;
  63.                 minterms.add(input);
  64.             }
  65.             System.out.println("Enter the dontcares in decimal <-1 to finish>:");
  66.             while(true) {
  67.                 int input;
  68.                 input = in.nextInt();
  69.                 if(input==-1)
  70.                     break;
  71.                 dontcares.add(input);
  72.             }
  73.             decimalToBinary();
  74.             for(int i=0; i<minterms_binary.size(); i++) {
  75.                 for(int j=0; j<minterms_binary.get(i).size(); j++)
  76.                     System.out.println(minterms_binary.get(i).get(j));
  77.                 System.out.println();
  78.             }
  79.         }
  80.        
  81.    
  82.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement