Announcement

Collapse
No announcement yet.

Maximum aus Funktion auslesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Maximum aus Funktion auslesen

    Hallo liebes Forum,

    also ich habe einen Array geschrieben, mit x-Werten. Die Werte wurden eingelesen und mit einer Funktion wurden die y-Werte berechnet. Jetzt soll ich das Maximum aus diesen y-Werten auslesen und angeben. Ich habe absolut keine Ahnung, ich bin komplett am Ende. Habe keinen Anhaltspunkt. Der Array sowie die y-Funktion sind beides doubles. Danke schonmal. Hoffentlich kann mir einer helfen.

  • #2
    http://www.dotnetperls.com/max

    Des Weiteren verbleibt immer der Standard:

    Definiere eine Variable high
    Durchlaufe das Array
    Ist der aktuelle Wert größer als high, dann ist high der aktuelle Wert
    Schleifenende

    Am Ende shtet in high der höchste Wert
    Zuletzt editiert von Christian Marquardt; 20.01.2015, 20:51.
    Christian

    Comment


    • #3
      Danke. Den Link habe ich schon vorher durchgelesen. Da geht es hauptsächlich darum einen Array nach maximum auszulesen. Das ist hier aber nicht gefragt.

      Comment


      • #4
        Jetzt soll ich das Maximum aus diesen y-Werten auslesen und angeben.
        Da geht es hauptsächlich darum einen Array nach maximum auszulesen. Das ist hier aber nicht gefragt.
        Dann weiß ich nicht, was gemeint ist
        Christian

        Comment


        • #5
          Also mein Programm besteht aus einem Button und einer Textbox. Hier der Code:

          private void button1_Click(object sender, EventArgs e)
          {
          double[] myXwerte; //Array
          myXwerte = new double[21];

          myXwerte[0]=0;
          myXwerte[1]=0.1;
          myXwerte[2]=0.2;
          myXwerte[3]=0.3;
          myXwerte[4]=0.4;
          myXwerte[5]=0.5;
          myXwerte[6]=0.6;
          myXwerte[7]=0.7;
          myXwerte[8]=0.8;
          myXwerte[9]=0.9;
          myXwerte[10]=1;
          myXwerte[11]=1.1;
          myXwerte[12]=1.2;
          myXwerte[13]=1.3;
          myXwerte[14]=1.4;
          myXwerte[15]=1.5;
          myXwerte[16]=1.6;
          myXwerte[17]=1.7;
          myXwerte[18]=1.8;
          myXwerte[19]=1.9;
          myXwerte[20]=2.0;


          double max=0.0; //Methode
          double y=0;
          textBox1.Text = " x | y "+"\r\n"+"______________"+"\r\n";

          for (int i = 0; i <= myXwerte.Length - 1; i = i + 1)
          {
          y = myXwerte[i] / Math.Pow((1 + myXwerte[i]), 2);


          textBox1.AppendText(Convert.ToString(myXwerte[i]) + "\t" + Convert.ToString(y) + "\r\n");

          }
          textBox1.AppendText("Maximum: 1,0 |0,2500");


          Die letzte Zeilte ist natürlich nur eine Notlösung. Auslesen lassen sich die y-Werte halt nicht.

          Comment


          • #6
            Worin stecken den nach dem Berechnen x -> y die y-Werte? Ohne irgendwas zu sehen können wir nur davon ausgehen das nach der Berechnung aus einem double[] die Ergebnisse auch in einem double[] stecken und max() funktioniert dann natürlich.
            Wenn bei dir irgendwas anderes passiert solltest du uns erzählen in was für einer Datenstruktur deine y-Werte stecken (x udn in was x steckt kann uns eigentlich völlig egal sein).

            Edit : Bei jedem Schleifendurchlauf steht in y immer der Wert des letzten Schleifendurchlaufs du mußt also nur das letzte y mit dem neuen y vergleichen und dir denn höheren Wert merken. Am Ende hast du dann in dieser Variablen denn höchsten Wert.

            Comment


            • #7
              double y=0;

              Die 21 y-Werte werden berechnet durch die funktion. Danach stehen die Werte in der Textbox (Convert.ToString(y)).

              Comment


              • #8
                Definiere wie in #2 eine Variable high.
                Vergleiche y mit dieser. Ist y > high, dann high=y;

                Dann steht am Ende der höchste Wert in high
                Christian

                Comment


                • #9
                  Das war jetzt ein bischen schnell. Was meinst du mit #2?

                  Comment


                  • #10
                    Beitrag Nummer 2 hier
                    Christian

                    Comment


                    • #11
                      Da steht ich soll den Array durchlaufen. Also nochmal: Der höchste Wert des Arrays ist nicht gefragt sondern der höchste Wert der durch die Funktion ausgerechneten Werte (hier genannt: y).

                      Comment


                      • #12
                        Versuche zu abstrahieren:

                        Du berechnest irgendwo in einer Schleife Werte. Den höchsten willst du ermitteln.
                        Dann merkst du dir in einer externen Variablen diesen höchsten Wert. Die Variable wird mit 0 vorbelegt.
                        Vergleiche y mit der Variablen. Ist y > dann bekommt die Variable den akutellen y-Wert.
                        Ist die Schleife zu Ende, hat die Varialbe den höchsten Wert
                        [highlight=java] double high=0;
                        for (int i = 0; i <= myXwerte.Length - 1; i = i + 1)
                        {
                        y = myXwerte[i] / Math.Pow((1 + myXwerte[i]), 2);
                        if(y>high)
                        {
                        high=y;
                        }
                        textBox1.AppendText(Convert.ToString(myXwerte[i]) + "\t" + Convert.ToString(y) + "\r\n");
                        }


                        [/highlight]


                        Am Ende steht in high der höchste Wert der y Berechnungen
                        Zuletzt editiert von Christian Marquardt; 20.01.2015, 21:14.
                        Christian

                        Comment


                        • #13
                          Danke für die Antwort ich habe die Aufgabe nun mit einer einfachen if-Anweisung gelöst.

                          private void button1_Click(object sender, EventArgs e)
                          {
                          double[] myXwerte; //Array
                          myXwerte = new double[21];

                          myXwerte[0]=0;
                          myXwerte[1]=0.1;
                          myXwerte[2]=0.2;
                          myXwerte[3]=0.3;
                          myXwerte[4]=0.4;
                          myXwerte[5]=0.5;
                          myXwerte[6]=0.6;
                          myXwerte[7]=0.7;
                          myXwerte[8]=0.8;
                          myXwerte[9]=0.9;
                          myXwerte[10]=1;
                          myXwerte[11]=1.1;
                          myXwerte[12]=1.2;
                          myXwerte[13]=1.3;
                          myXwerte[14]=1.4;
                          myXwerte[15]=1.5;
                          myXwerte[16]=1.6;
                          myXwerte[17]=1.7;
                          myXwerte[18]=1.8;
                          myXwerte[19]=1.9;
                          myXwerte[20]=2.0;


                          double max=0.0; //Methode
                          double y=0;
                          textBox1.Text = " x | y "+"\r\n"+"______________"+"\r\n";

                          for (int i = 0; i <= myXwerte.Length - 1; i = i + 1)
                          {
                          y = myXwerte[i] / Math.Pow((1 + myXwerte[i]), 2); //Berechnet die Funktion

                          if (y > max) // sucht den maximalen y Wert
                          {
                          max = y;
                          }


                          textBox1.AppendText(Convert.ToString(myXwerte[i]) + "\t" + Convert.ToString(y) + "\r\n");

                          }
                          textBox1.AppendText("\r\n" + "Maximum :" + "\r\n" + string.Format("{0:F1}", myXwerte[10]) + "\t" + "|" + "\t" + Convert.ToString(max) + "\r\n"); // Ausgabe des Maximums


                          }



                          }
                          }

                          Comment


                          • #14
                            Ja, siehe Code #12
                            Christian

                            Comment

                            Working...
                            X