Hallo, ich habe ein Programm, das aus mehreren Schleifen besteht. Innerhalb einiger Schleifen sind weitere Schleifen. Dies geht bis zu drei Ebenen tief. Damit ich einfach erfassen kann wie weit die Programmausführung bereits fortgeschritten ist möchte ich den Ablauf des Programms grafisch darstellen. Hierbei sollte es, möglichst auf einen Blick, möglich sein zu sehen wo die Programmausführung gerade steht. Ich möchte hierfür jedoch keine Anzeige, die von 0 bis 100% geht. Ich möchte vielmehr eine Darstellung, die mir zeigt in welcher Schleife und insbesondere in welchem Durchlauf der Schleife sich das Programm gerade befindet. Habt Ihr einen Tipp für mich wie dies grafisch oder gar mit Text sinnvoll und ansprechend realisieren könnte? Mit freundlichen Grüßen Guido
Wie wäre es mit 3 Zahlen? for( i = 0; i < 10; ++i ) for( j = 0; j < 10; ++i ) for( k = 0; k < 10; ++k ) printf( "%d %d %d\n", i, j, k ); einfach, schnell gemacht und erzählt alles was man braucht. (PS. Man kann natürlich den printf entsprechend den Schleifen aufteilen und auf 3 mal machen.
Hallo Karl Heinz, danke für die Rückmeldung. Die Schwierigkeit dabei ist, dass die Schleifen durchaus verschachtelter auftreten können. for( i = 0; i < 10; ++i ) { ... for( j = 0; j < 10; ++j ) { ... } for( k = 0; k < 10; ++k ) { ... } for( l = 0; l < 10; ++l ) { ... for( m = 0; m < 10; ++m ) { ... } ... for( n = 0; n < 10; ++n ) { ... } } ... for( p = 0; p < 10; ++p ) { ... } } Es soll so innerhalb des Programms möglich sein einen Prüfablauf zu definieren (Heizen, Abkühlen, ...). So nach dem Motto: Zuerst 5 mal eine Minute Heizen und zwei Minuten Abkühlen, anschließend 10 Minuten Heizen und 20 Minuten Abkühlen, dann 10 mal drei Minute Heizen und fünf Minuten Abkühlen, usw... Ideal wäre wenn es möglich wäre während des Ablaufs auf einen Blick zu erfassen wo der Ablauf gerade "steht". Mit freundlichen Grüßen Guido
Guido C. schrieb: > Es soll so innerhalb des Programms möglich sein einen Prüfablauf zu > definieren (Heizen, Abkühlen, ...). So nach dem Motto: Zuerst 5 mal eine > Minute Heizen und zwei Minuten Abkühlen, anschließend 10 Minuten Heizen > und 20 Minuten Abkühlen, dann 10 mal drei Minute Heizen und fünf Minuten > Abkühlen, usw... > > Ideal wäre wenn es möglich wäre während des Ablaufs auf einen Blick zu > erfassen wo der Ablauf gerade "steht". Das Hauptproblem (oder besser: mein Hauptproblem) besteht darin, dass du diese Squeneznummern am besten irgendwo an eine fixe Position am Monitor schreibst. Nur leider sind derartige Dinge ausserhalb des C-Standards angesiedelt (C kennt erst mal keinen Bildschirm oder eine Tastatur. C kennt nur Eingabeströme und Ausgabeströme. Welche Geräte da dann drann hängen ist C an sich egal). Das bedeutet: Du musst das nehmen, was du zur Verfügung hast. Viele Consolen können zb mit VT100 Sequenzen umgehen. Oft gibt es auch eine nCurses-Library, so dass man dann den Ausgabecursor gezielt am Monitor platzieren kann. Wenn du sowas hast, dann such dir eine nette Ecke aus, in der du deine Sequenznummern ausgeben willst (3 Stück) und gib demenstprechend in jedem Schleifendurchlauf die betreffende Nummer an ihrem Platz aus. So eine nCurses Library ist sowieso nicht schlecht, wenn du ein einigermassen ansprechendes Benutzerinterface basierend auf einem CHaracter-Display bauen willst. Mit einem graphischen Überbau sieht das alles dann natürlich sowieso noch wesentlich eleganter aus.
Hallo, Karl Heinz Buchegger schrieb: > Mit einem graphischen Überbau sieht das > alles dann natürlich sowieso noch wesentlich eleganter aus. Ich denke mittlerweile: Wenn der aktuelle Stand möglichst einfach zu erfassen sein soll ist eine grafische Darstellung recht hilfreich wenn nicht gar unumgänglich. So sind beispielsweise sich füllende Balken (Stichwort: Fortschrittsanzeiger) leichter zu erfassen als Zahlen. Allerdings stellt sich mir hierbei die Frage wie ich dies genau darstellen soll. Vielleicht pro Schleife einen Fortschrittsanzeiger, der entsprechend dem Code eingerückt ist?
1 | ■■■■□□□□□□ |
2 | ■■■■■■■■■■ |
3 | ■■■■■■■■■■ |
4 | ■■■■□□□□□□ |
5 | ■■■■■■■■■■ |
6 | ■■■■□□□□□□ |
7 | □□□□□□□□□□□ |
Mit freundlichen Grüßen Guido
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.