TI-Basic: Programme und Tutorials: a chat

Erstellt von: Kai Burghardt
Schwierigkeitsgrad: Fortgeschritten
Modell: TI-82, ungetestet

in Bearbeitung, Zwischenergebnisse aber lieber sicherheithalber schon mal einbringen

PROGRAM:ACHAT
: ClrHome
: FullScreen
: 1 -> X : 1 -> S
: 1 -> Y : 1 -> T
: 1 -> Z : 0 -> U
: 0 -> ₀ : 0 -> V
: {8,16 -> dim [C]
: 
: prgmJCHTNMSG
: 
: 
: 

Teilprogramme

Bearbeiten
PROGRAM:WMTX          // write matrix
: Repeat M /= 0       // Solange nichts gedrückt wurde
: getKey -> M         // M aktualisieren
: End                 
: L6 (M-10 -> [C](T,S // nehme Wert aus Listenelement M-10
                      // und speichere in die Matrix C
PROGRAM:JCHTNMSG
: 0 -> M              // M als getKey-var initialisieren
: 1 -> S              // aktuelles Matrixschreibecursorpaar
: 1 -> T              //
: Fill(0,[C]
: While M /= 105
: prgmWMTX
: [C](T,S -> Z          // lese soeben geschriebenes Zeichen aus
: prgmINSMWCPS
: If T=2
: prgmFSM1TLRO
: 1 -> T
: prgmRPRTLETH          // soeben geschriebenes Zeichen drucken
: prgmINHCURPS
: End
: prgmFSM1TLRO
PROGRAM:INHCURPS
: IS>(X,16            // inc var X & sto res; if X > 16 then skip next cmd
: Return              // solange X =< 16 bleibt, wird Return angesprochen
: 1 -> X
: IS>(Y,8
: Return
: X -> Y              // Wofür haben wir denn den Speicher.
PROGRAM:INSMWCPS
: dim [C] -> L1
: IS>(S,L1(2
: Return
: 1 -> S
: IS>(T,L1(1
: Return
: S -> T
PROGRAM:FSM1TLRO     // swap matrix: first to last row
: dim [C] -> L1      // wanna get row count
: L1(1 -> A          
: While A /= 1       // No lp ->    0      1      2      3 
: rowSwap([C],L1(    // row    1 [ 42 ] [ 42 ] [ 42 ] [ 88 ]
1),A-1 -> [C]        //        2 [ 88 ] [ 88 ] [ 23 ] [ 23 ]
: DS<(A,1            //        3 [ 23 ] [  0 ] [  0 ] [  0 ]
: End                //        4 [  0 ] [ 23 ] [ 88 ] [ 42 ]
PROGRAM:RPRTLETH
: If Z = 32
: Output(Y,X,"        //ein Leerzeichen hinter "
: If Z = 33
: Output(Y,X,"!       //nicht verwirren lassen,dass Tag nicht 
: If Z = 34           //geschlossen, wird nämlich nicht angestrichen
: Output(Y,X,""")     //sodass mensch hiermit paar Bytes sparen kann

: If Z = 40           //Insgesamt Eingabevariablen X,Y für Print-
: Output(Y,X,"(       //Ort und Z für Zeichen
: If Z = 41
: Output(Y,X,")
: If Z = 42
: Output(Y,X,"*
: If Z = 43
: Output(Y,X,"+
: If Z = 44
: Output(Y,X,",
: If Z = 45
: Output(Y,X,"-
: If Z = 46
: Output(Y,X,".
: If Z = 47
: Output(Y,X,"/
: If Z = 48
: Output(Y,X,"0
: If Z = 49
: Output(Y,X,"1
: If Z = 50
: Output(Y,X,"2
: If Z = 51
: Output(Y,X,"3
: If Z = 52
: Output(Y,X,"4
: If Z = 53
: Output(Y,X,"5
: If Z = 54
: Output(Y,X,"6
: If Z = 55
: Output(Y,X,"7
: If Z = 56
: Output(Y,X,"8
: If Z = 57
: Output(Y,X,"9
: If Z = 58
: Output(Y,X,":
: If Z = 60
: Output(Y,X,"<
: If Z = 61
: Output(Y,X,"=
: If Z = 62
: Output(Y,X,">
: If Z = 63
: Output(Y,X,"?
: If Z = 65
: Output(Y,X,"A
: If Z = 66
: Output(Y,X,"B
: If Z = 67
: Output(Y,X,"C
: If Z = 68
: Output(Y,X,"D
: If Z = 69
: Output(Y,X,"E
: If Z = 70
: Output(Y,X,"F
: If Z = 71
: Output(Y,X,"G
: If Z = 72
: Output(Y,X,"H
: If Z = 73
: Output(Y,X,"I
: If Z = 74
: Output(Y,X,"J
: If Z = 75
: Output(Y,X,"K
: If Z = 76
: Output(Y,X,"L
: If Z = 77
: Output(Y,X,"M
: If Z = 78
: Output(Y,X,"N
: If Z = 79
: Output(Y,X,"O
: If Z = 80
: Output(Y,X,"P
: If Z = 81
: Output(Y,X,"Q
: If Z = 82
: Output(Y,X,"R
: If Z = 83
: Output(Y,X,"S
: If Z = 84
: Output(Y,X,"T
: If Z = 85
: Output(Y,X,"U
: If Z = 86
: Output(Y,X,"V
: If Z = 87
: Output(Y,X,"W
: If Z = 88
: Output(Y,X,"X
: If Z = 89
: Output(Y,X,"Y
: If Z = 90
: Output(Y,X,"Z
: If Z = 91
: Output(Y,X,"[
: If Z = 93
: Output(Y,X,"]
: If Z = 94
: Output(Y,X,"^
: If Z = 123
: Output(Y,X,"{
: If Z = 125
: Output(Y,X,"}

815 Bytes

Liste6

L6={        0,   0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
       0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
       0,  88,  86,  76,  67,  87,   0,   0,   0,   0,
       0,  85,  73,  65,  69,  79,   0,   0,   0,   0,
       0,   0,   0,   0,  80,  90,   0,   0,   0,   0,
       0,  75,  73,  71,  70,  81,   0,  55,  56,  57,
      43,  83,  78,  82,  84,  68,   0,  52,  53,  54,
      44,  66,  77,  44,  46,  74,  58,  49,  50,  51,
       0,   0,  32,  89,   8,   3,   0,   0,   0,   0   }