Kann mir jemand dieses Cpp-Snippet erklären?



  • Der Schreiberling hat sich (leider) nicht viel Mühe mit den Variablennamen gegeben und ein Ausführungsfehler tritt auch auf:

    class z_1_9
    {
    public:
        virtual int z_1_4() = 0;
        virtual int z_1_5(int z_2_1, int z_2_2, int z_2_3) = 0;
    };
    
    struct z_3_3
    {
        z_1_9 * z_3_0;
        int z_2_1;
        int z_2_2;
        int z_2_3;
    };
    
    z_3_3 z_3_2[1000] = {0};
    int z_2_5 = 0;
    int z_2_9 = 0;
    
    const int z_2_6 = 4;
    z_1_9 * z_3_1[z_2_6] = {0}; // ... Segmentation fault
    int z_2_4[z_2_6];
    
    void z_1_3(z_1_9 * z_3_0, int z_2_1, int z_2_2, int z_2_3)
    {
        if (z_2_9 < 1000)
        {
            z_3_2[z_2_9] = { z_3_0, z_2_1, z_2_2, z_2_3 };
            z_2_9++;
        }
    }
    
    int z_1_6()
    {
        if (z_2_5 < z_2_9)
        {
            z_3_3 z_2_0 = z_3_2[z_2_5];
            z_2_5++;
            if (z_2_5 >= z_2_9)
            {
                z_2_5 = 0;
                z_2_9 = 0;
            }
    
            int d = z_2_0.z_3_0->z_1_5(
                        z_2_0.z_2_1, z_2_0.z_2_2, z_2_0.z_2_3);
            return d;
        }
        return -1;
    }
    
    void z_1_7(int z_1_2)
    {
    }
    
    int main()
    {
        while(1)
        {
            for (int i = 0; i < z_2_6; i++)
            {
                if (z_2_4[i] <= 0)
                {
                    z_2_4[i] = z_3_1[i]->z_1_4();
                }
            }
    
            int z_1_8 = 0;
            int z_2_7 = 0;
            while ((z_2_7 = z_1_6()) != -1)
            {
                z_1_7(z_2_7);
                z_1_8 += z_2_7;
            }
    
            int z_2_8 = 60000;
            for (int i = 0; i < z_2_6; i++)
            {
                if (z_2_4[i] < z_2_8)
                {
                    z_2_8 = z_2_4[i];
                }
            }
            z_2_8 -= z_1_8;
            if (z_2_8 > 0)
            {
                z_1_7(z_2_8);
                for (int i = 0; i < z_2_6; i++)
                {
                    z_2_4[i] -= z_2_8;
                }
            }
        }
        return 0;
    }
    

    (Ein Glück, das Highlighting funktioniert...)



  • @einnutzer0 sagte in Kann mir jemand dieses Cpp-Snippet erklären?:

    Der Schreiberling hat sich (leider) nicht viel Mühe mit den Variablennamen gegeben und ein Ausführungsfehler tritt auch auf:

    const int z_2_6 = 4;
    z_1_9 * z_3_1[z_2_6] = { 0 };
    // ...
                z_2_4[i] = z_3_1[i]->z_1_4();
    

    Es wird über einen nullptr eine pure virtual function aufgerufen ... was erwartest Du??



  • Ist das automatisch generierter Code?



  • @mechanics sagte in Kann mir jemand dieses Cpp-Snippet erklären?:

    Ist das automatisch generierter Code?

    ... halbautomatisch-generierter Code...
    Zu der "virtuellen"/"abstrakten" Klasse fehlen eigentlich noch vier Implementierungen, mit welchen z_3_2 initialisiert werden sollte...
    Und in der Funktion z_1_7 soll nur eine bestimmte Zeit gewartet werden.


  • Global Moderator

    Aber was möchtest du daran nun erklärt bekommen? Letztlich macht der Code (wenn man ihn denn repariert) auf umständliche Weise gar nichts. Was gibt es daran zu erklären? Es werden halt eine Menge Zahlen ausgerechnet, und nichts mit dem Ergebnis gemacht. Da das Programm nicht terminiert, scheint sein einziger Zweck das Aufheizen der Integereinheiten des Prozessors zu sein



  • @seppj sagte in Kann mir jemand dieses Cpp-Snippet erklären?:

    Letztlich macht der Code (wenn man ihn denn repariert)

    Da wär ich mir nicht so sicher, das es sinnlos sei... Sieh dir mal z_1_4 und z_1_5 an.


  • Global Moderator

    @einnutzer0 sagte in Kann mir jemand dieses Cpp-Snippet erklären?:

    @seppj sagte in Kann mir jemand dieses Cpp-Snippet erklären?:

    Letztlich macht der Code (wenn man ihn denn repariert)

    Da wär ich mir nicht so sicher, das es sinnlos sei... Sieh dir mal z_1_4 und z_1_5 an.

    Ja? Wo?



  • @seppj sagte in Kann mir jemand dieses Cpp-Snippet erklären?:

    @einnutzer0 sagte in Kann mir jemand dieses Cpp-Snippet erklären?:

    @seppj sagte in Kann mir jemand dieses Cpp-Snippet erklären?:

    Letztlich macht der Code (wenn man ihn denn repariert)

    Da wär ich mir nicht so sicher, das es sinnlos sei... Sieh dir mal z_1_4 und z_1_5 an.

    Ja? Wo?

    Ich repariere/ arbeite das mal aus. Aber das dauert 1-2 Stunden.


  • Global Moderator

    @einnutzer0 sagte in Kann mir jemand dieses Cpp-Snippet erklären?:

    @seppj sagte in Kann mir jemand dieses Cpp-Snippet erklären?:

    @einnutzer0 sagte in Kann mir jemand dieses Cpp-Snippet erklären?:

    @seppj sagte in Kann mir jemand dieses Cpp-Snippet erklären?:

    Letztlich macht der Code (wenn man ihn denn repariert)

    Da wär ich mir nicht so sicher, das es sinnlos sei... Sieh dir mal z_1_4 und z_1_5 an.

    Ja? Wo?

    Ich repariere/ arbeite das mal aus. Aber das dauert 1-2 Stunden.

    Das wird ja immer verwirrender. Sag doch einfach was Sache ist, anstatt geheimnisvoll zu tun. Was soll das? Du möchtest schließlich etwas erklärt bekommen, nicht wir. Wenn du unnötig rätselhaft tust, wird keiner Lust haben, sich das anzugucken.

    Also: Vollständiger Code, ohne Abkürzungen oder Änderungen; Erläuterung, wo du das her hast; genaue Fragestellung, was du warum wissen möchtest.



    • Repariert,
    • kein "seg fault" mehr,
    • (leider) noch eine Endlosschleife,
    • damit wenigstens halbverständlich, halbgemockt,
    • Fragestellung: Was genau macht der Code?
    #define z_4_3 0
    #define z_4_1 1
    #define z_4_0 2
    #define z_2_5 3
    #define z_1_7 4
    #define z_2_4 5
    #define z_2_3 1
    #define z_4_2 1
    #define z_1_1 unsigned char
    
    void z_6_8(int z_5_8)
    {
        // ... sleep(z_5_8);
    }
    
    void z_4_6(int z_5_8, int z_4_7)
    {
    }
    
    void z_5_3(int z_5_8, int z_4_7)
    {
    }
    
    void z_3_4(int z_5_8, int z_4_7, int z_3_5)
    {
    }
    
    int z_2_9(int z_5_8)
    {
        return 10;
    }
    
    int z_3_2(int z_5_8)
    {
        return 1;
    }
    
    void z_4_9(int z_5_8)
    {
    }
    
    void z_1_3()
    {
    }
    
    unsigned long z_1_2()
    {
        return 1000;
    }
    
    int z_3_3(int z_5_8, int z_4_7, int z_3_5, int z_1_5, int z_1_6)
    {
        return 100;
    }
    
    class z_6_2
    {
    public:
        virtual int z_5_9() = 0;
        virtual int z_6_0(int z_6_7, int z_6_5, int z_6_9) = 0;
    };
    
    void z_6_1(z_6_2 * z_6_4, int z_6_7, int z_6_5, int z_6_9);
    int z_3_6();
    
    class z_2_7 : public z_6_2
    {
    public:
        int z_5_9()
        {
            for (int i = 0; i < 6; i++)
            {
                z_6_1(this, 5, 0, i*6);
            }
            for (int i = 0; i < 6; i++)
            {
                z_6_1(this, 5, 0, (5-i)*6);
            }
            return 5000;
        }
        int z_6_0(int z_6_7, int z_6_5, int z_6_9)
        {
            z_5_3(z_4_3, z_6_9);
            return z_6_7 + z_6_5;
        }
    };
    
    class z_2_2 : public z_6_2
    {
    public:
        int z_5_9()
        {
            for (int i = 0; i < 6; i++)
            {
                z_6_1(this, 5, 0, i*6);
            }
            for (int i = 0; i < 6; i++)
            {
                z_6_1(this, 5, 0, (5-i)*6);
            }
            return 5000;
        }
        int z_6_0(int z_6_7, int z_6_5, int z_6_9)
        {
            z_5_3(z_4_1, z_6_9);
            return z_6_7 + z_6_5;
        }
    };
    
    class z_1_9 : public z_6_2
    {
    public:
        int z_5_9()
        {
            for (int i = 0; i < 6; i++)
            {
                z_6_1(this, 5, 0, i*6);
            }
            for (int i = 0; i < 6; i++)
            {
                z_6_1(this, 5, 0, (5-i)*6);
            }
            return 5000;
        }
        int z_6_0(int z_6_7, int z_6_5, int z_6_9)
        {
            z_5_3(z_4_0, z_6_9);
            return z_6_7 + z_6_5;
        }
    };
    
    class z_1_8 : public z_6_2
    {
    public:
        int z_5_9()
        {
            for (int i = 0; i < 6; i++)
            {
                z_6_1(this, 5, 0, i*6);
            }
            for (int i = 0; i < 6; i++)
            {
                z_6_1(this, 5, 0, (5-i)*6);
            }
            return 5000;
        }
        int z_6_0(int z_6_7, int z_6_5, int z_6_9)
        {
            z_5_3(z_4_3, z_6_9);
            z_5_3(z_4_1, z_6_9);
            z_5_3(z_4_0, z_6_9);
            return z_6_7 + z_6_5;
        }
    };
    
    class z_2_1 : public z_6_2
    {
    public:
        int z_5_9()
        {
            z_6_1(this, 200, 200, 200);
            return 60000;
        }
        int z_6_0(int z_6_7, int z_6_5, int z_6_9)
        {
            z_3_4(z_2_5, z_6_9, z_6_7);
            return z_6_7 + z_6_5;
        }
    private:
    };
    
    class z_2_6 : public z_6_2
    {
    public:
        int z_5_9()
        {
            z_6_3 = z_2_9(z_1_7);
            if (z_6_3 > z_4_5)
            {
                z_4_5 = z_6_3;
                z_4_9(z_6_3);
            }
            if (z_6_3 < z_3_9)
            {
                z_3_9 = z_6_3;
                z_4_9(z_6_3);
            }
            if (z_6_3 > z_4_4 + 100 || z_6_3 < z_4_4 - 100)
            {
                z_4_4 = z_6_3;
                int z_3_1 = z_3_3(z_6_3, 0, z_4_5, 0, 1000);
                z_4_9(z_6_3);
                z_4_9(z_3_1);
    
            }
            return 100;
        }
        int z_6_0(int z_6_7, int z_6_5, int z_6_9)
        {
            return 0;
        }
    private:
        int z_6_3 = 0;
        int z_4_4 = 0;
        int z_4_5 = 5000;
        int z_3_9 = 500;
    };
    
    class z_2_0 : public z_6_2
    {
    public:
        int z_5_9()
        {
            int z_3_0 = z_3_2(z_2_4);
            if (z_3_0 == z_2_3)
            {
    
            }
            return 100;
        }
        int z_6_0(int z_6_7, int z_6_5, int z_6_9)
        {
            return 0;
        }
    };
    
    class z_2_8 : public z_6_2
    {
    public:
        int z_5_9()
        {
    
            return 60000;
        }
        int z_6_0(int z_6_7, int z_6_5, int z_6_9)
        {
            return 0;
        }
    private:
    };
    
    struct z_6_6
    {
        z_6_2 * z_6_4;
        int z_6_7;
        int z_6_5;
        int z_6_9;
    };
    
    z_6_6 z_3_8[1000] = {0};
    int z_5_1 = 0;
    int z_5_5 = 0;
    
    const int z_5_2 = 8;
    z_6_2 * z_5_7[z_5_2] =
    {
        new z_2_7(),
        new z_2_2(),
        new z_1_9(),
        new z_1_8(),
        new z_2_1(),
        new z_2_6(),
        new z_2_0(),
        new z_2_8()
    };
    int z_5_0[z_5_2];
    
    void z_6_1(z_6_2 * z_6_4, int z_6_7, int z_6_5, int z_6_9)
    {
        if (z_5_5 < 1000)
        {
            z_3_8[z_5_5] = { z_6_4, z_6_7, z_6_5, z_6_9 };
            z_5_5++;
        }
    }
    
    int z_3_6()
    {
        if (z_5_1 < z_5_5)
        {
            z_6_6 z_4_8 = z_3_8[z_5_1];
            z_5_1++;
            if (z_5_1 >= z_5_5)
            {
                z_5_1 = 0;
                z_5_5 = 0;
            }
    
            int d = z_4_8.z_6_4->z_6_0(
                        z_4_8.z_6_7, z_4_8.z_6_5, z_4_8.z_6_9);
            return d;
        }
        return -1;
    }
    
    void z_1_4()
    {
        z_4_6(z_4_3, z_4_2);
        z_4_6(z_4_1, z_4_2);
        z_4_6(z_4_0, z_4_2);
    }
    
    int main()
    {
        while (1)
        {
            for (int i = 0; i < z_5_2; i++)
            {
                if (z_5_0[i] <= 0)
                {
                    z_5_0[i] = z_5_7[i]->z_5_9();
                }
            }
    
            int z_3_7 = 0;
            int z_5_4 = 0;
            while ((z_5_4 = z_3_6()) != -1)
            {
                z_6_8(z_5_4);
                z_3_7 += z_5_4;
            }
    
            int z_5_6 = 60000;
            for (int i = 0; i < z_5_2; i++)
            {
                if (z_5_0[i] < z_5_6)
                {
                    z_5_6 = z_5_0[i];
                }
            }
            z_5_6 -= z_3_7;
            if (z_5_6 > 0)
            {
                z_6_8(z_5_6);
                for (int i = 0; i < z_5_2; i++)
                {
                    z_5_0[i] -= z_5_6;
                }
            }
        }
        return 0;
    }
    


  • @einnutzer0 sagte in Kann mir jemand dieses Cpp-Snippet erklären?:

    • (leider) noch eine Endlosschleife,
    int main()
    {
        while (1)
        {
    

    Meinst du diese?



  • Lieber Threaderzeuger, wenn du den Quellcode für irgendetwas in Zukunft benutzen willst, kann ich dir nur raten, die Benamung in Ordnung zu bringen.
    Wenn du nur einen schlechten Codegenerator getestet hast, dann wirf den Quellcode weg und betrachte den Test als gescheitert.



  • @it0101 sagte in Kann mir jemand dieses Cpp-Snippet erklären?:

    Lieber Threaderzeuger, wenn du den Quellcode für irgendetwas in Zukunft benutzen willst, kann ich dir nur raten, die Benamung in Ordnung zu bringen.
    Wenn du nur einen schlechten Codegenerator getestet hast, dann wirf den Quellcode weg und betrachte den Test als gescheitert.

    A: Wie geht das?
    B: Beantworte dir deine Frage selber.

    Entweder willst du mir nicht helfen, oder du kannst es nicht , @It0101 . Dann belästige meinen Thread doch nicht damit... Schweigen bringt manchmal mehr, als sich aufzuspielen.

    @Th69 Jenau.



  • Ich habe nur das Hauptproblem benannt. Wäre der Quellcode ordentlich und vor allem sprechend benamt und wenigstens ein bisschen dokumentiert ( wenigsten 1 Zeile Kommentar für jede Funktion ist nicht zuviel verlangt, denke ich ), wäre das Verständnis viel leichter.

    Das Hauptproblem ist nicht, dass z_1_2_3_4 dieses oder jenes tut oder nicht tut. Das Problem ist, dass die Benamung keinerlei Rückschlüsse auf die Funktion zulässt. Das ist ja auch keine Kritik an dir, denn du sagst ja selber, dass du den Quellcode übernommen hast. Sowas ist eben manchmal eine grausame Pflicht, die man als Entwickler zu erfüllen hat.

    Aber die erste Aufgabe eines professionellen Entwicklers ist eben dann, den Quellcode erstmal so gerade zu ziehen, dass er etwas intuitiver ist, aber das kann hier niemand für dich übernehmen, weil wir den Kontext gar nicht kennen. Das kannst nur du.

    Dass th69, SeppJ und co. dass so nicht direkt gesagt haben, ist nur ihrer Höflichkeit geschuldet, die mir leider komplett fehlt.


  • Global Moderator

    Der Code wärmt nach wie vor bloß den Prozessor. Ansonsten schließe ich mich It0101 an. Ich war zu höflich. Der TE will offensichtlich keine Mühe in eine brauchbare Fragestellung investieren. Dann bekommt er auch keine nützliche Antwort. Ist sein Problem, nicht meines. Das Problem ist dabei weniger die Lesbarkeit des Codes (es ist durchaus legitim zu fragen, was ein unlesbares Stück Code tut), sondern die sonstige Weigerung, wichtige Zusatzinformation zu liefern.



  • @seppj sagte in Kann mir jemand dieses Cpp-Snippet erklären?:

    sondern die sonstige Weigerung, wichtige Zusatzinformation zu liefern.

    Ich fasse das mal als versuchte Unterstellung auf.

    Schade, das sich der Thread so entwickelt hat und nun wahrscheinlich unbrauchbar ist...



  • Dieser Beitrag wurde gelöscht!

  • Global Moderator

    @einnutzer0

    @einnutzer0 sagte in Kann mir jemand dieses Cpp-Snippet erklären?:

    @seppj sagte in Kann mir jemand dieses Cpp-Snippet erklären?:

    sondern die sonstige Weigerung, wichtige Zusatzinformation zu liefern.

    Ich fasse das mal als versuchte Unterstellung auf.

    Versuch? Unterstellung? Ich sage klipp und klar, wie es ist. Es wurden sinnvolle Gegenfragen gestellt, du hast alle ignoriert. Weist man dich (zuerst höflich, später weniger höflich) darauf hin, wirst du auch noch pampig.

    Schade, das sich der Thread so entwickelt hat und nun wahrscheinlich unbrauchbar ist...

    Ja, woran das wohl liegt.



  • Grundsätzlich solltest du davon ausgehen, dass alle hier dir helfen wollen und auch können, aber du musst eben auch das Material dafür liefern.

    Deine Grundfrage wurde ja von SeppJ beantwortet: Der Code tut nichts.

    Wenn du weitere Fragen hast, musst du wohl noch etwas Kontext liefern. Wenn die Fragen konkreter sind, kann und wird man dir auch gern helfen.



  • @seppj sagte in Kann mir jemand dieses Cpp-Snippet erklären?:

    du hast alle ignoriert.

    Formulierungen und Unterstellungen werden lauter...

    Der Code tut nichts.

    Gut, dann muss er wohl unnütz sein. Hätten wir das schonmal auseinanderklamüsert. 🙂