Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > > > > > > Hallo TN! > > > > > > Zunächst einmal trenne die Eingabefunktion von der Verwertung der Tastendrücke: > > > > > > function NumTaste returns byte { > > > > > > byte myCode; > > > > > > do { myCode=rbkeyb.get(); } while (myCode & 0xF0) != 0x30; // Alles nicht-numerische überlesen > > > > > > return myCode & 0x0F; // Wert der getippten Zahl zurück geben > > > > > > } > > > > > > Um jetzt dein v als Ergebnis dreier eingetippter Ziffern zu berechnen genügt eine einfache Zuweisung: > > > > > > v = NumTaste() * 100 + NumTaste() * 10 + NumTaste(); // Drei Tasten lesen und verwerten > > > > > > Das Ganze ist jetzt sehr rasch hinein getippt und ohne Test. Sorry für allfällige Fehler. Aber vom > > > Prinzip kannst du es so verwenden. > > > > > > Beste Grüße, > > > Dietmar. > > > > > Hallo, > > > > ich habe die Funktion geändert: > > //*******************************************// > > function NumTaste (int myCode)returns int > > //*******************************************// > > {rbkeyb.select(0); > > do { myCode=rbkeyb.get(); } > > while (myCode & 0xF0) != 0x30; // Alles nicht-numerische überlesen > > > > return myCode & 0x0F; }// Wert der getippten Zahl zurück geben > > > > und bin auf "int" umgestiegen. byte geht doch nur bis 255. > > Ist das richtig? > > Der Aufruf erfolgt dann durch: > > v = NumTaste(r)* 100 +NumTaste(r)* 10 + NumTaste(r);} > > > > "r" ist dabei als globale int Variable definiert. > > > > Kann das so funktionieren? > > > > Gruß TN > > > > Hallo! > > Ja, das kann funktionieren! Aber warum machst du aus einer Variable einen Parameter (myCode)? > Da die Funktion keinen Eingangsparameter braucht, ist das nichts anderes als schlechter > Programmierstil, weil jemand, der dein Programm lesen soll, es bestimmt nicht gleich versteht. > > Die Variable r bringt nichts. Für myCode wird ja sowieso auf dem Stack ein Platz reserviert, du > könntest also genau so gut beim Aufruf NumTaste(5) statt NumTaste(r) schreiben. myCode wird ja > sowieso sofort mit einem anderen Wert überschrieben.Und ob r global oder lokal definiert wird, macht > keinen Unterschied, solange du r nicht in anderen Funktionen oder Modulen verwenden möchtest. > > Du kannst natürlich von byte auf int umstellen, verschwendst aber dabei nur Speicher. Zeichen werden > immer in Bytes dargestellt (zumindest in der C2). Beim Einsatz von int verwendest du ein High-Byte > zusätzlich, dass immer den Wert 0 enthält. Gerechnet wird sowieso mit int-Genauigkeit, also 2 Bytes. > Es genügt daher, dass v den Typ int hat. > > Ich weiß nicht, mit welchen Sprachen du bisher programmiert hast, aber das Konzept der Funktion > mit eigenem Stack-Bereich scheint dir nicht vertraut zu sein. Ich würde dir empfehlen, dich hier > zumindest etwas einzulesen. Bücher zu diesem Thema gibt es zuhauf, da findest du bestimmt schnell > etwas, womit dir geholfen ist. (Es muss nichts Spezifisches für die CC2 sein, die Prinzipien sind bei > allen prozeduralen Sprachen gleich. Nimm dir irgendein Buch über die Grundlagen von C, C++, C# > oder Java.) > > Beste Grüße, > Dietmar.