in Programming, TI-BASIC

TI BASIC Tutorial 3

Hier das dritte Tutorial, in dem wir ein erstes relativ sinnvolles Programm coden ;)

Bisher können wir zwar Texte ausgeben, aber mehr auch nicht.

Nun kommen wir zu den Variablen.

Die kennst du ja wahrscheinlich schon aus dem Matheunterricht (wenn du nicht die ganze Zeit mit deinem TR rumspielst ;) ): Variablen sind eine Art Minispeicherplätze für Zahlen.

Zuerst müssen wir der Variable einen Namen geben. Leider kann man nicht mehrere Buchstaben aneinanderreihen, sondern muss Namen wie x,y oder a und b nehmen.

ACHTUNG: Wenn man größere Projekte programmiert, sollte man sich unbedingt die Bedeutungen der Variablen aufschreiben, da man sonst nach einem Wochenende nix mehr versteht!

Wie kann man denn nun den Variablen Zahlen zuweisen?

5->X
3->Y
X+Y->A

A wäre in diesem Fall 8.

(Den Pfeil kann man schreiben, indem man die Taste STO-> drückt)

Eine Variable ausgeben, ist auch nicht weiter schwer:

8->A
Output(1,1,A)
Disp A

Zu beachten ist, dass Disp das Ergebnis am rechten Bildschirmrand anzeigt.

Doch wie kann man Variablen vom User einlesen lassen?

Input "Variable:",A
Disp A

Nun kann man jede Zahl eingeben und wieder auslesen lassen.

Zeit für ein kleines Experiment:

Rufe dieses Programm auf, und gebe dort z.B. 19 ein, und lass die Variable auslesen.

Schalte dann den TR aus.

Starte ihn erneut, ruf das Programm auf, und gebe jetzt A ein. Der Taschenrechner gibt wieder 19 aus. Er hat sich also die Zahl gemerkt, und behält sie auch ausgeschaltet.

Die if-Verzweigung

Zeit für ein kleines “Spiel” ^^:

Lbl A   (Der Sprungpunkt)
ClrHome       (Löscht alles auf dem Display)
randInt(1,9)->A  (A ist nun eine Zufallszahl zwischen 1 und 9)
randInt(1,9)->B
A+B->C       ( C ist nun die Summe von A und B)
Output(1,1,A)
Output(1,2,"+")
Output(1,3,B)
Disp""           (Muss ausgegeben werden, damit Input nicht die Rechnung überschreibt)
Input "Ergebnis:",D  (D ist die Eingabe des Users)
IF (D=C)    (Wenn D den gleichen Wert wie C hat)
THEN    (Dann mache)
Disp "Richtig!"   (Richtig ausgeben)
END  (Wenn das nicht so ist (D nicht gleich C ist))
IF (C	≠ D) (Wenn C nicht gleich D ist)
THEN
Disp "Falsch!"  (Falsch ausgeben)
END   (Die if Schleife beenden)
PAUSE   (aus ENTER warten)
Goto A  (Wieder zum Anfang (Sprungpunkt A) gehen

In diesem Code sind zwei neue Sachen:

– randInt

Zu finden mit 2nd + 0 und dann x bzw. R drücken. Dies ist der Katalog. Hier findet man alles, was der TR kann. Wenn man den Anfangsbuchstaben des benötigten Befehls drückt, gelangt man direkt zu ihm.

–  GOTO A:

Wenn man dieses Goto z.B. in Zeile 3 einbaut, und Lbl A: in Zeile 1 stehen hat, würde er den Befehl in Zeile 2 ewig wiederholen. Anstatt a kann man natürlich auch jeden anderen Buchstaben nehmen, und auch mehrere Gotos in ein Programm einbauen.

– IF (Bedingung):THEN:Tu dies und das:END

Wenn die Bedingung in den Klammern stimmt (das = Zeichen findet man bei 2nd + Math), wird die Aktion, die zwischen Then und End steht ausgeführt.

Wenn sie nicht wahr ist, passiert nix.

Wenn doch etwas passieren soll, wenn die Bedingung unwahr ist, dann hilft:

ELSE

Die Syntax sieht dann so aus:

: IF (Bedingung)
: THEN
: Tu irgendwas
: Else
: Tu irgendwas anderes
: END

Write a Comment

Comment

38 Comments

  1. Auch wenns schon etwas länger her ist, vllt für andere, die noch kommen:
    Die Zeichen, die hier verwendet werden sind alle auf eurem TI84+ vorhanden, ihr seid wahrscheinlich einfach nur blind :)
    Das “,” findet man ganz einfach über der “7”
    Die ” Zeichen findet man bei Alpha->”+”
    Die eckigen Klammern bei 2ND->”x”/”-”
    Das = Zeichen ist eine “Test”-Funktion, diese findet man unter 2ND->Math

  2. Hey
    Ich kann ja mit or ein oder in der If-Abfrage machen, aber wie geht dass, wenn ich mehrere or’s habe?

    If (A=1) or (B=1) or (C=1)
    Then

    Geht nicht
    Und

    If >((A=1) or (B=1) or (C=1))
    Then

    geht auch net

  3. @Babadoom: Das funktioniert aber nur dann uneingeschränkt, wenn du nicht mehr als eine Reaktion hast. Wenn du etwa

    If X=1
    LöscheBSchirm
    Anz. "Richtig!"

    Funktioniert der Code nicht, dann kanns sein, dass er “Richtig!” auch anzeigt, wenn du gar nicht 1 als X eingegeben hast, weil er nur einen Schritt nach der If Zeile noch auf das If bezieht und die danach nicht mehr!

  4. Danke

    1. für den tipp, wie man hier sowas [ ] posten kann,

    2. für den tipp, wieich sie auf dem TI schreiben kann…

    mathekann kommen, ich bin bereit!!!

  5. Alles, was man hier nicht posten kann, einfach in [ code ] setzen, ohne die Leerzeichen.

    Du meint das “Größer als”, “Kleiner als”-Zeichen?

    Beim TI83+ findet man die mit 2nd+Math (also “Test”)…

  6. sorry,

    der comp. zeigt´s nict an…
    ich meine
    wenns immer noch nicht geht:
    klammern, wie man sie bei html braucht, so 3-eckige… :P
    zu hilfe…

  7. hallo alle,

    bin ich zu doof oder ihr zu schlau? :(
    ich hab nen TI 84+ und finde KEINEN weg “” zu schreiben!!!
    HILFE :(

  8. Du hast natürlich Recht, aber da sich dieses Tutorial gerade an Anfänger richtet, wollte ich die nicht damit verwirren ^^

    Ich hab deine Code Stücke in [ Code ] gepackt, damit andere Besucher sie besser lesen können und ihr Spiel mit deinen Tipps erweitern ;)

    Vielen Dank für deine Mühe! :D

  9. Hi, echt cool was man sich im Matheunterricht alles so aneignen kann^^
    Ich hätte da noch ein paar klitze kleine Verbesserungsvorschläge:
    1. wenn du keine ELSE Bedingung in deiner If-Schleife verwendet
    kannst du THEN und END weglassen, das sieht dann so aus:

    If (C = D)
    Disp "RICHTIG"
    If (C [ungleichzeichen] D)
    Disp "Falsch"
    Pause
    

    2. kann man an das Ende noch die Frage basteln, ob der Vorgang
    wiederholt werden soll, oder nicht. das geht auf verschiedene
    weisen:
    1) (kompliziertere Variante, sieht dafür besser aus)

         :Output(6,1"WIEDERHOLEN?")
         :Lbl AQ
         :Input "Antwort: ",A
         :If A = JA
         :Goto A
         :If A = NEIN
         :THEN     [[hier muss ich then verwenden, da ich 1. mehrere zeilen 
                       dahinter habe und 2. else folgt.]]
         :ClrHome
         :Stop
         :Else
         :Goto AQ
         :Output(4,1,"UNGUELTIGE ANGABE")
         :End
    

    2)

     
         :Menu("WAS NUN?","WIEDERHOLEN",A,"BEENDEN",EX)
         :Lbl EX
         :ClrHome
         :Stop
    
  10. hi

    für alle mit nem 82 stats:

    https://education.ti.com/downloads/guidebooks/graphing/83/83book-deu.pdf

    ist ausführlicher, genauer und hat mir sehr geholfen.

    Ich würde auch gerne den ein oder anderen Quelltext angeben, da meine
    (guten) Programme aber recht groß sind werde ich sie nicht abtippen.
    Wenn also jemand weis wo ich billig ein verbindungskabel (TI 82 STATS) bekomme bitte melden.

    Im moment hab ich eins aus der “vor-usb-zeit”, aber am pc keinen anschluss dazu :/

  11. @micromen: das was er als -> dargestellt hat musst du als 2nd + Y
    Machen

    HILFE ich habe folgendes problem der sagt mir immer “ERROR missing )”
    Ich habe jetzt schon 10 mal durchgeguckt aber es fehlt halt keine klammer woran könnte das liegen?

  12. Dies ist Ti Basic.Die funktioniert auf nem voyage 200 nicht (der benutzt nähmlich “c” als grund programmiersprache

  13. Vielleicht musst du bei “input” das “Ergebniss:” wegmachen
    hilft bei TI 82 stats

    und nur so als tipp nehmt statt lbl und goto
    am anfang “while (1)” und am Ende End
    while is ne unendlichschleife

    aber sonst tolles pogramm hat die mathe und Physikstunden spaßiger gemacht