Bascom: von Variable die letzten 2 Stellen auswerten

Gast #92514
Lesenswert?

Hi!

Wie kann ich von einer Variable (Integer) die letzten beiden Stellen
auswerten? z.B.:

If Weg = 1 Then Print "q"
If Weg = 2 Then Print "w"
If Weg = 3 Then Print "e"
If Weg = 4 Then Print "r"
If Weg = 5 Then Print "t"
If Weg = 6 Then Print "z"
If Weg = 7 Then Print "u"
If Weg = 8 Then Print "i"
If Weg = 9 Then Print "o"
If Weg = 10 Then Print "p"  <--- auch wenn Weg in Wirklichkeit 210
ist, soll er, wenn hinten "10" ist, ein "p" printen.


Vielen Dank

McMurkser
Gast #92515
Lesenswert?

Hi

Dafür gibt es den Right Befehl:
var = RIGHT(var1 ,n )

Auf deinen Fall angewendet:
IrgendeineVariable = Right(Weg, 2)

In der Variable stehen dann nur die letzten beiden Stellen der Variable
Web. Allerdings funktioniert das nur mit einem String so weit ich weis.
Also musst du den Integer erst mit dem Str Befehl in einen String
umwandeln.
Gast #92516
Lesenswert?

Und bevor du wieder nach Vereinfachungen fragst:

"
If Weg = 1 Then Print "q"
If Weg = 2 Then Print "w"
If Weg = 3 Then Print "e"
If Weg = 4 Then Print "r"
If Weg = 5 Then Print "t"
If Weg = 6 Then Print "z"
If Weg = 7 Then Print "u"
If Weg = 8 Then Print "i"
If Weg = 9 Then Print "o"
"

Sieh dir mal "Data" und "lookupstr" an, die if Anweisungen
verbraten Flash ohne Ende.

mfg
Gast #92518
Lesenswert?

Falls du trotzdem Bascom benutzen willst:
Die Division mit Rest gibts da auch

ret = var1 MOD var2

Remarks

Ret  The variable that receives the remainder.
var1  The variable to divide.
var2  The divisor.

mfg
#92519
Lesenswert?

Ich kann kein Bascom, aber unter C würde man solche wiederholten
Auswahlen über Zeiger machen.
D.h. man nimmt den Wert als Index, der auf ein bestimmtes Zeichen
innerhalb eines Textfeldes zeigt.
Und dieses Zeichen wird nur mit einer einzigen Anweisung ausgegeben.

Unter C würde das ganze optimiert so aussehen:

char zeichen[] = "qwertzuiop" ;
printf( "%c", zeichen[(Weg % 100)-1] );


Peter
Gast #92520
Lesenswert?

Moin.

Vielen herzlichen Dank für eure kompententen Antworten! :)
Wirklich sehr hilfreich, dieses Forum!

@Peter:
Programmierst du in C mit WinAVR? Ich möchte auch mal C ausprobieren.
Hab auch schon in Assembler gecodet aber Bascom geht halt einfach
sauschnell. Dafür braucht es aber viel Flash :(.

cya

McMurkser
#92521
Lesenswert?

Ja, ich benutze den WINAVR.

Allerdings bevorzuge ich die Kommandozeile.
Ich habe immer noch den guten alten Norton-Commander in der DOS-Box
laufen und compiliere über meine Batch-Datei.

Zum Programmieren benutze ich den ISP-Port des STK500, bzw. ab Mega8
meinen Bootloader.


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren