Hallo,
wie kann man in Abhängigkeit von einer Eingabe einer natürlichen Zahl n (also z.B. 7) genau n (also in dem Fall 7) for-Schleifen erzeugen, die jeweils eine bestimmte Anweisung in Abhängigkeit von diesem n ausführen?
Ich stelle die Frage bewusst allgemein, da ich dieses Problem schon öfters hatte in unterschiedlichen Situationen.
Im aktuellen Anlass geht es darum, dass in diesen for-Schleifen die Werte a eines Arrays a[0;...;n-1] der Länge n jeweils um 1 ausgehend von null bis zu einer bestimmten Zahl m erhöht werden sollen und dann eine Anweisung ausgeführt werden soll.
Bsp.:
n=3; m =4 müsste liefern:
for(int i=0; i<4;i++){
for(int j=0; j<4;j++{
for(int k=0;k<4;k++){
// hier kommt jetzt die Anweisung rein , etwa eine Berechnungsvorschrift, ein Vergleich etc.
a[2]++
}
a[1]++;
a[2]=0;
}
a[0]++;
a[1]=0;
a[2]=0;
}
Die Anweisungsbedingungen sind alles Funktionen in Abhängigkeit von n und können leicht allgemein ausgedrückt werden. Also mit Ausnahme der innersten Schleife, wo halt die eigentlichen Anweisungen stehen, können die Anweisungen der äusseren Schleifen ausgedrückt werden durch:
a[y]++;
for(int i=y+1;i<n;i++){
a=0; }
,wobei das y nacheinander die Werte von 0 bis n-1 durchläuft.
Das Problem ist aber eben, dass obiges Codeschnipsel mit einer statischen Anzahl an for-Schleifen arbeitet, diese for-Schleifen müssten eben dynamisch erzeugt werden. Wie geht das ? (eine Lösung, eine bestimmte Anzahl von for-Schleifen einzutippen scheidet aus, da n auch sehr gross werden kann)
Also die innerste for-Schleife müsste man wohl statisch einbinden, weil da mehr Code drin ist, aber dann müssten eben aussenrum (n-1) for-Schleifen erzeugt werden, die dieselben Anweisungsfunktionen haben.
Vielen Dank für Hilfestellungen
wie kann man in Abhängigkeit von einer Eingabe einer natürlichen Zahl n (also z.B. 7) genau n (also in dem Fall 7) for-Schleifen erzeugen, die jeweils eine bestimmte Anweisung in Abhängigkeit von diesem n ausführen?
Ich stelle die Frage bewusst allgemein, da ich dieses Problem schon öfters hatte in unterschiedlichen Situationen.
Im aktuellen Anlass geht es darum, dass in diesen for-Schleifen die Werte a eines Arrays a[0;...;n-1] der Länge n jeweils um 1 ausgehend von null bis zu einer bestimmten Zahl m erhöht werden sollen und dann eine Anweisung ausgeführt werden soll.
Bsp.:
n=3; m =4 müsste liefern:
for(int i=0; i<4;i++){
for(int j=0; j<4;j++{
for(int k=0;k<4;k++){
// hier kommt jetzt die Anweisung rein , etwa eine Berechnungsvorschrift, ein Vergleich etc.
a[2]++
}
a[1]++;
a[2]=0;
}
a[0]++;
a[1]=0;
a[2]=0;
}
Die Anweisungsbedingungen sind alles Funktionen in Abhängigkeit von n und können leicht allgemein ausgedrückt werden. Also mit Ausnahme der innersten Schleife, wo halt die eigentlichen Anweisungen stehen, können die Anweisungen der äusseren Schleifen ausgedrückt werden durch:
a[y]++;
for(int i=y+1;i<n;i++){
a=0; }
,wobei das y nacheinander die Werte von 0 bis n-1 durchläuft.
Das Problem ist aber eben, dass obiges Codeschnipsel mit einer statischen Anzahl an for-Schleifen arbeitet, diese for-Schleifen müssten eben dynamisch erzeugt werden. Wie geht das ? (eine Lösung, eine bestimmte Anzahl von for-Schleifen einzutippen scheidet aus, da n auch sehr gross werden kann)
Also die innerste for-Schleife müsste man wohl statisch einbinden, weil da mehr Code drin ist, aber dann müssten eben aussenrum (n-1) for-Schleifen erzeugt werden, die dieselben Anweisungsfunktionen haben.
Vielen Dank für Hilfestellungen
Zuletzt bearbeitet: