Teil in Schleife wiederholen
-
Hallo,
das Ergebnis im DOS Fenster soll wie folgt aussehen:
Verformung [mm] für Druckmatrix1
=MMULT(F4:DU4;A4:A123)
Verformung [mm] für Druckmatrix3
=MMULT(F6:DU6;A244:A363)
Verformung [mm] für Druckmatrix5
=MMULT(F8:DU8;A484:A603)
Verformung [mm] für Druckmatrix7
=MMULT(F10:DU10;A724:A843)
Verformung [mm] für Druckmatrix9
=MMULT(F12:DU12;A964:A1083)
Verformung [mm] für Druckmatrix11
=MMULT(F14:DU14;A1204:A1323)
Verformung [mm] für Druckmatrix13
=MMULT(F16:DU16;A1444:A1563)
Verformung [mm] für Druckmatrix15
=MMULT(F18:DU18;A1684:A1803)
Verformung [mm] für Druckmatrix17
=MMULT(F20:DU20;A1924:A2043)
Verformung [mm] für Druckmatrix19
=MMULT(F22:DU22;A2164:A2283)
Verformung [mm] für Druckmatrix1
=MMULT(F24:DU24;A4:A123)
Verformung [mm] für Druckmatrix3
=MMULT(F26:DU28;A244:A363).....
Verformung [mm] für Druckmatrix19
=MMULT(F2422:D2422;A2164:A2283)Wie man sieht erhöhen sich die Zahlenwerte nach dem F und nach dem DU um jeweils 2. Das habe ich auch hinbekommen. Aber wie man sieht wiederholen sich die Zahlenwerte hinter den A's. Ich weiß leider nicht wie ich das vernünftig umsetzen soll. Bis jetzt habe ich für die Zahlenwerte hinter den A's erstmal Leerzeichen eingefügt.
#include <iostream> #include <conio.h> void drucke(const int a); int main() { int index; for (index = 4 ; index < 2423 ; index+= 2) drucke(index); getch(); return 0; } void drucke(const int a) { std::cout <<"Verformung [mm] fuer transponierten Druckvektor\n" "=MMULT(F" << a <<":DU" << a << ";A " ":A " ")\n"; }
-
Den Code, den Du hier zeigst passt IMHO nicht zu der Ausgabe.
-
Exakt,
deswegen habe ich ja auch nach Hilfe gefragt, damit er irgendwann so aussieht wie ich mir das vorstelle.
-
Und was sollen nun die Regeln sein, die zwischen diesen Parametern herschen?
-
Hi,
ich beschreibe es mal einfacher:
=MMULT(F4:DU4;A4:A123)
=MMULT(F6:DU6;A244:A363)
=MMULT(F8:DU8;A484:A603)
=MMULT(F10:DU10;A724:A843)
=MMULT(F12:DU12;A964:A1083)
=MMULT(F14:DU14;A1204:A1323)
=MMULT(F16:DU16;A1444:A1563)
=MMULT(F18:DU18;A1684:A1803)
=MMULT(F20:DU20;A1924:A2043)
=MMULT(F22:DU22;A2164:A2283)
=MMULT(F24:DU24;A4:A123) //wiederholen der Zahlen hinter dem A
=MMULT(F26:DU28;A244:A363)
......usw
Also die Zahl hinter dem F und dem DU erhöhen sich je Zeile um den Wert 2. Nach 10 Zeilen in der Ausgabe beginnen die Zahlen hinter den A wieder von vorne.
Jetzt besser verständlich?
-
Da helfen zur Not noch die nötigen Umrechnungen:
for(int index = 0;index < ...; ++index) { cout<<"Verformung für Druckmatrix "<<2*(index%10)+1<<endl; cout<<"=MMULT(F"<<2*index+2<<":DU"<<2*index+4<<",A"<<240*(index%10)+4<<":A"<<240*(index%10)+123<<")"<<endl; }
-
So, habs eingefügt und es rattert auch durch. Aber leider schließt sich natürlich das DOS Fenster ;).
Ich hab leider kaum Ahnung von C++.
Ich hab mal getch() benutzt, das ging sonst auch, hier scheinbar aber nicht?!
Wie kann ich das DOS Fenster vorm automatischen schließen hindern, damit ich das programmierte kopieren kann aus dem DOS Fenster?
#include <iostream> using namespace std; int main() { int index; for(int index = 0; index < 100; ++index) { cout<<"Verformung für Druckmatrix "<<2*(index%10)+1<<endl; cout<<"=MMULT(F"<<2*index+2<<":DU"<<2*index+4<<",A"<<240*(index%10)+4<<":A"<<240*(index%10)+123<<")"<<endl; } }
-
Habs schon, habs einfach in der Eingabeaufforderung aufgerufen!
-
Einfachste Lösung: Schreib das Ganze direkt in eine Datei
Ansonsten:
Erstens: Wo hast du denn das getch() in dem Code?
Zweitens: In der FAQ findest du auch Lösungen gegen die selbstschließende Konsole.
-
Die IMO besteEine gute Lösung für (gegen) das Schliessen des Konsolenfensters ist es einen Breakpoint auf die schliessende } von main() zu setzen (Cursor in die Zeile stellen + F9).
Falls der dort nicht funktioniert einfach eine "return 0;" Zeile machen, und auf diese den Breakpoint setzen.