Bascom: von Variable die letzten 2 Stellen auswerten

Gast #92514
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
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
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
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.