Schleife arbeitet nicht



  • Hallo werte Forenmitglieder,

    Ich habe mal versucht in den ebooks hier eine Lösung für mein doch eher banal erscheinendes Anliegen zu finden. Da ich da aber kein Glück hatte nun folgende Frage an die Community.
    Eine while Schleife mit direkter Abhängigkeit von einem Parameter ist kein Problem. Wie aber bringt man eine while Schleife zum laufen die zwei Werte vergleicht, welche eine Funktion von einem Parameter sind.
    Ich habe mal den ermüdend langen Formelzauber abgekürzt dargestellt. Die Gleichungen an sich stimmen ja. Schliesslich liefert das Programm für den jeweiligen Wert von p die richtigen Werte für Fl1 und Fl2. Das Problem ist nur das die Schleife nicht arbeitet. Das Programm gibt nur die Fl1 und Fl2 Werte für den initialisierten Wert von p aus.

    Fl1;
    Fl2;
    p=100;

    do
    {

    float A = abhängig von p;
    float B = abhängig von p;
    float C = abhängig von p;
    float D = abhängig von p;

    Fl1 = abhängig von A,B,C;
    Fl2 = abhängig von A,B,C,D;

    p=p++;

    }while(Fl2<Fl1);

    Ich danke schonmal vorab für euren teuren Rat.



  • Mit diesem Stückchen Pseudocode kann dir keiner sagen, wo genau der Fehler steckt. Offensichtlich ist Fl2 >= Fl1, da du sagst, dass er nach einem Durchlauf abbricht. Schmeiß den Debugger an (wenn du nicht weißt, was das ist, bringe es unbedingt in Erfahrung!) und überprüfe, welche Werte deine Variablen in Schleifendurchlauf 1,2 usw. wirklich haben.



  • "Schleife arbeitet nicht"

    Das ist Poesie in ihrer reinsten Form. :xmas1:



  • Was soll das p = p++; ? Schreib p++; stattdessen!



  • AS-alwa-H2 schrieb:

    Fl1;
    Fl2;
    p=100;

    do
    {

    float A = abhängig von p;
    float B = abhängig von p;
    float C = abhängig von p;
    float D = abhängig von p;

    Fl1 = abhängig von A,B,C;
    Fl2 = abhängig von A,B,C,D;

    p=p++;

    }while(Fl2<Fl1);

    Ich danke schonmal vorab für euren teuren Rat.

    Initialisierst du auch Fl1 und Fl2? Wahrscheinlich ist schon beim ersten Durchlauf die Abbruchbedingung gegeben. Ansonsten sind linear abhängige Variablen doch kein Problem für eine Abbruchbedingung. Den Rest haben ja schon die Vorposter gesagt.



  • Die Schleife läuft zwar aber das Programm gibt konstant

    Fläche1: 1666.27
    Fläche2: 722.833

    aus.



  • Der Rat mit dem Debugger hat geholfen



  • AS-alwa-H2 schrieb:

    Der Rat mit dem Debugger hat geholfen

    Also ist das Problem gelöst? Falls nicht, könntest du ja mal echten Code posten.



  • Ja die Schleife arbeitet nun tadellos. Danke.
    Mit dem debugger hatte ich bisweilen noch nie gearbeitet,
    da ich dessen Sinn verkannt hatte.



  • AS-alwa-H2 schrieb:

    Mit dem debugger hatte ich bisweilen noch nie gearbeitet,
    da ich dessen Sinn verkannt hatte.

    Das machen die meisten am Anfang, aber der ist Gold wert.


Anmelden zum Antworten