====== Funktionenplotter ====== * Ausführbare exe-Datei: {{ :inf:inf8bi_201920:3:3_02:funktionenplotter.rar |funktionenplotter.rar}} Der Funktionenplotter soll lineare und quadratische Funktionen darstellen können. === Features === * Wertetabelle in einem angegebenen Bereich * Funktionsgraph * Eigenschaften * Lineare Funktion * Art (inhomogen, homogen, konstant) * Nullstellen (Anzahl, Wert) * Quadratische Funktion * Extremum (Tief- oder Hochpunkt, Koordinaten) * Nullstellen (Anzahl, Wert) * Sicherstellung, dass im Wertebereich nur ganze Zahlen (integer) und bei den Koeffizienten nur rationale Zahlen (double) eingegeben werden können, z.B. mit den TextBox-Methoden Enter (bestehenden Wert speichern) und Leave (falls keine gültige Zahl eingegeben, dann den alten Wert wieder in die TextBox schreiben). * Sicherstellung, dass der Koeffizient a der quadratischen Zahl nicht 0 sein darf. === Screenshots === {{:inf:inf8bi_201920:3:3_02:funktionenplotter01.jpg|}} {{:inf:inf8bi_201920:3:3_02:funktionenplotter02.jpg|}} === Codehilfen === //Spline glättet den Funktionsgraph --> damit bekommt der Graph der quadratischen Funktion keine Ecken chart1.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline; //MajorGrid gepunktet chart1.ChartAreas[0].AxisX.MajorGrid.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Dot; chart1.ChartAreas[0].AxisY.MajorGrid.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Dot; // Achsenbeschriftung genau auf x-Achse bzw. y-Achse chart1.ChartAreas[0].AxisX.Crossing = 0; chart1.ChartAreas[0].AxisY.Crossing = 0; // Pfeile auf den Koordinatenachsen zumindest im positiven Bereich chart1.ChartAreas[0].AxisX.ArrowStyle = System.Windows.Forms.DataVisualization.Charting.AxisArrowStyle.Lines; chart1.ChartAreas[0].AxisY.ArrowStyle = System.Windows.Forms.DataVisualization.Charting.AxisArrowStyle.Lines; //Darstellung der Funktion genau im angegebenen Wertebereich chart1.ChartAreas[0].AxisX.Minimum = int.Parse(tb_xmin.Text); chart1.ChartAreas[0].AxisX.Maximum = int.Parse(tb_xmax.Text);