import bruch.*; import eprog.*; public class Main { //Überprüft ob der übergebene Char eine der gültigen operationen ist public static boolean is_op(char c) { if ((c == '+') || (c == '-') || (c == '*') || (c == '/')) return true; return false; } //Erzeugt ein Objekt om Typ bruch aus dem Übergebenen String public static bruch makebruch(String s) { //Um den String in Chars zu speichern char c[] = s.toCharArray(); //Stringlänge int l = s.length(); //index int i; int li = 0; //last index; //Zwischenspeicher für di ermittelten Zahlen int zahlen[] = new int[4]; //index im zahlenarray int ind = 0; //Doppelbruch = false boolean db = false; for(i=0;i= 4) break; } } //letzte Zahl einlesen zahlen[ind] = Integer.parseInt(s.substring(li+1,l).trim()); //Je nach dem Bruch opder doppelbruc herzeugen if(db) return new bruch(zahlen[0],zahlen[1],zahlen[2],zahlen[3]); return new bruch(zahlen[0],zahlen[1]); } public static void main (String args[]) { bruch br[] = new bruch[4]; int i = 0; char c ; //Worte einlesen und prüfen ob es eine operation ist. do { String s = EprogIO.readWord(); c = s.charAt(0); if(is_op(c) && (s.length() == 1)) break; if (i< 4) br[i] = makebruch(s); i++; }while(i < 5); //Dividiert darf nur 2 brücke als parameter bekommen! if (((i >= 3) && (c == '/')) || !is_op(c)) { EprogIO.println("FALSCHE EINGABE"); return; } else { //Nulldivision boolean nd = false; //im gültigen bereich? boolean valid = true; //Brüche testen for(int z=0;z