Algorithmus... bitte um Hilfe!
-
Hallöchen,
wäre echt nett wenn Ihr mir helfen könntet. Folgendes Problem:
Ich habe ein Programm entwickelt das auf dem Bildschirm eine Art Lauflicht erzeugt.
Der Algorithmus des Programms ist jedoch sehr primitiv, ja, eigentlich kann man nicht von einen Algorithmus sprechen.Hier das Programm:
#include <stdio.h> #include <curses.h> #define TEMPO 5000000 /************************************************************************/ void main(void) { unsigned long int i; initscr(); /* Initialisiert das Terminal */ cbreak(); /* Zeichen sofort weiterreichen */ noecho(); /* Kein Echo bei getch() */ //echo(); /* Echo bei getch() */ nonl(); /* Keine neue Zeile bei Return */ intrflush(stdscr, FALSE); keypad(stdscr, TRUE); /* Ziffernblock aktivieren. */ nodelay(stdscr, TRUE); /* nicht blockierender Aufruf von getch() */ do { move(8,8); printw(" O O O O O O O O O O"); refresh(); for (i = 1; i <= TEMPO; i++); move(8,8); printw(" O O O O O O O O O O "); refresh(); for (i = 1; i <= TEMPO; i++); move(8,8); printw(" O O O O O O O O O O "); refresh(); for (i = 1; i <= TEMPO; i++); move(8,8); printw(" O O O O O O O O O O "); refresh(); for (i = 1; i <= TEMPO; i++); move(8,8); printw(" O O O O O O O O O O "); refresh(); for (i = 1; i <= TEMPO; i++); move(8,8); printw("O O O O O O O O O O "); refresh(); for (i = 1; i <= TEMPO; i++); }while( getch() == ERR ); /* ERR = Rueckgabew. für Fehler in ncurses*/ endwin(); /* Normalen Modus wieder herstellen */ } /************************************************************************/
Nun muss ich das Programm verbessern indem ich einen es neu programmiere, diesmal mit Algorithmus! Als Anregung bekam ich folgendes:
- Holen Sie die Anfangsdaten aus einem Array oder einer Struktur.
- Geben Sie die Ziffer Null inerhalb einer Schleife an den richtigen Stellen auf dem Schirm aus.Wäre echt nett wenn IHR mir weiterhelfen könntet,
VIELEN DANK!!!
Gruss Robb
-
Hallo!
#include <stdio.h> #include <curses.h> #define ENTER 10 #define PROBIER_AUS 1000 /* Probier selbst aus, wie schnell es sein soll! */ /************************************************************************/ void main(void) { int i; initscr(); /* Initialisiert das Terminal */ cbreak(); /* Zeichen sofort weiterreichen */ noecho(); /* Kein Echo bei getch() */ //echo(); /* Echo bei getch() */ nonl(); /* Keine neue Zeile bei Return */ intrflush(stdscr, FALSE); /* Was macht diese Funktion? */ keypad(stdscr, TRUE); /* Ziffernblock aktivieren. */ nodelay(stdscr, TRUE); /* nicht blockierender Aufruf von getch() */ while(getch() != ENTER) { for (i = 0; i <= 5; i++) { mvprintw(8, 8+6-i, "O O O O O O O O O O"); refresh(); usleep (PROBIER_AUS); } } endwin (); }
Habe es nicht ausprobiert, müsste aber gehen.
Gruß
Michael
-
diesmal mit Algorithmus!
Was soll das denn heißen??
Ein Algorithmus ist eine allgemeine, endliche, ausführbare und eindeutige
Verfahrensvorschrift.
Wenn das Proggie keine Fehlermeldung ausgibt (irgendwelche Unendlichkeiten z.B.: Division by Zero oder so was) müsste es sich also um einen Algorithmus handeln welcher jedoch verbessert werden kann wenn du das meinst.