wie kann man beliebig viele Matrizenmultiplikationen ausführen ohne das Programm mehrmals zu starten.



  • Beliebig viele Matrizenmultiplikationen heißt für mich, dass du eine Schleife bauen musst, in der der Benutzer gefragt wird, ob er weiter machen will oder nicht.

    char ch = 'j';
    while(ch == 'j')
    {
    //
    //
    std::cout<<"Weitermachen? j fuer weiter.\n;
    std::cin>>ch;
    }
    

    Eventuell wäre noch denkbar, eine Abfrage zu machen, ob mit der aktuellen Matrize weitergerechnet werden soll oder ob zwei neue matrizen eingelesen werden sollen.

    gruß
    syntax



  • @Sone: ich lerne Programmieren schritt für schritt und ich bin erst im Stoff bei Array und Zeiger

    ja aber wo es in der Angabe steht, dass man für die Speicherung der Matrixen maximum 3 Variablen nützen kann und falls ich eine Abfrage mache, ob ich weitermachen soll, dann muss ich doch eine 4.Variable nehmen.



  • [quote="nata"] Verwenden Sie in Ihrem Programm zur Speicherung der Matrizen maximal 3 Variable.
    [/b]
    Du speicherst in dieser Variable für die Schleife ja keine Matrizen. Also gehts für mich ok.

    gruß
    syntax



  • also du meinst meine ganze for schleifen in while schleife einpacken?



  • oder in
    do{

    }while(1);

    da einpacken

    Wie ich richtig verstanden habe es soll endlos schleife sein und abbruch nur mit ctrl + c

    ich habe versucht so und es funktioniert so, dass man 2 neue Matrixen eingeben muss, aber falls man produkt mit neue matrix multiplizieren soll, muss man nicht 4. Variable für Matrix einführen?



  • nata schrieb:

    oder in
    do{

    }while(1);

    da einpacken

    Wie ich richtig verstanden habe es soll endlos schleife sein und abbruch nur mit ctrl + c

    Du kannst auch einfach

    for(;;)
    {
    ...
    

    nehmen... aber das ist jetzt auch egal. Konzentrier dich aufs wesentliche.



  • danke.

    Respekt gegenüber euch allen.
    Ich habe ganzen tag gebraucht um 2 kleine Codes zu schreiben 😞
    mein Gehirn kocht
    ich höffe irgendwann wir schneller gehen



  • Jockelx schrieb:

    result += matrix1[i][k]*matrix2[k][j];
    Und schreib doch besser Funktionen für die Ausgabe, statt den Code die ganze Zeite zu kopieren.

    es wird doch wert von result immer wieder auf 0 gesetzt. deine Lösung stimmt wirklich aber warum ist verschiedene ergebnisse wenn man result += matrix1[i][k]*matrix2[k][j] und result = matrix1[i][k]*matrix2[k][j] eingibt?

    noch dazu diese Algorithmus habe ich von andere Forumsbeitrag. Irgendwie kapiere ich nicht wie man darauf kommt und alleine wurde ich sicher nicht darauf kommen


  • Mod

    nata schrieb:

    es wird doch wert von result immer wieder auf 0 gesetzt.

    Nicht innerhalb der k-Schleife. Und das ist auch gut so, denn sonst würde das Ergebnis nicht stimmen.



  • nata schrieb:

    warum ist verschiedene ergebnisse wenn man result += matrix1[i][k]*matrix2[k][j] und result = matrix1[i][k]*matrix2[k][j] eingibt?

    ist dir klar, was der "+="-Operator macht?

    nata schrieb:

    noch dazu diese Algorithmus habe ich von andere Forumsbeitrag. Irgendwie kapiere ich nicht wie man darauf kommt und alleine wurde ich sicher nicht darauf kommen

    das ist die übliche Matrizenmultiplikation...


Anmelden zum Antworten