/*********************************** * GERPUNKT.JAVA * * ================================ * * Peter Lukezic, Matr.nr.: 0002887 * ***********************************/ import eprog.*; //Import des eprog-Packages public class gerpunkt { public static void main (String args[]) { boolean SpezError = false, InputError = false; //SpezError wenn zu große/kleine Werte, InputError wenn ungültige Eingabe float[] Eingabe = new float[6]; //Array[6] für die einzugebenden Koordinaten final float Min = -100, Max = 100; //Konstanten für erlaubte Max- und Min-Werte der Koordinaten for (int zaehler=0;zaehler<=5;zaehler++) { //Schleife von 1 bis 6 try { Eingabe[zaehler] = EprogIO.readFloat(); //Koordinate einlesen if ((Eingabe[zaehler] > Max) || (Eingabe[zaehler] < Min)) SpezError = true; //SpezError wenn Koordinate den gewünschten Bereich übersteigt } catch (EprogException e) { InputError = true; //Fehler falls ungültiger Datentyp break; //for-Schleife abbrechen } } if (InputError) EprogIO.println("?"); //"?" ausgeben falls ungültiger Datentyp else if (SpezError) EprogIO.println("FALSCHE EINGABE"); //"FALSCHE EINGABE" ausgeben falls die Koordinaten die Bereiche überschreiten else { float d1 = 0, d2 = 0; d1 = (Eingabe[0]*Eingabe[3])-(Eingabe[2]*Eingabe[1]); //Geradengleichung: D=x1*y2-x2*y1 d2 = (Eingabe[4]*(Eingabe[3]-Eingabe[1]))+(Eingabe[5]*(Eingabe[0]-Eingabe[2])); //Geradengleichung D'=x3*(y2-y1)+y3*(x1-x2) if (d1==d2) EprogIO.println("DARAUF"); //falls D' gleich D: P3 liegt auf der Geraden if (d2<d1) EprogIO.println("LINKS"); //falls D' kleiner D: P3 liegt links neben der Geraden if (d2>d1) EprogIO.println("RECHTS"); //falls D' größer D: P3 liegt rechts neben der Geraden } } }