// Eva Lahnsteiner
// 0406150
// Aufgabe 1147, Gerpunkt
// Lage eines Punktes zu einer Geraden
// 31.10.2004

			=================================================
			D O K U M E N T A T I O N   Z U   G E R P U N K T
			=================================================

1) Kurzbeschreibung
-------------------
	Zwei Punkte, die eine Gerade definieren, sowie ein dritter Punkt werden eingelesen;
 	die Lage des Punktes bez�glich der Geraden wird ermittelt und ausgegeben.


2) Eingabe
----------
	- Koordinaten (Typ Float) x1, y1, x2, y2, x3, y3 der drei Punkte in dieser Reihenfolge einlesen
	- x1, y1 und x2, y2 definieren die Gerade
      - Koordinaten m�ssen im Bereich [-100,100] (inklusive) liegen; 
	- Alle Punkte m�ssen paarweise voneinander verschieden sein.


3) Ausgabe
----------
	- "LINKS" ausgeben, wenn der Punkt links der Geraden ist
	- "RECHTS" wenn er rechts der Geraden ist
	- "DARAUF" wenn er sich darauf befindet


4) Fehlerbehandlung
-------------------
	- Eingabedatensatz mit ung�ltigem Datentyp (z.B. Buchstabe) --> "?" mit Zeilenvorschub ausgeben
	- Eingabedatensatz ung�ltiger Wertebereich (z.B. < 100) --> "FALSCHE EINGABE" mit Zeilenvorschub ausgeben
	- Eingabedatensatz paarweise gleich mit anderem --> "FALSCHE EINGABE" mit Zeilenvorschub ausgeben

	--> keine weiteren Berechnungen! Programm endet!


5) Realisierung
---------------

	
	Variablendefinition
	-------------------
	- Array "punkte" vom Typ "float" mit 6 Feldern steht f�r dir einzulesenden Koordinaten zur Verf�gung
	- D1 und D2 sind Variablen in denen die Ergebnisse der Berechnung der Lage des Punktes gespeichert werden
	- EprogFehler wird auf "true" gesetzt falls ein Datentypsfehler auftritt
	- InhaltFehler wird auf "true" gesetzt falls z.B. ein Wert < 100 eingegeben wird
	- min = -100, max = 100 ... Koordinaten m�ssen in diesem Wertebereich liegen (>=-100, <=100)
	- v1, v2, v3 dienen als Z�hlvariablen und werden beim paarweisen Vergleich der Punkte gebraucht
      


	Einlesen der Koordinaten
	------------------------
	Zum Einlesen der Koordinaten wird eine for-Schleife verwendet. Sie l�uft 6 mal durch und liest jede
	x- und y-Koordinate jedes Punktes ein. Jede dieser Koordinaten wird sofort auf den Wertebereich gepr�ft.
	Falls Wertebereich nicht �bereinstimmt: InhaltFehler=true;

	Nach der Eingabe ist das Array folgenderma�en gef�llt:

	punkte  [0]  [1]  [2]  [3]  [4] [5] 
		-------------------------------
		| x1 | y1 | x2 | y2 | x3 | y3 |
		-------------------------------

	
	
	Paarweiser Vergleich
	--------------------
	Die Pr�fung erfolgt wiederum durch eine For-Schleife. Diese l�uft 2 mal durch (1. Durchlauf j=2, 2.Durchlauf j=3)

	Beim 1. Durchlauf werden alle x-Koordinaten miteinander verglichen! Sie stehen wie die Darstellung oben zeig
      an den Positionen 0,2,4.

	    //***********************************************
	      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))
			InputFehler=true;
          //***********************************************
 
	      1. Durchlauf (Werte eingesetzt)
		
		  j=2:
		  if (punkte[0]==punkte[2]) v1++;     <-- if (x1==x2) v1++;
		  if (punkte[0]==punkte[4]) v2++;     <-- if (x1==x3) v2++;
		  if (punkte[2]==punkte[4]) v3++;     <-- if (x2==x3) v3++;

 	Somit sind alle x-Kombinationen abgehandelt. Bei einer �bereinstimmung 2er x-Koordinaten merkt man
	sich diesen Zustand in den Variablen v1,v2 oder v3, denn erst wenn die jeweiligen y-Koordinaten der 
	Punkte auch �bereinstimmen sind die beiden Punkte gleich!

	       2. Durchlauf (Werte eingesetzt)
		  j=3:
	        if (punkte[1]==punkte[3]) v1++;     <-- if (y1==y2) v1++;
		  if (punkte[1]==punkte[5]) v2++;     <-- if (y1==y3) v2++;
		  if (punkte[3]==punkte[5]) v3++;     <-- if (y2==y3) v3++;

	Nach den 2 Schleifendurchl�ufen wird �berpr�ft ob eine der Variablen v1,v2 oder v3 == 2 ist und falls dies der
	Fall ist, wird InhaltFehler auf true gesetzt, da es nicht erlaubt ist 2 identische Punkte einzugeben.
 	
	Dh. w�re z.B. v1=2 w�ren die Punkte x1/y1 und x2/y2 identisch! InhaltFehler=true;



	Berechnung der Lage des Punktes
      -------------------------------
	Wenn die Daten richtig eingegeben wurden erfolgt die Berechnung nach den Formeln:
		   D = x1*y2 - x2*y1
	         D1 = x3*(y2-y1) + y3*(x1-x2)

	F�r die jeweiligen Koordinaten (x1,y2 ...) steht im Code das Array mit der jeweiligen Postion der Koordinate.
	
	Wenn  D1<D liegt der Punkt links der Gerade   -->  "LINKS" ausgeben
		D1=D liegt der Punkt auf der Geraden    -->  "DARAUF" ausgeben
		D1>D liegt der Punkt rechts der Geraden -->  "RECHTS" ausgeben