// Eva Lahnsteiner
// MatrNr: 0406150
// Aufgabe 1174, Gerpunkt
// Lage eines Punktes zu einer Geraden
import eprog.*;
import java.lang.*;
public class Testen extends EprogIO{
public static String perform ()
{
String ret;
float[] punkte = new float[6]; //Array für die eingegebenen Koordinaten, 6 Felder, 0-5
float D,D1; //Berechnungsvariablen
boolean EprogFehler = false;
boolean InhaltFehler = false;
int max = 100; // min,max definieren den Wertebereich der Punkte
int min = -100;
int v1=0; //v1,v2,v3 zum paarweisen Vergleich nötig
int v2=0;
int v3=0;
try{
// Einlesen der Koordinaten und sofortige Prüfung auf richtigen Wertebereich
for (int i=0; i<=5; i++)
{
punkte[i]=readFloat(); //Einlesen eines Punktes
if ((punkte[i]
max)) //Auf Wertebereich prüfen
InhaltFehler = true;
}
// Paarweiser Vergleich
for (int j=2; j<=3; j++)
{
if (punkte[j-2]==punkte[j]) v1++;
if (punkte[j-2]==punkte[j+2]) v2++;
if (punkte[j]==punkte[j+2]) v3++;
}
if ((v1==2)||(v2==2)||(v3==2))
InhaltFehler=true;
}
catch (EprogException e)
{
EprogFehler = true;
}
//Sind Fehler aufgetreten?
if (InhaltFehler) {ret="FALSCHE EINGABE";}
else {
if (EprogFehler) ret="?";
else
//kein Fehler --> Eingabewerte in Ordnung
{
//FORMELN:
//D = x1*y2 - x2*y1
//D1 = x3*(y2-y1) + y3*(x1-x2)
//Berechnung nach den obigen Formeln (x1=punkte[0], y1=punkte[1],...)
D=punkte[0]*punkte[3]-punkte[2]*punkte[1];
D1=punkte[4]*(punkte[3]-punkte[1])+ punkte[5]*(punkte[0]-punkte[2]);
//Lage des Punktes herausfinden durch Vergleich von D1 und D2, Ausgabe der Lage
if (D1
TOP
Contact me