#1 19. April 2006 Hi Leute, mein Bruder braucht zur Anschauung ein in der Programmiersprache C geschriebenes Programm welches folgendes können sollte: 1. Initialisierung eines Textes im Hauptprogramm 2. Ein Unterprogramm das die Eingabe einer Zeitverzögerungskonstante ermöglicht und den Wert ans Hauptprog. zurück gibt 3. Ein zweites UP, welches die Zeitverzögerung ausführt 4. Den Text als Laufschrift ausgeben 5. Ein drittes UP, welches zum richtigen Zeitpunkt aufgerufen wird um die jeweilige linke Spalte, an der der Text vor Ausführung eines Laufschrittes gestanden hat, zu löschen Wenn das jemand von euch proggen könnte wäre das mal richtig fett + Multi-Zitat Zitieren
#2 19. April 2006 Könnte ich machen, du musst mir nur erklären, wofür man jetzt das dritte UP braucht. An die Stelle, die gelöscht werden soll, muss doch sowieso ein neues Zeichen hin, oder meinst du mit Lauftext, dass der Text sich von links nach rechts über den Bildschirm bewegen soll? Soll der Text, der im Hauptprogramm initialisiert wird, vom Benutzer eingegeben werden, oder soll es ein statischer Text sein? + Multi-Zitat Zitieren
#3 19. April 2006 Hi, also... der Text soll von links nach rechts über den Bildschirm wandern. Die Sache mit dem 3.UP steht so in der Aufgabenstellung. Ach ja und das ganze soll unter Verwendung von Zeigern und ohne globale Variablen geschehen.. Kannst ja mal schauen obs klappt. Auf jeden Fall schonmal DANKE + Multi-Zitat Zitieren
#4 19. April 2006 Code: #include <stdio.h> #define LAENGE 40 void deletechar(int number) { gotoxy(number); printf(" "); } int getzeit() { int i; printf("Bitte Zeit eingeben \n"); i = scanf("%d", &i); return i; } void delay(int zeit) { int i; int a = 0; for (i=0;i<zeit;i++) { if (a==0){a=1;}else{a=0;} //Keeping him busy } } int main(int argc, char **argv) { int i; int zeit; char *text = strdup("Lauftext"); zeit = getzeit(); for (i = 1; i < LAENGE - strlen(text); i++) { gotoxy(i, 3); delay(zeit); deletechar(i); } free(text); return 0; } Das solltes eigentlich tun. LAENGE ist die Zeilenlänge von deiner Konsole. Hängt allerdings von deiner Entwicklungsumgebung ab, welche Funktion jetzt gotoxy ist. Unter DOS reicht es, glaub ich, die Datei graph.h zu includen. Du bräuchtest dafür aber einen C-Compiler für DOS. --> http://www.mathematik.uni-bielefeld.de/~kleinew/ckurs/ Unter Windows kann man sich anscheinend auch seine eigene schreiben --> http://www.webplain.de/foren/read.php?8,15495 Sind dann allerdings net mehr 3 UP's, sondern 4, daher hab ich erstmal drauf verzichtet ;-) Gruß Imm0 + Multi-Zitat Zitieren
#5 19. April 2006 Kompilierung läuft... C:\Laufschrift\probe.cpp(10) : error C2065: 'gotoxy' : nichtdeklarierter Bezeichner C:\Laufschrift\probe.cpp(39) : warning C4018: '<' : Konflikt zwischen signed und unsigned Fehler beim Ausführen von cl.exe. Laufschrift.exe - 1 Fehler, 1 Warnung(en) + Multi-Zitat Zitieren
#6 19. April 2006 mit welchem compiler hast du das gebaut? Wenn mit dem Dos-Kompiler, dann probier mal mit Dev-Cpp, und dann mit dem Gotoxy wie aus dem zweiten Link, den ich gepostet hab. Damit funktioniert's bei mir. Gruß Imm0 + Multi-Zitat Zitieren
#7 19. April 2006 habs mit microsoft visual c++ gemacht, den benutzen die auch in der schule... + Multi-Zitat Zitieren
#8 19. April 2006 Hast du dir das Sdk auch draufgemacht? KLICK Wenn nicht dann solltest du das mal draufhauen,sonst kommen immer solche Fehler(bei mir zumindest). + Multi-Zitat Zitieren
#9 19. April 2006 Code: #include <stdio.h> #include <windows.h> #define LAENGE 40 void gotoxy(short x, short y) { HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); COORD pos; pos.X=x-1; pos.Y=y-1; SetConsoleCursorPosition(hCon, pos); } void deletechar(int number) { gotoxy(number); printf(" "); } int getzeit() { int i; printf("Bitte Zeit eingeben \n"); i = scanf("%d", &i); return i; } void delay(int zeit) { int i; int a = 0; for (i=0;i<zeit;i++) { if (a==0){a=1;}else{a=0;} //Keeping him busy } } int main(int argc, char **argv) { int i; int zeit; char *text = strdup("Lauftext"); zeit = getzeit(); for (i = 1; i < LAENGE - strlen(text); i++) { gotoxy(i, 3); delay(zeit); deletechar(i); } free(text); return 0; } probier's mal so Gruß Imm0 + Multi-Zitat Zitieren
#10 19. April 2006 Kompilierung läuft... test.cpp c:\laufschrif1\test.cpp(17) : error C2660: 'gotoxy' : Funktion akzeptiert keine 1 Parameter c:\laufschrif1\test.cpp(46) : warning C4018: '<' : Konflikt zwischen signed und unsigned Fehler beim Ausführen von cl.exe. Laufschrif1.exe - 1 Fehler, 1 Warnung(en) wenn ich dann hier: void deletechar(int number) { gotoxy(number,1); printf(" "); } oder sonstiges hinter "number" einfüge, öffnet sich das Fenster und schließt sofort wieder, auch mit getchar() !! + Multi-Zitat Zitieren
#11 20. April 2006 ja, tschuldigung, muss in zeile 17 gotoxy(nummber, 3) sein. dann sollte er's ja eigentlich tun. EDIT: kannst du denn einen wert für die verzögerung eingeben oder schließt er sofort, nachdem du das programm startest? gruß imm0 + Multi-Zitat Zitieren