package types; import types.BooleanSupport.*; public class PrimitiveTypes { public PrimitiveTypes () { // demoInteger (); // demoShort (); // demoByte (); // demoLong (); // demoFloat (); // demoDouble (); booleanTables (); demoBoolean (); } private void demoInteger () { int n1 = IO.promptForInt ("n1"); int n2 = IO.promptForInt ("n2"); IO.writeResult ("n1 + n2", n1 + n2); IO.writeResult ("n1 - n2", n1 - n2); IO.writeResult ("n1 * n2", n1 * n2); IO.writeResult ("n1 / n2", n1 / n2); IO.writeResult ("n1 % n2", n1 % n2); IO.writeBinary ("n1 ", n1, "~n1 ", ~n1); IO.writeBinary ("n2 ", n2, "~n2 ", ~n2); IO.writeBinary ("n1 ", n1, "n2 ", n2, "n1&n2", n1 & n2); IO.writeBinary ("n1 ", n1, "n2 ", n2, "n1|n2", n1 | n2); IO.writeBinary ("n1 ", n1, "n2 ", n2, "n1^n2", n1 ^ n2); } private void demoShort () { short n1 = IO.promptForShort ("n1"); short n2 = IO.promptForShort ("n2"); IO.writeResult ("n1 + n2", n1 + n2); IO.writeResult ("n1 - n2", n1 - n2); IO.writeResult ("n1 * n2", n1 * n2); IO.writeResult ("n1 / n2", n1 / n2); IO.writeResult ("n1 % n2", n1 % n2); IO.writeBinary ("n1 ", n1, "~n1 ", ~n1); IO.writeBinary ("n2 ", n2, "~n2 ", ~n2); IO.writeBinary ("n1 ", n1, "n2 ", n2, "n1&n2", n1 & n2); IO.writeBinary ("n1 ", n1, "n2 ", n2, "n1|n2", n1 | n2); IO.writeBinary ("n1 ", n1, "n2 ", n2, "n1^n2", n1 ^ n2); } private void demoByte () { byte n1 = IO.promptForByte ("n1"); byte n2 = IO.promptForByte ("n2"); IO.writeResult ("n1 + n2", n1 + n2); IO.writeResult ("n1 - n2", n1 - n2); IO.writeResult ("n1 * n2", n1 * n2); IO.writeResult ("n1 / n2", n1 / n2); IO.writeResult ("n1 % n2", n1 % n2); IO.writeBinary ("n1 ", n1, "~n1 ", ~n1); IO.writeBinary ("n2 ", n2, "~n2 ", ~n2); IO.writeBinary ("n1 ", n1, "n2 ", n2, "n1&n2", n1 & n2); IO.writeBinary ("n1 ", n1, "n2 ", n2, "n1|n2", n1 | n2); IO.writeBinary ("n1 ", n1, "n2 ", n2, "n1^n2", n1 ^ n2); } private void demoLong () { long n1 = IO.promptForLong ("n1"); long n2 = IO.promptForLong ("n2"); IO.writeResult ("n1 + n2", n1 + n2); IO.writeResult ("n1 - n2", n1 - n2); IO.writeResult ("n1 * n2", n1 * n2); IO.writeResult ("n1 / n2", n1 / n2); IO.writeResult ("n1 % n2", n1 % n2); IO.writeBinary ("n1 ", n1, "~n1 ", ~n1); IO.writeBinary ("n2 ", n2, "~n2 ", ~n2); IO.writeBinary ("n1 ", n1, "n2 ", n2, "n1&n2", n1 & n2); IO.writeBinary ("n1 ", n1, "n2 ", n2, "n1|n2", n1 | n2); IO.writeBinary ("n1 ", n1, "n2 ", n2, "n1^n2", n1 ^ n2); } private void demoFloat () { float n1 = IO.promptForFloat ("n1"); IO.writeBinary ("n1", n1); float n2 = IO.promptForFloat ("n2"); IO.writeBinary ("n2", n2); IO.writeResult ("n1 + n2", n1 + n2); IO.writeResult ("n1 - n2", n1 - n2); IO.writeResult ("n1 * n2", n1 * n2); IO.writeResult ("n1 / n2", n1 / n2); IO.writeResult ("n1 % n2", n1 % n2); } private void demoDouble () { double n1 = IO.promptForDouble ("n1"); IO.writeBinary ("n1", n1); double n2 = IO.promptForDouble ("n2"); IO.writeBinary ("n2", n2); IO.writeResult ("n1 + n2", n1 + n2); IO.writeResult ("n1 - n2", n1 - n2); IO.writeResult ("n1 * n2", n1 * n2); IO.writeResult ("n1 / n2", n1 / n2); IO.writeResult ("n1 % n2", n1 % n2); } private void demoBoolean () { boolean n1 = IO.promptForBoolean ("n1"); boolean n2 = IO.promptForBoolean ("n2"); IO.writeBinary ("n1 ", n1, "~n1 ", !n1); IO.writeBinary ("n2 ", n2, "~n2 ", !n2); IO.writeBinary ("n1 ", n1, "n2 ", n2, "n1&n2", n1 & n2); IO.writeBinary ("n1 ", n1, "n2 ", n2, "n1|n2", n1 | n2); IO.writeBinary ("n1 ", n1, "n2 ", n2, "n1^n2", n1 ^ n2); } public void booleanTables () { // Formatter formatter = new SimpleFormatter (); Formatter formatter = new DefaultFormatter (); Table andTable = new Table (new And (), "& (and)", formatter); Table orTable = new Table (new Or (), "| (or)", formatter); Table xorTable = new Table (new Xor (), "^ (xor)", formatter); System.out.println (orTable); System.out.println (andTable); System.out.println (xorTable); } public static void main (String [] arguments) {new PrimitiveTypes ();} }