Kann bitte jemand diesen Arduino Sketch überprüfen. Er sollte eigentlich alle Möglichkeiten von Gewissen Zeichen in 5 Spalten in einer variablen abspeichern. Also A; A1; AA1;BB3a;Hg66.;....usw.
LG
Danke im forraus
Sketch: Sketch
void setup() {
Serial.begin(74880);
String zeichenString = "0123456789,.:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
int felder = 5;
int zeichenLaenge = zeichenString.length();
char zeichen[zeichenLaenge];
zeichenString.toCharArray(zeichen, zeichenLaenge + 1);
char aktuell[felder];
Serial.println(zeichen);
combi(0, felder, aktuell, zeichenLaenge, zeichen);
}
void combi(int index, int felder, char aktuell[], int zeichenLaenge, char zeichen[]) {
for (int i = 0; i < zeichenLaenge; i++) {
if (index == felder) {
Serial.println(aktuell);
return;
}
aktuell[index] = zeichen[i];
combi(index + 1, felder, aktuell, zeichenLaenge, zeichen);
}
}
void loop() {
}
uwefed:
Eine rekursiver Aufruf einer Funktion (aus sich selbst heraus) gibt auch jede Menge Probleme.
Besonders ohne Abbruchbedingung, die man als erstes programmieren sollte.
Auf unseren kleine RAM-Beständen beansprucht Rekursion stark den Stack und das kann nach hinten los gehen.
Das sollte man ohne Rekursion lösen, zumal es nur eine Ausgabe ist.
Hackarduino:
Kann bitte jemand diesen Arduino Sketch überprüfen. Er sollte eigentlich alle Möglichkeiten von Gewissen Zeichen in 5 Spalten in einer variablen abspeichern. Also A; A1; AA1;BB3a;Hg66.;....usw.
das wird auf einem Uno nicht klappen, diese Kombinationen in Variablen zu halten.
Du hast etwa 39 erlaubte Zeichen. Bei 5 Stellen komme ich schon auf
3938373635 = 69090840 Kombinationen wenn jedes Zeichen nur einmal vorkommt. Dazu 5 Byte pro Kombination also etwa 330MB. Zu viel für die üblichen UNOs/MEGAs.