Forum: PC-Programmierung Vorgehensweise beim eintippen von zahlen mit einem Keypad


von Hans (Gast)


Lesenswert?

Hallo,

ich versuche mich gerade darin einen Widerstandsrechner zu bauen, der 
die Farben aufschlüsselt.

Nun stehe ich allerdings ganz am Anfang vor dem Problem wie man die 
Zahlen denn aufnimmt.
Zunächst hatte ich ein array angelegt und bei jedem tastendruck die 
Stelle im Array um eins verschoben. Am Ende wurde das Array per 
Multiplizeren in ein long gewandelt.

Ich frage mich allerdings, ob dies auch einfacher geht?

Wie gehe ich denn vor, dass bei drücken der Taste 1, 2, 3 am Ende ein 
long mit dem Wert 123 herauskommt?

Weiteres hätte ich gerne Tasten "K"->kOhm und "M"-> MOhm, um damit zB 
1,5 KOhm schneller tippen zu können indem man die Tasten "1" "K", "5" 
drückt

von imonbln (Gast)


Lesenswert?

Es wäre hilfreich uns etwas mehr Informationen über dein Aufbau zugeben.

Mit Keypad meinst du das das Keypad der Tastertur und wenn nicht wo ist 
das angeschlossen, gibt es einen Mikrocontroller der die Tasten 
auswerten soll und wenn ja welchen (Type).
Wieso hast Du Probleme 1,2,3 als 123 zu empfangen bei meinen PC wandelt 
das der Compiler bei geeigneter Formatierung von alleine in ein long.

In welcher Programmiersprache willst du denn Widerstandsrechner 
überhaupt Programmieren? Da du im Subforum Pc-Programmierung schreibst 
könnte es vielleicht auch hilfreich sein uns dein Betriebssystem zu 
verraten.

Ohne wenigsten einige dieser Informationen, fällt es mir schwer auch nur 
zu verstehen was genau dein Problem gerade ist.

von Rolf M. (rmagnus)


Lesenswert?

Hans schrieb:
> Wie gehe ich denn vor, dass bei drücken der Taste 1, 2, 3 am Ende ein
> long mit dem Wert 123 herauskommt?

Du nimmst eine Integer-Variable für den Wert. Der ist anfangs 0. Immer, 
wenn eine Ziffer eingetippt wird, wird erst der gespeicherte Wert mit 10 
multipliziert, dann die eingegebene Zahl dazuaddiert.

Hans schrieb:
> Weiteres hätte ich gerne Tasten "K"->kOhm und "M"-> MOhm, um damit zB
> 1,5 KOhm schneller tippen zu können indem man die Tasten "1" "K", "5"
> drückt

Du könntest eine zweite Variable verwenden, in der du den Faktor 
speicherst. Also bei Eingabe eines K einen Wert von 1000. Bei jeder 
eingegebenen Ziffer muss dieser dann durch 10 geteilt werden. Am Schluss 
multiplizierst du den Faktor mit dem obigen Wert. Also z.B.:

1     -> Wert=1, Faktor=0
K     -> Wert=1, Faktor=1000
5     -> Wert=15, Faktor=100
=======
15 * 100 = 1500.

Du musst dann nur noch das Abfangen von Eingabefehlern einbauen (z.B. 
dass man nicht M3KM1 eingeben kann).

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
Noch kein Account? Hier anmelden.