Programmieren von Masse Berechnen (Lid-driven-Cavity)-Kontrolle bitte



  • Hi Freunde,

    ich hab dieses Programm geschrieben, nur ich hab meine ich wieder mindestens einen Fehler drinne 😞

    void MasseBerechnen(void)
    {

    int i, j;

    M = 0.0;

    for (i=0;i<imax;i++)
    for (j=0;j<jmax;j++)
    M += rho[i][j]+rho[i+1][j]+rho[i][j+1]+rho[i+1][j+1];

    M = dxdy/4.0

    }


  • Mod

    Liegt der Fehler darin, dass du (fast) jeden Wert auf der Diagonale der Matrix zweimal draufaddierst?



  • ich bin mir nicht sicher, aber ich glaube nicht, dass es daran liegt..... 😞


  • Mod

    Simonee schrieb:

    ich bin mir nicht sicher, aber ich glaube nicht, dass es daran liegt..... 😞

    Wenn du nicht willst, dass dich jeder als Troll abstempelt, dann solltest du mal ein vollstÀndiges Minimalbeispiel posten (wie es hier beschrieben wird). Enthalten: Welche Ausgabe du erwartest, und was daran nicht stimmt.



  • Glaskugel: ich könnte mir vorstellen, dass es hiermit ein Problem gibt: rho[i+1]. Vorrausgesetzt natĂŒrlich, imax == rho.size()



  • Hi Freunde,

    also mein Fehler war, dass nach der "4.0" ein ";" fehlte

    Danke 🙂



  • Un das wusste dein Compiler nicht???



  • Hi Simone, ja richtig solche Funktionen immer mit Semikolon abschliessen, nach der geschweiften Klammer. Und du brauchst im Parameterklammer keinen void nochmal extra eingeben. Ruhig leer lassen.



  • Sandor++ schrieb:

    Hi Simone, ja richtig solche Funktionen immer mit Semikolon abschliessen, nach der geschweiften Klammer.

    Es geht hier um das Semikolon nach der Anweisung. Nach der geschweiften Klammer eines Funktionskörpers wird nie ein Semikolon gebraucht.



  • TatsĂ€chlich! Jetzt kann ich hier auch fragen, woher weiss ich ob bei eigenen Funktionen mit Semikolon abgeschlossen werden muss und wann nicht?
    bei der do {};while() muss zum Beispiel semikolonisiert werden....


  • Mod

    Jetzt kann ich hier auch fragen, woher weiss ich ob bei eigenen Funktionen mit Semikolon abgeschlossen werden muss und wann nicht?

    Nie. Falls wir uns einig sind, was wir mit dem Begriff "Funktion" bezeichnen.

    bei der do {};while() muss zum Beispiel semikolonisiert werden....

    Ist das etwa eine Funktion?



  • Arcoth schrieb:

    bei der do {};while() muss zum Beispiel semikolonisiert werden....

    Ist das etwa eine Funktion?

    Das ist zunĂ€chst mal ein Syntaxfehler, das Semikolon in der Mitte hat da nichts verloren 😉



  • Bashar schrieb:

    Arcoth schrieb:

    bei der do {};while() muss zum Beispiel semikolonisiert werden....

    Ist das etwa eine Funktion?

    Das ist zunĂ€chst mal ein Syntaxfehler, das Semikolon in der Mitte hat da nichts verloren 😉

    Ohh mein Gott das gibts doch nicht das muss ja da hin: do {}while();
    Hast schon wieder recht.



  • Die Regeln fĂŒr die Semikolonsetzung in C++ sind Ă€ußert kompliziert.
    Das ist einer der GrĂŒnde, wieso C++ so schwierig ist.
    Am besten ĂŒberall Semikolons platzieren, wenn du Enter drĂŒckst. Außer bei Funktionsdefinition! Zur Sicherheit auch mal zwei bis drei, falls eins verloren gehen sollte.

    #include <iostream>;;
    ;;
    int main()
    {;;
      std::cout << "Hallo Semikolon;";;;
    };;;
    


  • Nathan schrieb:

    Die Regeln fĂŒr die Semikolonsetzung in C++ sind Ă€ußert kompliziert.
    Das ist einer der GrĂŒnde, wieso C++ so schwierig ist.
    Am besten ĂŒberall Semikolons platzieren, wenn du Enter drĂŒckst. Außer bei Funktionsdefinition! Zur Sicherheit auch mal zwei bis drei, falls eins verloren gehen sollte.

    #include <iostream>;;
    ;;
    int main()
    {;;
      std::cout << "Hallo Semikolon;";;;
    };;;
    

    oO
    Das ist ja lauffÀhig laut Ideone oO
    LOL, wusst ich nicht...



  • Darauf wĂ€re ich jetzt aber nicht darauf gekommen! Aber ich denke mal das das kein guter Stil ist ĂŒberall zu Semikolonisieren.



  • Skym0sh0 schrieb:

    oO
    Das ist ja lauffÀhig laut Ideone oO
    LOL, wusst ich nicht...

    Ich muss gestehen:
    Weiß ich aus eigener Erfahrung. *schĂ€m*



  • Ich schreibe in die Zeilen vor und nach #include jeweils

    #
    

    als Barrikade gegen den Rest des Codes.



  • Also das hier

    int i;
    for(i=0;i<10;++i);
    {
       if(i<=2 or i>=8);
       {
          cout<<i<<'\n';
       };
    };
    

    gibt was sehr komisches aus.



  • volkard schrieb:

    Also das hier

    int i;
    for(i=0;i<10;++i);
    {
       if(i<=2 or i>=8);
       {
          cout<<i<<'\n';
       };
    };
    

    gibt was sehr komisches aus.

    Nö, seit wann ist 10 komisch?


Log in to reply