1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
20 :
21 :
22 :
23 :
24 :
25 :
26 :
27 :
28 :
29 :
30 :
31 :
32 :
33 :
34 :
35 :
36 :
37 :
38 :
39 :
40 :
41 :
42 :
43 :
44 :
45 :
46 :
47 :
48 :
49 :
50 :
51 :
52 :
53 :
54 :
55 :
56 :
57 :
58 :
59 :
60 :
61 :
62 :
63 :
64 :
65 :
66 :
67 :
68 :
69 :
70 :
71 :
72 :
73 :
74 :
75 :
76 :
77 :
78 :
79 :
80 :
81 :
82 :
83 :
84 :
85 :
86 :
87 :
88 :
89 :
90 :
91 :
92 :
93 :
94 :
95 :
96 :
97 :
98 :
99 :
100 :
101 :
102 :
103 :
104 :
105 :
106 :
107 :
108 :
109 :
110 :
111 :
112 :
113 :
114 :
115 :
116 :
117 :
118 :
119 :
120 :
121 :
122 :
123 :
124 :
125 :
126 :
127 :
128 :
129 :
130 :
131 :
132 :
133 :
134 :
135 :
136 :
137 :
138 :
139 :
140 :
141 :
142 :
143 :
144 :
145 :
146 :
147 :
148 :
149 :
150 :
151 :
152 :
|
' #############################################################################
' #############################################################################
'
' Deutsch:
' =========
' Dieser Quellcode ist von Folke Rinneberg
' Webseite: http://www.Rinneberg.de/programming/gfa.htm
' E-Mail: Folke_R@gmx.de
'
' Du kannst diesen Quellcode frei nutzen, Veraendern und Erweitern.
' Es waehre nett, wenn du mir mitteilen wuerdest, wenn du diesen Quellcode
' benutzt/veraenderst oder erweiterst. Verbesserungen/Erweiterung wuerde
' ich vielleicht gerne uebernehmen, Nutzung wuerde ich vielleicht gerne an
' dieser Stelle verlinken.
'
' Die Softwarequalitaet ist vermutlich nicht besonders hoch, da ich noch
' jung und unerfahren war, als ich ihn schrieb. Eine UEberarbeitung ist
' nicht geplant.
'
'
' English:
' =========
' This source code was written by Folke Rinneberg
' Web Site: http://www.Rinneberg.de/programming/gfa.htm#english
' e-mail: Folke_R@gmx.de
'
' You are free to use, modify and extend this source code.
' It would be nice, if you contact me (e.g. by e-mail) when you
' use/modify or extend this source code. Perhaps I would
' put Improvements or extensions to this web site.
' Usage of this source code may be linked here.
'
' The quality of this source code may be quite low, because I was young and
' had few experiences with programming when I wrote this source code.
' I have no plans to improve this source code by myself.
'
' #############################################################################
' #############################################################################
'
'
' Deterministische Turing Mashinen (DTM)
'
@Main
Procedure Tm_get
Local I&,I2&,B&,H&,A$
Read B&,H&
Dim Tm$(B&-1,H&)
For I&=0 To H&
Read A$ !Zeilenmakierung "+Chr$(129)+"berlesen"
Exit if A$="END."
For I2&=0 To B&-1
Read A$
Tm$(I2&,I&)=A$
Next I2&
Next I&
Return
PROCEDURE Main
@Tm_get
Band$="#(((1u1)o0)o(1u(1o0)))#" !Zu testendes Wort
@Auswertung
Return
PROCEDURE Auswertung
Local Pos&,Z&
Pos&=2 !"auf dem ersten a"
Z&=0
Do
Befehl$=Tm$(@Spalte(Asc(Mid$(Band$,Pos&,1))),Z&)
' Druckereinstellungen
' OUT 0,27,83,1,27,ASC("+"),30
Print Band$,Befehl$'Mid$(Band$,Pos&,1)'Z&
' Druckereinstellungen
' OUT 0,27,83,1,27,ASC("+"),10
Print Space$(Pos&-1);"^"
'
If Left$(Befehl$,4)="K.O."
Print "kein wort!",Befehl$
End
Else if Befehl$="OK "
Print "treffer"
End
Else
Mid$(Band$,Pos&,1)=Left$(Befehl$,1)
If Mid$(Befehl$,2,1)="R"
Inc Pos&
If Pos&>Len(Band$)
Band$=Band$+"#"
Endif
Else if Mid$(Befehl$,2,1)="L"
If Pos&>1
Dec Pos&
Else
Band$="#"+Band$
Endif
Else
Print "unerlaubte Bandrichtung",Befehl$
End
Endif
Z&=Asc(Right$(Befehl$,1))-48+(Asc(Mid$(Befehl$,3,1))-48)*10
Endif
' ~INP(2)
Loop
Return
@Anfangseinstellungen
FUNCTION Spalte(A|)
If A|=Asc("#")
Return 1-1
Else if A|=Asc("(")
Return 2-1
Else if A|=Asc(")")
Return 3-1
Else if A|=Asc(""+Chr$(170)+"")
Return 4-1
Else if A|=Asc("0")
Return 5-1
Else if A|=Asc("1")
Return 6-1
Else if A|=Asc("u")
Return 7-1
Else if A|=Asc("o")
Return 8-1
Else if A|=Asc("e")
Return 9-1
Else
Print "fehler unbekannte Bandinschrift"
Print Band$,Pos&
End
Endif
Endfunc
'
'
Procedure Anfangseinstellungen
Deflist 3
Defwrd "a-z" !Alle Vareablen am Anfang Words
Print ""+Chr$(27)+"q"
Byte{Basepage+82893}=1 !Neue Namen einschalten
Graphmode 1
Boundary 0
Return
' Spaltenanz,Zeilenanz
Data 9,7
' # ( ) "+Chr$(170)+" 0 1 u o e
Data "00","OK ","(R00",")L01",""+Chr$(170)+"R00","0R00","1R00","uR00","oR00","eR00"
Data "01"," ","(R02"," ",""+Chr$(170)+"L01","0L01","1L01","uL01","oL01","eL01"
Data "02"," "," ","eL05","eR03","0R02","1R02","uR02","oR02","eR02"
Data "03"," "," "," ","eR02","1R02","0R02"," "," ","eR03"
Data "04"," ","0R00"," "," ","eL04","eL04","eL04","eL05","eL04"
Data "05"," ","1R00"," "," ","eL04","eL05","eL05","eL06","eL05"
Data "06"," ","1R00"," "," ","eL05","eL05","eL05","eL06","eL06"
Data "END."
' diese TM wertet einen vollst"+Chr$(132)+"ndig geklammerten logischen Ausadruck aus!
' - kein zus"+Chr$(132)+"tzliches Band n"+Chr$(148)+"tig
' - L"+Chr$(148)+"sung steht dann am Ausgangspunkt des Bandes
|