Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

Hilfeeeeeee in C???

BDelphi / 13 Antworten / Baumansicht Nickles

Hallo
ich habe da ein kleines Problem,
ich muß Buchstaben dazu bringen das sie in einem Lauflicht erscheinen,ich habe schon einige versuche gestartet, aber es funzt irgend wie nicht, hat vielleicht einer von euch eine anregung für mich wie ich dieses Problem Lösen kann?!
hier meine bisherigen versuche...
#include

bei Antwort benachrichtigen
Dreamforger BDelphi „Hilfeeeeeee in C???“
Optionen

Selbe Frage, Selbe Antwort
Ausführlich erklärt hab ichs dir schon beim letzten mal, jetzt mag ich nicht mehr.

Hier hast du den Code für dein Problem.


#include
#include
#include

#define ROTATIONEN 10
#define FRAMES 10

char *licht = "Das ist mein Lauflicht, ersetz diesen Text durch ein Licht X und viele Blanks! ";


int main(int argc, char** argv)
{
int laenge = strlen(licht);
char sicherung;

for (int i = 0; i {
char *kopf = licht;
for (int ii = 0; ii {
printf("\r");
printf("%s", kopf);
sicherung = *kopf;
*kopf = NULL;
printf("%s", licht);
*kopf = sicherung;
kopf++;

Sleep(1000/FRAMES);

}
}


return -1;
}

Ich hab ihn ausprobiert und er läuft einwandfrei. Einfach per Copy&Paste in ein C File Kopieren. #include windows mache ich nur für Sleep. Ansonsten ist das ein Consolen Programm. Wenn du Windows nicht verwenden willst musst du die beiden Zeilen halt durch was anderes ersetzen.
bei Antwort benachrichtigen
BDelphi Dreamforger „Selbe Frage, Selbe Antwort Ausführlich erklärt hab ichs dir schon beim letzten...“
Optionen

Hallo Dreamforger,
Ja ich weiß, ist auch ok von dir, das Du dir mit mir so viel mühe gibst. Nur weißt Du ich Studiere das ofiziell, und ich darf nur die bis zu einem bestimmt Heft erläuterten Befehle, Funktionen usw. benutzen.
Ich lerne das hier nach Feierabend abends zu Hause, und manchmal setzt da ein wenig der grips aus, dann komme ich einfach darauf wie ich dieses Problem lösen soll, Du hatest mir ja schon mal ein Lösungsvorschlag gebracht, aber wenn ich ehrlich bin hat der bei mir nicht funktioniert.
Aber ich bin für jede Hilfe Dankbar.
Ich verstehe zwar schon sehr viel, aber manches halt nicht so auf anhieb.
Aber wie gesagt DANKE :-)

Thorsten

bei Antwort benachrichtigen
Dreamforger BDelphi „Hallo Dreamforger, Ja ich weiß, ist auch ok von dir, das Du dir mit mir so viel...“
Optionen

Hallo Thorsten,

also das mein Code von gestern nicht funktionieren soll wundert mich schon sehr. Schließlich hab' ich ihn im VC++ geschrieben, übersetzt und ausgeführt. Vieleicht macht er auch nicht das was du suchst.

Vielleicht hab ich dein Problem auch missverstanden:
Ich dachte du willst einen Text "123abc" definieren und der soll dann durchlaufen:
"23abc1" "3abc12" "abc123" "bc123a" ...

wenn ich mir deinen Code anschaue siehts mir mehr so aus als sollte es mehr so aussehen
"____1" "_____2" "______3" ... wobei _ ein Blank ist

Kannst du mal ein Beispiel angeben, so wie oben, was wirklich passieren soll? Bringt uns ja nichts wenn wir weiter aneinander vorbeireden, gelle :-)


bei Antwort benachrichtigen
BDelphi Dreamforger „Hallo Thorsten, also das mein Code von gestern nicht funktionieren soll wundert...“
Optionen

Hallo nochmal Dreamforger,

in der tat reden wir glaube ich, an einander vorbei,

Ich habe hier eine kleine vorlage, die ich so umsetzten soll, da dieser Quelltext sehr primitiv ist, das daraus ein Algorihtmus folgt.
Aber ist glaube ich besser wenn Du diesen Text siehst, geht aber leider nicht mit dem VC++ umzusetzten!.

#include

bei Antwort benachrichtigen
Dreamforger BDelphi „Hallo nochmal Dreamforger, in der tat reden wir glaube ich, an einander vorbei,...“
Optionen

Mir kommt da grad ne ganz dumme Idee:
Kann es sein das durch HTML die O's im obigen text zusammengeschoben wurden? Wenn man Blanks durch _ ersetzt, sehen dann die Texte so aus?

"_______O_______O_______O_______O_______O_______O...."
"______O_______O_______O_______O_______O_______O_...."
...
"O_______O_______O_______O_______O_______O_______...."

In diesem Fall kann man das Problem umformulieren in
1. position auf 8,8
2. 7 bis 0 blanks schreiben
3. text "O_ ... _O" ausgeben
4. 0 bis 7 blanks schreiben

also in C:
inlcudes usw bleiben wie oben


unsigned char *fixtext= "O O O O O O"
void main(void)
{
unsigned long int i;
BIL;
setbuf(stdout,NULL);
do
{
for (unsigned long ii = 0; ii {
_settextposition(8,8);
for (unsinged long iii = 7-ii; iii > 0; iii--)
printf(" "); // blank prefix
printf("%s",fixtext); // fixtext
for (iii = ii; iii printf(" "); // blank postfix
for (i = 1; i }
}while (!kbhit());
}

Im nachhinein verstehe ich auch deinen Codevorschlag. Eigentlich keine schlechte idee, ein bisschen unerfahren halt :-)

Syntaxfehler

char ar[10] = ".....";
char *zar;
C speichert auch bei arrays in der eigentlichen variablen nur die adresse wo das array steht. D.h zar = (char*)ar;

Inhaltsfehler
Du rufst int schieb(void) nie auf - nicht das es einen unterschied machen würde

Hoffentlich hab ich's endlich verstanden

Dreamforger
bei Antwort benachrichtigen
BDelphi Dreamforger „Mir kommt da grad ne ganz dumme Idee: Kann es sein das durch HTML die O s im...“
Optionen

hmm,
Hallo Dreamforger,

Haut schon wieder nicht hin,

mit den Befehlen for(ii = 7 -ii; usw. beispw. kenne ich erstens (noch)nicht, und zweitens mekert mein Compiler darüber!?
Ich benutze den Watcom-Compiler und den VC++6.0.
Also es ist so, das nur "O's über den Bildschirm ziehen, unterstriche sind nicht erforderlich. Insgesamt müßten es 60stk. sein.
Ich hatte mir eigentlich in meinem Quelltext gedacht, das ersten's das Array aufgerufen wird(was ja auch passiert) und dann als zweites die Funktion 'schieb', und das sich dann unendlich wiederholt, das tut es leider aber nicht, und ich weiß nicht, wie ich diese zum bewegen bekomme!?
Ich hoffe Du hast noch geduld mit mir?

Gruß Thorsten

bei Antwort benachrichtigen
Dreamforger BDelphi „hmm, Hallo Dreamforger, Haut schon wieder nicht hin, mit den Befehlen for ii 7...“
Optionen

Hallo

1. Die allgemeine Systax für 'for' Schleifen kennst du sicher:

for ( var = initialisierung ; abbruchbedingung ; schleifenfortsetzung ) befehl 

Meine Variable heist iii und wird auf 7-ii initialisiert
natürlich darfst du die neue variable nicht zur initialisierung verwenden.
Das ist kein Compilerabhängiger Befehl.

2. Die Unterstriche hab ich nur gemacht damit der Text nicht durch HTML zusammengeschoben wird. Natürlich stehen da eigentlich blanks

3. Wenn ich mir dein Programm vom Anfang dieses Threads anschaue sehe ich keinen Aufruf von 'schieb'. Am Anfang wird schieb deklariert und später implementiert. Aber nirgends aufgerufen.

Wenn dein Programm so aussehen soll (Lauflicht.exe) dann ist das hier der richtige Quellcode (Lauflicht.cpp).

Wenn dieser Quellcode nicht ohne minimale Änderungen funktioniert, kick deinen Compiler über den Haufen.
bei Antwort benachrichtigen
BDelphi Dreamforger „Hallo 1. Die allgemeine Systax für for Schleifen kennst du sicher: for var...“
Optionen

Hallo nochmal Dreamforger,

An deinen Quelltext bin ich leider nicht rangekommen, die seite konnte nicht angezeigt werden kam immer, aber dnnoch hast Du mich mit dein vorigen ausführungen auf eine Idee gebracht:
Was hällst Du von diesem Quelltext!?

#define TEMPO 15000000
#define BIL _clearscreen(_GCLEARSCREEN)

void ausgeben(void);
struct rccoord position_aktuell;


void main(void)
{
unsigned long int i;
int j;

setbuf(stdout, NULL);
BIL;

do
{
_settextposition(8,8);

for(j = 1; j {
ausgeben();
for(i=1;i }

}while(!kbhit());
}
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/

void ausgeben(void)
{
char array[10] = {'O', 'O','O','O','O','O','O','O','O','O'};
int i,j, y_pos, x_pos;
char *z_array;
z_array = &array[0];


position_aktuell = _settextposition(8,8);
x_pos = position_aktuell.row;
y_pos = position_aktuell.col;

for(i=10; i>=0;i--)
{
if(i == 3)
y_pos = y_pos -1;

_settextposition(x_pos, y_pos );
for(j=1; j {
printf(" %4c ", z_array[j]);
}
}
}
Jetzt habe ich es endlich :-)
Gruß Thorsten

bei Antwort benachrichtigen
Dreamforger BDelphi „Hallo nochmal Dreamforger, An deinen Quelltext bin ich leider nicht rangekommen,...“
Optionen

Tut mi leid dass der Download nicht geklappt hat - ich hab nur die exe getestet.

Wenn der Code für dich funktioniert ist es doch schön :-)

Bist du sicher das die äussere schleife for (i=10; i>=0;i--) optimal ist? Ich hab nicht lange drüber nachgedacht.

Wenn du es schaffst ein Problem so umzuformulieren, dass du es schrittweise abarbeiten kannst hast du gewonnen. Der Code wird vieleicht nicht optimal, aber das Zerbrechen in Teilprobleme führt immer zum Ziel.

bei Antwort benachrichtigen
BDelphi Dreamforger „Tut mi leid dass der Download nicht geklappt hat - ich hab nur die exe getestet....“
Optionen

Hallo Dreamforger,

was meinst Du damit, ob die Schleife optimal ist?

ich habe Sie noch ein klein wenig abgeändert for(i = 7; i >= 0; i--)
kann aber keinen großen unterschied feststellen!

gruß Thorsten

bei Antwort benachrichtigen
(Anonym) BDelphi „Hilfeeeeeee in C???“
Optionen

Hallo Thorsten,
so wie das aussieht machst du einen SGD-Kurs, ich bin auch momentan dabei.Bin jetzt bei CWI12.Wenn du Kontakt suchst dann gib doch bitte deine E-Mail Adresse an, ich werde mich dann melden.

Gruss
Bernd

bei Antwort benachrichtigen
BDelphi (Anonym) „Hallo Thorsten, so wie das aussieht machst du einen SGD-Kurs, ich bin auch...“
Optionen

Hallo Bernd,

gehe doch auf meine Webseite www.bdelphi.de

gruß Thorsten

bei Antwort benachrichtigen
BDelphi (Anonym) „Hallo Thorsten, so wie das aussieht machst du einen SGD-Kurs, ich bin auch...“
Optionen

Hallo Bernd,

Ich weiß nicht ob Du schon meine neue Nachricht gelesen hast?
Ich bin sehr an einem Kontakt Interressiert, um sich ein wenig auszustauschen, dezeit bin ich bei CWI 06.
Auf meiner Webseite geht auch ein Link zu meiner E-Mail-Addresse.

Also bis bald :-)

Gruß
Thorsten

bei Antwort benachrichtigen