Mehrfachausführung im Programm?



  • Hallo,

    eingentlich eine rein konzeptionelle Frage. Seit ich versuche meine Basisfähigkeiten zu verbessern und C und C++ für "simple" Zwecke besser zu lernen ist mir klar geworden, dass es noch derart viele Wege und Möglichkeiten im Coding gibt als ich es je gedacht hätte. Ich wollte daher mal fragen, ob es für folgendes Konzept vielleicht eine "bessere" Variante gibt?

    Ok, nehmen wir an eine beliebiges Programm mit diversen Funktionen, normalen Variablen, globalen Variablen, usw soll nun mehrfach mit unterschiedlichen Werten ausgeführt werden. Das ganze Programm soll also Beispielsweise 100 mal in sich selbst ausgeführt werden also innerhalb eines Programms eben. Der Unterschied der zb 100 Ausführungen ist nur, dass in den Variablen andere Werte enthalten sein können und so der Programmablauf sowie Ergebnisse jeweils variieren. Sonst ist es immer die gleiche Programmlogik die ausgeführt wird. Das muss auch nicht parallel laufen sondern gern auch einfach hintereinander (von Threading etc hab ich noch keine Ahnung).

    Meine Idee ist, dass man per Schleife die komplette Programmlogik 100 mal durchlaufen lässt. Vor jedem Durchlauf werden entsprechend die Variablen angepasst und damit der Ablauf gesteuert. Da jeder Durchlauf Ergebnisse (die dann ausserhalb der Schleife wieder miteinander vergleichen werden) liefert, in Form von Werten in Variablen, dürfen also die Variablen nicht jedesmal überschrieben werden. Daher war meine Idee diese Variablen zu Arrays zu erweitern. Das Konzept ist also eine Schleife der kompletten Programmlogik und um die Individualität der Durchläufe zu sichern bekommen entsprechende Variablen eben eine Dimension mehr und werden zum Array. Der Index der Arrays läuft dann einfach mit dem Index der Schleife mit.

    Ich denke das es so klappen könnte, allerdings wollte ich mal nachfragen ob die Programmierkunst für solche Anwendungen nicht vielleicht noch schickere Lösungen bereit hält?

    Gruß
    ++



  • Lieber eine Struktur mit Ausgabevariablen und ein Array dieser Struktur.

    Und es wäre cool, wenn das aufgerufene Programm vom Array gar nichts wissen müsste, zum Beispiel indem es jeweils einen Zeiger auf eine Ausgabestruktur bekäme.

    Aber es gibt so unzählig viele Wege hier, zum Beispiel würde kaum einer einen Compiler so aufrufen, der lebt als externes Programm gerne. Ohne Kontext kann ich nur garantieren, daß Du es nicht so machen solltest, wie ich oben vorgeschlagen habe.



  • oder mit Files statt arrays

    seq 100|while read n; do MyProg < in_$n > out_$n; done;
    


  • Man müsste jetzt genau wissen was du vorhast. Normalerweise reicht für sowas eine funktion, die mit entsprechenden parametern gesteuert werden kann und ein ergebnis liefert. Das können auch mehrere sein, zb eine liste oder eine komplexe datenstruktur oder objekt. Diese funktion kann natürlich nach belieben auch weiter funktionen aufrufen. Aber es muss nicht unbedingt eine einfache funktion sein. Es kann auch eine Methode eines Objekts sein oder oder. Da wären wir wieder beim thema 'was hast du vor' 😉
    Globale variablen sind btw fast immer eine ganz blöde sache.


Log in to reply