none
C# Funktion zum angleichen zweier Zahlen RRS feed

  • Frage

  • Hallo,
    ich möchte mit c# folgendes Rechenfunktion durchführen:

    Ihc habe eine Anfangszahl (z.B. 20) und eine Endzahl (z.B. 50). Ich möchte jetzt per Funktion errechnen wie die Anfangszahl in 14 Schritten linear zur Endzahl entwickelt.

    Hat hier jemand eine Idde wie man das machen kann ? Oder ob es da schon etwas fertiges gibt ?

    Vielen Dank
    Sven
    Samstag, 30. Juni 2012 15:20

Antworten

  • Hallo,

    Wenn ich dich richtig verstanden habe, müsstest du Zahl a - Zahl b und davon den Betrag berechnen. Dann dieses Ergebnis durch deine 14 Teilen. Das was du dort heraus bekommst ist dann der Abstand zweier Werte.

    double a = 20; //Wert 1
    double b = 50; // Wert 2
    int y = 14; //Anzahl der Teilschritte + 1 zwischen den Zahlen a und b
    double x = Math.Abs(a - b);
    x = x / y; //Teilschritt berechnen
    for(int i = 0; i <= y; ++i)
    {
        Console.WriteLine(Math.Min(20, 50) + i * x); //Ausgabe
    }
    Console.ReadKey(); //Beenden der Konsole verhindern
    Wenn du weißt, das a immer größer ist als b, kannst du natürlich die Math.Abs() und die Math.Min()-Methode weglassen.


    Koopakiller - http://koopakiller.ko.ohost.de/

    Samstag, 30. Juni 2012 15:52
    Moderator
  • Ohne berücksichtigung der Fehelerbehandlung von Eingaben in den Textfeldern....

    namespace WindowsFormsApplication2
    {
        public partial class Form1 : Form
        {
            Double Anfang, Ende;
            Int32 Schritte;
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                Anfang = Double.Parse(textBox1.Text);
                Ende = Double.Parse(textBox2.Text);
                Schritte = Int32.Parse(textBox3.Text);
    
                label1.Text = String.Empty;
                foreach (var item in SchrittWerte(Anfang, Ende, Schritte))
                {
                    label1.Text += String.Format("{0:f2} \n", item);
                    
                } 
            }
    
            private List<Double> SchrittWerte(Double Anfang, Double Ende, int Schritte)
            {
                List<Double> Werte = new List<Double>();
                for (int i = 0; i < Schritte; i++)
                {
                    Werte.Add(((Ende - Anfang) / Schritte * i)+Anfang);
                    
                }
                 Werte.Add(Ende);
                 return Werte;
            }
        }
    }
    


    ***********************************************************

    Montag, 2. Juli 2012 11:33

Alle Antworten