static Punkt SchnittpunktVonFunktionenBerechnen(LineareFunktion f, LineareFunktion g) { Punkt SchnittPunkt = new Punkt(); SchnittPunkt.XKoordinate = (g.YAchsenabschnitt - f.YAchsenabschnitt) / (f.Anstieg - g.Anstieg); SchnittPunkt.YKoordinate = f.FunktionswertBestimmen(SchnittPunkt.XKoordinate); return(SchnittPunkt); }
static Punkt?VielleichtSchnittpunktVonFunktionenBestimmen(LineareFunktion f, LineareFunktion g) { if (f.Anstieg == g.Anstieg) { return(null); } else { return(SchnittpunktVonFunktionenBerechnen(f, g)); } }
static void Main(string[] args) { Console.WriteLine("Punkte:"); Punkt p1 = new Punkt(); Console.WriteLine("p1: x=" + p1.XKoordinate + " y=" + p1.YKoordinate); p1.XKoordinate = 5; p1.YKoordinate = 3; Console.WriteLine("p1: x=" + p1.XKoordinate + " y=" + p1.YKoordinate); Console.WriteLine(p1.ToString()); Punkt p2 = new Punkt(5, 4); Console.WriteLine("p2: x=" + p2.XKoordinate + " y=" + p2.YKoordinate); LineareFunktion f1 = new LineareFunktion(2, 1); Console.WriteLine("f1: " + f1.ToString()); Console.WriteLine("Nullstelle von f1: " + f1.NullstelleBerechnen()); Console.WriteLine("Schnittpunkt mit x-Achse von f1: " + f1.SchnittpunktXAchseBerechnen().ToString()); Console.WriteLine("Schnittpunkt mit y-Achse von f1: " + f1.SchnittpunktYAchseBerechnen().ToString()); LineareFunktion f2 = new LineareFunktion(2, 2); Console.WriteLine("f2: " + f2.ToString()); Console.WriteLine("f2(0)=" + f2.FunktionswertBestimmen(0)); if (VielleichtSchnittpunktVonFunktionenBestimmen(f1, f2) == null) { Console.WriteLine("Es gibt keinen Schnittpunkt."); } else { Console.WriteLine("Schnittpunkt der Funktionen f1 und f2 bei " + VielleichtSchnittpunktVonFunktionenBestimmen(f1, f2).ToString()); } Punkt p3 = new Punkt(); LineareFunktion f3 = new LineareFunktion(p1, p3); Console.WriteLine("f3: " + f3.ToString()); Console.WriteLine(LageVonFunktionenBestimmen(f1, f2)); LineareFunktion f7 = new LineareFunktion(2, 3); f7.WertetabelleAusgeben(); Console.ReadKey(); }
static string LageVonFunktionenBestimmen(LineareFunktion f, LineareFunktion g) { if (f.Anstieg == g.Anstieg) { if (f.YAchsenabschnitt == g.YAchsenabschnitt) { return("Die Funktionen sind identisch."); } else { return("Die Funktionen sind parallel zueinander."); } } else { return("Die Funktionen schneiden sich im Punkt: " + SchnittpunktVonFunktionenBerechnen(f, g).ToString()); } }