Upload
ngokien
View
226
Download
1
Embed Size (px)
Citation preview
Appendix Language Model Programs
44
PART II.
INTERACTIVE FOREIGN LANGUAGE MODELS.
RUN Responsive Basic Program Models (See Lang Lab. Show #1). Open ASCII files as input into models. Data
files must be in correct layout format. RUN models from Chapter 4.
TRANSFER TELNET UNIX FILES. FTP. COPY OTHER FILES.
Select Internet Browser. Transfer (.html) files. SAVE AS.
Create New Output Files with Software. Create Database.
Database List. List data files with FORM LAYOUT. SAVE AS ASC data.
RUN Basic Programs. Choose data files on disk to create new files. Enter data to disk files with prompts,
dialogue boxes or applets (Ch04\create.wp). Create laboratory disk word files lists on subdirectories or
folders (Part I). Some programs require previous programs to provide old files.
RUN Java Applet Programs with a Navigator. Transfer programs on DOS files. Review program code in
(.html)documents. Compile with Javac. RUN Java applet tags on any computer with a Navigator or Explorer.
CONVERT LANGUAGE DATABASE TO DATA FILES FORMODELS.
Choose Input Files for Program Models (Ch04\tutorial.wp and APPENDIX\I, Tutor Disk list #1).
List ASCII Data Files. List data on each file. List files on paper. Detect errors.
REVIEW MODEL DATA INPUT FILES. Select DOS or WINDOWS.
DOS Software Data File. Review data input files for model programs to verify data entered. Review all data
item fields. Records are not separated in DOS TYPE or file data dump. Reviewing may be difficult.
Basic Programs. Software to create files does not specify formats required for models. Define each data item
required for models. RUN programs to list data input files to models (APPENDIX\II, Prog. #13 a, b, c, d,
e). RUN each program. List complete data files. Programs models must RUN to End Of File to list files.
Review new files. Fully analyze data files.
VISUAL BASIC EDIT PROGRAM. Review dates on directories.
COPY Files. COPY internet files as TABLES.
Old File. Display data previous entered in simple programs. Place data one line down on screens with chr(13).
Screen Display Box. Prevent screen from scrolling. Use dialogue box commands.
Other FTP Files. Locate data files on disk directories. Easily retrieve and open files. Openfiles as input.
Create New Files. Edit data in a second program. Build larger laboratory test data files. Add or append records
to these files. Concatenate files.
Print Output as a File. Send data files to Word Processors. Direct screen display output to printers.
RUN Basic Programs to List Data. Use msgbox to specify the fields on screens to list data fields.
Review Data. Scroll debug.print on Screens. Interrupt editing programs. Scroll data in debug.print screens. Data
appears stationary on screens. Review data on disk files. Select Restart to RERUN programs.
QUICK LABORATORY MODELS.
Copy Program Code. Use Part I or Part II (.html) WORKBOOK documents. Convert to DOS text. Computer
program instructions are already tested and checked. Use as a new program.
COPY Gwbasic programs. Load by line code number.
COPY Qbasic programs. PASTE. Modify program code. Insert additional program instructions. Verify only
new program logic.
SAVE Program Code. Select FILE and SAVE AS Basic programs. PASTE.
Appendix Language Model Programs
45
Document for Student. Documents are in APPENDIX\II. Review Lang. Lab Show #2. Create simple files with
programs and software in APPENDIX\II\partI.wp. Create additional files with Excel Spreadsheets, Clarisworks or
Alphaworks Databases. Obtain lists of verb infinitives from old files or UNIX. Sort Excel files and SAVE AS.
COPY Databases. Delete Database data fields. EXPORT.
STUDENT SLIDE SHOW
Lang. Lab. Show #2: Directory B:\SOFTWARE\OPERATIO.SHW
ALPHAWOR CHT 2,428 06-05-93 9:40p
DIF-ASC CHT 5,319 12-10-93 7:54a
KEYALPHA CHT 10,013 11-09-93 2:55p
BOX CHT 2,403 02-01-95 12:40p
BLOCKED CHT 3,729 05-23-96 9:35a
KEYMODEL CHT 8,357 06-08-96 12:38p
WORDPERC CHT 2,502 05-23-96 9:34a
CLARIS CHT 5,139 11-06-95 7:19a
CURSOR CHT 3,894 05-23-95 2:53p
NEWSPAGE CHT 10,281 12-10-93 6:23a
TI-WRITE CHT 12,139 01-03-94 12:53p
EXCEFILE CHT 7,169 06-08-96 12:39p
METAGRAP CHT 3,598 06-08-96 12:42p
GRAPHIC CHT 5,113 06-08-96 12:43p
INDEX1 CHT 3,981 06-08-96 12:44p
LABMODEL CHT 3,129 06-08-96 12:45p
LANMODEL CHT 2,859 06-09-96 12:15p
SOFTUTOR CHT 1,044 06-09-96 12:16p
Code Dimension Statements to Store Words. Load word groups in memory to get instantaneous responses. Verify
results. Read entire lists into computer memory quickly compare. Compare each data item list in memory with any
word item in input prompts (See Program Matching Code Lines #6). Display as many instructions as desired on
screens. Easily clear screen clutter. Prompt for the next response.
SAVE Gwbasic Programs. SAVE in ASCII code for documents. SAVE commands are followed by "program
name" in double quotes, a comma and an A.
SAVE "COMPOUND",A
DOCUMENTATION.
Incorporate data files in Alphaworks, Wordperfect, Word or TI-Writer Word Processor
document files.
Lang. Lab. #8 Program Code Lines Part II Bar Chart
PRACTICE WITH A MODEL TO REFRESH LANGUAGE SKILLS.
Interactive Model. Develop interactive language models to open two or three data input files created. Enter
subprograms at the end of main programs. RUN programs models. No paper output is produced in interactive model
to rehearse languages.
DATA PROCESSED ON BASIC MODEL INPUT FILE.
Appendix Language Model Programs
46
Analyze Total Lines of Program Code. Program models process data lists. Analyze program code lines totals for
models to enter data in various segments (See Lang. Lab #3, Foreign Language Models). The total number of code
lines for each routine for the next seven programs appears in Lang. Lab. #8, Program Code Lines Part II Bar Chart.
Analyze the minimum lines of code required. Add as many new lines as desired to programs.
TOTAL PROGRAM LINES
N DESC LINE TOT
DATA ITEM CODE
8 COMPOUND
GERMAN 1510 151
POLISH 1800 180
FRENCH 2080 208
9 UPDA VERB 1400 140
10 CONJUGATE 290 29
11 VERB II 880 88
12 ENGL WORD 400 40
13 DATABASE
14 SENTENCE 4330 433
Total App Pr 1619
Foreign Language Models Program Code Lines #2
Estimate the numbers of code lines to compare words.
DATA ARRAY LIST MATCHES
c. DIMENSION MATCHES DIMENSION LINE NUMB
N DATA ARRAY MATCHES
c . DIMENSION DIMENSION
MATCH KEY 7 INF$(VE) 600
INPUT 7 PRONOUN$(I) 680
WORD 7 PRONOUNA$(OB) 870
11 MATCH = REC 220
14 ASC(SPCK$)= 1030
14 CASE$ 1180
14 INF$(VE) 1990
14 HOLDPREP$(SP) 2260
14 PRONOUN$(I) 2830
14 PRONOUN$(O) 3430
Lang. Lab. #9 Code Lines Matching Lists of Words in Basic
CREATE OTHER INPUT FILES FOR MODELS.
Translation File from Verb Input File. RUN programs to create tran files to index verbs on verb files. Choose
current verb input files to create tran output files (Prog. #10, Translate). The number of tran file verbs is the same as
the number of records in verb files. Add English meanings to verb index records.
Appendix Language Model Programs
47
Model. Verb files are relative files. Tran files are sequential files. Choose tran files to provide mnemonic infinitive
indexes in responsive model lessons. Display and word meaning lists.
TRANSLATE (Fig. 22). Convert to Visual Basic.
Print entry translations. Cross reference language verb files using tran files. ReRUN programs. Correct errors (See
Run Sequence for Language Model Program).
10. VERBTRAN
Type record
v1 As String * 14
v2 As String * 14
v3 As String * 14
v4 As String * 14
v5 As String * 14
v6 As String * 14
v7 As String * 14
v8 As String * 14
End Type
Sub verbtran()
Dim verbrecord As record
20 MsgBox "verbtran"
40 LANG$ = InputBox(Title:="enter language", prompt:=" ")
50 FILENAME$ = "c:\book\" + LANG$ + "\verbs"
60 Open FILENAME$ For Random As #2 Len = 122
70 FILENAME2$ = "c:\book\" + LANG$ + "\tran"
80 Open FILENAME2$ For Output As #3
Random File. Read the random file sequentially. Add a translation to each verb infinitive that has been entered.
100 J = J + 1
110 Get #2, J, verbrecord
120 If EOF(2) Then GoTo 350
130 MsgBox verbrecord.v1 & " " & verbrecord.v2 & " " & verbrecord.v3 & " " & verbrecord.v4 & " " &
verbrecord.v5 & " " & verbrecord.v6$ & " " & verbrecord.v7 & " " & verbrecord.v8
140 MsgBox J
160 ED$ = InputBox(prompt:="enter translation", Title:=verbrecord.v1)
170 If ED$ = "999" Then GoTo 350
Remove Space. Convert relative file infinitive data item. String segment comparisons eliminate trailing spaces from
field.
180 For I = 1 To 14
190 x1$ = Mid(verbrecord.v1, I, 1)
200 If Asc(x1$) = 32 Then GoTo 230
210 P1$ = P1$ + x1$
220 Next I
230 For I = 1 To 14
240 X8$ = Mid(verbrecord.v8, I, 1)
250 If Asc(X8$) = 32 Then GoTo 280
260 P8$ = P8$ + X8$
270 Next I
Appendix Language Model Programs
48
10. VERBTRAN
280 LENP8 = Len(P8$)
290 Write #3, J; P1$; P8$; ED$
300 P1$ = ""
310 P8$ = ""
320 GoTo 100
340 MsgBox "cnt " & J
Record Count. Use screen dialogue. Print the total number of records created.
350 Close #2
360 Close #3
370 End
End Sub
RUN one of the two models to create phrases.
11. COMPOUND Tense. Visual Basic.
The second sentence Language Model uses two verb modal and verb files and infinitives on a tranfile. Use
compound verb forms for moods or tenses (German) phrases.
Type record
v1 As String * 14
v2 As String * 14
v3 As String * 14
v4 As String * 14
v5 As String * 14
v6 As String * 14
v7 As String * 14
v8 As String * 14
End Type
Dim verbrecord As record
Sub compound()
10 HEVERB$(1) = "durfen"
20 HEVERB$(2) = "konnen"
30 HEVERB$(3) = "mogen"
40 HEVERB$(4) = "mussen"
50 HEVERB$(5) = "sollen"
60 HEVERB$(6) = "wollen"
The German helping verbs
70 Dim INF$(80), PAST$(80), ENG$(80)
110 LANG$ = InputBox(Prompt:="enter language;", Title:="compound ")
Choose the Language Directory. Select program code.
Print Program Name.
120 MsgBox Prompt:="pronouns" & " " & "a:\language\"
COMPOUND
Print Directory for the Program Code.
130 FILENAME$ = "c:\language\" + LANG$ + "\pro" + ".csv"
Pronouns. Read the model input pronoun file.
140 Open FILENAME$ For Input As #1
Appendix Language Model Programs
49
150 For NUMB = 1 To 2
160 For per = 1 To 5
170 If EOF(1) Then GoTo 430
180 Input #1, n, per$, sgpl$, pr$, case1$
190 MsgBox n & " " & " " & per$ & " " & sgpl$ & " " & case1$ & " " & pr$
200 NOM = NOM + 1
210 pronoun$(NOM) = pr$
220 Next per
230 Next NUMB
240 For NUMB = 1 To 2
250 For per = 1 To 5
260 If EOF(1) Then GoTo 430
270 Input #1, n, per$, sgpl$, pr$, case1$
280 MsgBox n & " " & per$ & " " & sgpl$ & " " & case1$ & " " & pr$
290 acc = acc + 1
300 pronoun$(acc) = pr$
310 Next per
320 Next NUMB
330 Imsgbox "a"
340 For NUMB = 1 To 2
350 For per = 1 To 5
360 If EOF(1) Then GoTo 430
370 Input #1, n, per$, sgpl$, pr$, case1$
380 Print n, per$, sgpl$, case1$, pr$
390 gen = gen + 1
400 pronoung$(gen) = pr$
410 Next per
420 Next NUMB
430 Print "verbs"
440 FILENAME2$ = "c:\language\" + LANG$ + "\tran" + ".csv"
Infinitives. Read infinitive tran input file.
450 FILENAME3$ = "c:\basic\" + LANG$ + "\modal" + ".csv"
Helping Verb File. Read helping verb input file.
460 Open FILENAME2$ For Input As #2
470 If EOF(2) Then GoTo 590
480 Input #2, nn, INF$, PAST$, ENG$
490 MsgBox nn & " " & INF$ & " " & PAST$ & " " & ENG$
500 pge = pge + 1
510 If pge < 20 Then GoTo 540
520 MsgBox "next page"
530 pge = 0
540 VERBNUMB = VERBNUMB + 1
550 INF$(VERBNUMB) = INF$
COMPOUND560 PAST$(VERBNUMB) = PAST$
570 ENG$(VERBNUMB) = ENG$
580 GoTo 470
590 Close #2
600 Close #1
610 Open FILENAME3$ For Random As #3 Len = 122
620 SUBJ$ = InputBox("enter subject:")
630 VERBFORM$ = InputBox("enter helping verb")
640 If VERBFORM$ = "end" Then GoTo 1150
650 For AUX = 1 To 6
Appendix Language Model Programs
50
660 If VERBFORM$ = HEVERB$(AUX) Then GoTo 700
670 Next AUX
680 Print "miss helping"
690 GoTo 630
700 PARTICIP$ = InputBox("enter verb:")
710 If PARTICIP$ = "end" Then GoTo 1150
720 For VE = 1 To 80
730 If INF$(VE) = PARTICIP$ Then GoTo 780
740 Next VE
750 Print "miss:"
760 MISS = MISS + 1
770 GoTo 630
780 MsgBox ENG$(VE) & " " & INF$(VE)
800 OBJ$ = InputBox(Prompt:="pronoun object:")
810 For I = 1 To 10
820 If SUBJ$ = pronoun$(I) Then GoTo 860
830 Next I
840 MsgBox "pronoun miss:"
850 GoTo 620
860 MsgBox SUBJ$
Sentence Subject. Print the subject
870 I = I + 1
880 Get #3, AUX, verbrecord
890 If EOF(3) Then GoTo 1170
910 Verb$(1) = VERB1$
920 Verb$(2) = VERB2$
930 Verb$(3) = VERB3$
940 Verb$(4) = VERB4$
950 Verb$(5) = VERB5$
960 Verb$(6) = VERB6$
970 Verb$(7) = VERB7$
980 Verb$(8) = VERB8$
verbrecord.v1 = v1$
verbrecord.v2 = v2$
verbrecord.v3 = v3$
verbrecord.v4 = v4$
verbrecord.v5 = v5$
COMPOUND
verbrecord.v6 = v6$
verbrecord.v7 = v7$
verbrecord.v8 = v8$
990 MsgBox Verb$(I) & " " & PARTICIP$
Verb. Print the verb and participle
1010 For OB = 1 To 10
1020 If OBJ$ = pronouna$(OB) Then GoTo 1110
1030 Next OB
1040 For OB = 1 To 10
1050 MsgBox pronouna$(OB) & " "
1060 Next OB
1080 MsgBox "miss obj"
Appendix Language Model Programs
51
1090 OBJ$ = InputBox(Prompt:="object:")
1100 GoTo 1010
1110 MsgBox OBJ$
Print Objects. Participles can be printed after the object.
1120 Rem print verb$(i);" ";particip$;" ";
1130 HIT = HIT + 1
1140 GoTo 630
1150 Close #3
1160 MsgBox "hits:" & " " & HIT
1170 MsgBox "miss " & " " & MISS
1180 End
12. PASTTENSE (Fig 7,14). Visual Basic.
The first major model program is the Sentence program. Read all language input files created.
verbs
pro
tran
preposit
Compare word group relationships. Choose verb infinitive as a major index. Use graphics and view file windows in
program code.
PASTTENSE
Type record
v1 As String * 14
v2 As String * 14
v3 As String * 14
v4 As String * 14
v5 As String * 14
v6 As String * 14
v7 As String * 14
v8 As String * 14
End Type
Dim verbrecord As record
Sub language()
10 Dim pronoun$(80)
20 Dim HOLDNO(90)
30 Dim verb$(8)
40 Dim PRONCASE$(60)
45 Dim np(5), per1p$(5), sgplp$(5), case1p$(5), prp$(5)
46 Dim nnp(20), inf1p$(20), past1p$(5), englp$(20)
47 Dim casep$(80), prepp$(80), mean1p$(80)
50 msg$ = "c:\language\pasttense with .csv and lab\verbs"
response = MsgBox(msg$)
60 Dim CASENO(8)
70 SPACE20$ = Space$(20)
Appendix Language Model Programs
52
80 SPACE30$ = Space$(30)
PASTTENSE
100 Dim inf$(80), past$(80), eng$(80)
110 Dim HOLDPREP$(90)
120 Dim HOLDCASE$(90), HOLDMEAN$(90)
160 lang$ = InputBox(prompt:="Language", Title:="Sentence")
170 If VERBFORM$ = "more" Then GoTo 3680
180 If VERBFORM$ = "view" Then GoTo 3680
190 msg$ = "pronouns"
200 filename$ = "c:\language\" + lang$ + "\pro.csv"
MsgBox (lang$ & " " & filename$)
250 Open filename$ For Input As #1
260 For NUMB = 1 To 2
270 For per = 1 To 5
280 If EOF(1) Then GoTo 820
290 Input #1, n, per1$, sgpl$, PR$, case1$
310 NOM = NOM + 1
320 pronoun$(NOM) = PR$
330 Rem PRONCASE$(NOM)=CASE$
340 PRONC$ = Mid$(case1$, 1, 3)
350 PRONCASE$(NOM) = PRONC$
np(per) = n
per1p$(per) = per1$
sgplp$(per) = sgpl$
case1p$(per) = case1$
prp$(per) = PR$
360 Next per
371 MsgBox (np(1) & " " & per1p$(1) & " " & sgplp$(1) & " " & case1p$(1) & " " & prp$(1)) & Chr(13) & (np(2)
& " " & per1p$(2) & " " & sgplp$(2) & " " & case1p$(2) & " " & prp$(2)) & Chr(13) & (np(3) & " " & per1p$(3) &
" " & sgplp$(3) & " " & case1p$(3) & " " & prp$(3)) & Chr(13) & (np(4) & " " & per1p$(4) & " " & sgplp$(4) & "
" & case1p$(4) & " " & prp$(4)) & Chr(13) & (np(5) & " " & per1p$(5) & " " & sgplp$(5) & " " & case1p$(5) & " "
& prp$(5)), Title:="Subject pronouns"
370 Next NUMB
380 ACC = NOM
390 For NUMB = 1 To 2
400 For per = 1 To 5
410 If EOF(1) Then GoTo 590
420 Input #1, n, per1$, sgpl$, PR$, case1$
np(per) = n
per1p$(per) = per1$
sgplp$(per) = sgpl$
case1p$(per) = case1$
prp$(per) = PR$
440 ACC = ACC + 1
450 pronoun$(ACC) = PR$
460 Rem PRONCASE$(ACC)=CASE$
470 PRONC$ = Mid$(case1$, 1, 3)
PASTTENSE
480 PRONCASE$(ACC) = PRONC$
Appendix Language Model Programs
53
490 Next per
491 MsgBox (np(1) & " " & per1p$(1) & " " & sgplp$(1) & " " & case1p$(1) & " " & prp$(1)) & Chr(13) & (np(2)
& " " & per1p$(2) & " " & sgplp$(2) & " " & case1p$(2) & " " & prp$(2)) & Chr(13) & (np(3) & " " & per1p$(3) &
" " & sgplp$(3) & " " & case1p$(3) & " " & prp$(3)) & Chr(13) & (np(4) & " " & per1p$(4) & " " & sgplp$(4) & "
" & case1p$(4) & " " & prp$(4)) & Chr(13) & (np(5) & " " & per1p$(5) & " " & sgplp$(5) & " " & case1p$(5) & " "
& prp$(5)), Title:="Pronouns " & case1p$(5)
500 Next NUMB
510 GEN = ACC
540 For NUMB = 1 To 2
550 For per = 1 To 5
560 If EOF(1) Then GoTo 590
570 Input #1, n, per1$, sgpl$, PR$, case1$
np(per) = n
per1p$(per) = per1$
sgplp$(per) = sgpl$
case1p$(per) = case1$
prp$(per) = PR$
590 GEN = GEN + 1
600 pronoun$(GEN) = PR$
610 Rem PRONCASE$(GEN)=CASE$
620 PRONC$ = Mid$(case1$, 1, 3)
630 PRONCASE$(GEN) = PRONC$
640 Next per
MsgBox (np(1) & " " & per1p$(1) & " " & sgplp$(1) & " " & case1p$(1) & " " & prp$(1)) & Chr(13) & (np(2) & "
" & per1p$(2) & " " & sgplp$(2) & " " & case1p$(2) & " " & prp$(2)) & Chr(13) & (np(3) & " " & per1p$(3) & " "
& sgplp$(3) & " " & case1p$(3) & " " & prp$(3)) & Chr(13) & (np(4) & " " & per1p$(4) & " " & sgplp$(4) & " " &
case1p$(4) & " " & prp$(4)) & Chr(13) & (np(5) & " " & per1p$(5) & " " & sgplp$(5) & " " & case1p$(5) &
prp$(5)), Title:="Pronouns " & case1p$(5)
650 Next NUMB
660 REST = GEN
670 For ALLCASE = 1 To 3
680 For NUMB = 1 To 2
690 For per = 1 To 5
700 If EOF(1) Then GoTo 820
710 Input #1, n, per1$, sgpl$, PR$, case1$
730 REST = REST + 1
740 pronoun$(REST) = PR$
750 Rem PRONCASE$(REST)=CASE$
np(per) = n
per1p$(per) = per1$
sgplp$(per) = sgpl$
PASTTENSE
case1p$(per) = case1$
prp$(per) = PR$
760 PRONC$ = Mid$(case1$, 1, 3)
770 PRONCASE$(REST) = PRONC$
780 Next per
MsgBox (np(1) & " " & per1p$(1) & " " & sgplp$(1) & " " & case1p$(1) & " " & prp$(1)) & Chr(13) & (np(2) & "
" & per1p$(2) & " " & sgplp$(2) & " " & case1p$(2) & " " & prp$(2)) & Chr(13) & (np(3) & " " & per1p$(3) & " "
& sgplp$(3) & " " & case1p$(3) & " " & prp$(3)) & Chr(13) & (np(4) & " " & per1p$(4) & " " & sgplp$(4) & " " &
case1p$(4) & " " & prp$(4)) & Chr(13) & (np(5) & " " & per1p$(5) & " " & sgplp$(5) & " " & case1p$(5) & " " &
prp$(5)), Title:="pronouns " & case1p$(5)
790 Next NUMB
Appendix Language Model Programs
54
800 Next ALLCASE
820 GoTo 840
830 GoTo 700
840 Close #1
850 MsgBox Title:="Open verb file?", prompt:="Open"
860 PAG$ = InputBox(prompt:="page", Title:="end pronouns")
880 FILENAME2$ = "c:\language\" + lang$ + "\trans.csv"
890 FILENAME3$ = "c:\basic\lab\" + lang$ + "\verbsr"
900 FILENAME5$ = "c:\language\" + lang$ + "\preposit.csv"
910 Open FILENAME2$ For Input As #2
920 If EOF(2) Then GoTo 1105
930 Input #2, NN, inf1$, past1$, eng1$
950 pge = pge + 1
960 If pge < 16 Then GoTo 1000
970 MsgBox inf$(verbnumb - 15) & Chr(13) & inf$(verbnumb - 14) & Chr(13) & inf$(verbnumb - 13) & Chr(13) &
inf$(verbnumb - 12) & Chr(13) & inf$(verbnumb - 11) & Chr(13) & inf$(verbnumb - 10) & Chr(13) &
inf$(verbnumb - 9) & Chr(13) & inf$(verbnumb - 8) & Chr(13) & inf$(verbnumb - 7) & Chr(13) & inf$(verbnumb -
6) & Chr(13) & inf$(verbnumb - 5) & Chr(13) & inf$(verbnumb - 4) & Chr(13) & inf$(verbnumb - 3) & Chr(13) &
inf$(verbnumb - 2) & Chr(13) & inf$(verbnumb - 1) & Chr(13) & inf$(verbnumb)
980 MsgBox eng$(verbnumb - 15) & Chr(13) & eng$(verbnumb - 14) & Chr(13) & eng$(verbnumb - 13) & Chr(13)
& eng$(verbnumb - 12) & Chr(13) & eng$(verbnumb - 11) & Chr(13) & eng$(verbnumb - 10) & Chr(13) &
eng$(verbnumb - 9) & Chr(13) & eng$(verbnumb - 8) & Chr(13) & eng$(verbnumb - 7) & Chr(13) &
eng$(verbnumb - 6) & Chr(13) & eng$(verbnumb - 5) & Chr(13) & eng$(verbnumb - 4) & Chr(13) &
eng$(verbnumb - 3) & Chr(13) & eng$(verbnumb - 2) & Chr(13) & eng$(verbnumb - 1) & Chr(13) &
eng$(verbnumb)
990 pge = 0
1000 verbnumb = verbnumb + 1
PASTTENSE
1010 For II = 1 To 14
1020 SPCK$ = Mid$(inf1$, II, 1)
1040 Next II
1050 LENINF = II - 1
1060 KEYMATCH$ = Mid$(inf1$, 1, LENINF)
1070 inf$(verbnumb) = KEYMATCH$
1080 past$(verbnumb) = past1$
1090 eng$(verbnumb) = eng1$
1100 GoTo 920
1105 MsgBox inf$(verbnumb - 15) & Chr(13) & inf$(verbnumb - 14) & Chr(13) & inf$(verbnumb - 13) & Chr(13)
& inf$(verbnumb - 12) & Chr(13) & inf$(verbnumb - 11) & Chr(13) & inf$(verbnumb - 10) & Chr(13) &
inf$(verbnumb - 9) & Chr(13) & inf$(verbnumb - 8) & Chr(13) & inf$(verbnumb - 7) & Chr(13) & inf$(verbnumb -
6) & Chr(13) & inf$(verbnumb - 5) & Chr(13) & inf$(verbnumb - 4) & Chr(13) & inf$(verbnumb - 3) & Chr(13) &
inf$(verbnumb - 2) & Chr(13) & inf$(verbnumb - 1) & Chr(13) & inf$(verbnumb)
1110 Close #2
1120 Open FILENAME5$ For Input As #5
1140 If EOF(5) Then GoTo 1455
1150 Input #5, case1$, prep$, MEAN$
1170 prep1 = prep1 + 1
1180 If case1$ = CASEHOLD$ Then GoTo 1320
1190 CASEDETERMINE = CASEDETERMINE + 1
1200 On CASEDETERMINE GoTo 1210, 1230, 1250, 1270, 1290, 1460
Appendix Language Model Programs
55
1210 CASENO(CASEDETERMINE) = prep1
1220 GoTo 1310
1230 CASENO(CASEDETERNINE) = prep1
1240 GoTo 1310
1250 CASENO(CASEDETERMINE) = prep1
1260 GoTo 1310
1270 CASENO(CASEDETERMINE) = prep1
1280 GoTo 1310
1290 CASENO(CASEDETERMINE) = prep1
1300 GoTo 1310
1310 CASEHOLD$ = case1$
1320 HOLDPREP$(prep1) = prep$
1330 HOLDNO(prep1) = CASEDETERMINE
1360 HOLDCASE$(prep1) = case1$
1370 HOLDMEAN$(prep1) = MEAN$
1380 pge = pge + 1
casep$(pge) = case1$
prepp$(pge) = prep$
mean1p$(pge) = mean1$
1390 If pge < 16 Then GoTo 1450
1400 pge = 0
PASTTENSE
MsgBox (casep$(1) & " " & prepp$(1) & " " & mean1p$(1) & Chr(13) & casep$(2) & " " & prepp$(2) & " " &
mean1p$(2) & Chr(13) & casep$(3) & " " & prepp$(3) & " " & mean1p$(3) & Chr(13) & casep$(4) & " " &
prepp$(4) & " " & mean1p$(4) & Chr(13) & casep$(4) & " " & prepp$(4) & " " & mean1p$(5) & Chr(13) &
casep$(6) & " " & prepp$(6) & " " & mean1p$(6) & Chr(13) & casep$(7) & " " & prepp$(7) & " " & mean1p$(7) &
Chr(13) & casep$(8) & " " & prepp$(8) & " " & mean1p$(8) & Chr(13) & casep$(9) & " " & prepp$(9) & " " &
mean1p$(9) & Chr(13) & casep$(10) & " " & prepp$(10) & " " & mean1p$(10) & Chr(13) & casep$(11) & " " &
prepp$(11) & " " & mean1p$(11) & Chr(13) & casep$(12) & " " & prepp$(12) & " " & mean1p$(12) & Chr(13) &
casep$(13) & " " & prepp$(13) & " " & mean1p$(13) & Chr(13) & casep$(14) & " " & prepp$(14) & " " &
mean1p$(14) & Chr(13) & casep$(15) & " " & prepp$(15) & " " & mean1p$(15) & Chr(13) & casep(16) & " " &
prepp$(16) & " " & mean1p$(16))
For Clear = 1 To 16
casep$(Clear) = " "
prepp$(Clear) = " "
mean1p$(Clear) = " "
Next Clear
1450 GoTo 1140
1455 MsgBox (casep$(1) & " " & prepp$(1) & " " & mean1p$(1) & Chr(13) & casep$(2) & " " & prepp$(2) & " "
& mean1p$(2) & Chr(13) & casep$(3) & " " & prepp$(3) & " " & mean1p$(3) & Chr(13) & casep$(4) & " " &
prepp$(4) & " " & mean1p$(4) & Chr(13) & casep$(4) & " " & prepp$(4) & " " & mean1p$(5) & Chr(13) &
casep$(6) & " " & prepp$(6) & " " & mean1p$(6) & Chr(13) & casep$(7) & " " & prepp$(7) & " " & mean1p$(7) &
Chr(13) & casep$(8) & " " & prepp$(8) & " " & mean1p$(8) & Chr(13) & casep$(9) & " " & prepp$(9) & " " &
mean1p$(9) & Chr(13) & casep$(10) & " " & prepp$(10) & " " & mean1p$(10) & Chr(13) & casep$(11) & " " &
prepp$(11) & " " & mean1p$(11) & Chr(13) & casep$(12) & " " & prepp$(12) & " " & mean1p$(12) & Chr(13) &
casep$(13) & " " & prepp$(13) & " " & mean1p$(13) & Chr(13) & casep$(14) & " " & prepp$(14) & " " &
mean1p$(14) & Chr(13) & casep$(15) & " " & prepp$(15) & " " & mean1p$(15) & Chr(13) & casep(16) & " " &
prepp$(16) & " " & mean1p$(16))
1460 CASEDETERMINE = CASEDETERMINE + 1
1480 CASENO(CASEDETERMINE) = prep1
Appendix Language Model Programs
56
1490 Close #5
1510 Open FILENAME3$ For Random As #3 Len = 122
Relative File. Open verbs relative files to search.
1530 X = 1
1540 Y = 7
1570 MsgBox LAN$ & " " & FILENAME3$
1600 SENTENCECASE$ = ""
PASTTENSE
1610 Color = 13
1620 X = 15
1630 Y = 10
1710 subj$ = InputBox(prompt:="Enter subject:", Title:=" Exercise")
1720 For s = 1 To 10
1730 If subj$ = pronoun$(s) Then GoTo 1800
1740 Next s
1780 MsgBox "test"
1790 GoTo 1610
1800 X = 16
1810 If s = 10 Then GoTo 1925
1820 Y = 10
1830 If s = 1 Then GoTo 1920
1840 If s = 2 Then GoTo 1921
1850 If s = 3 Then GoTo 1922
1860 If s = 4 Then GoTo 1922
1870 If s = 5 Then GoTo 1922
1880 If s = 6 Then GoTo 1923
1890 If s = 7 Then GoTo 1924
1900 If s = 8 Then GoTo 1925
1910 If s = 9 Then GoTo 1925
1920 per = 1
GoTo 1950
1921 per = 2
GoTo 1950
1922 per = 3
GoTo 1950
1923 per = 4
GoTo 1950
1924 per = 5
GoTo 1950
1925 per = 6
1950 VERBFORM$ = InputBox(prompt:="enter verb")
1960 If VERBFORM$ = "end" Then GoTo 3580
1970 If VERBFORM$ = "view" Then GoTo 3620
1980 For VE = 1 To 80
Count. Compare up to eighty verb file records.
1990 If inf$(VE) = VERBFORM$ Then GoTo 2090
2000 Next VE
2060 MsgBox "miss: " & VERBFORM$
2070 MISS = MISS + 1
2080 GoTo 1800
2090 X = 7 + SENTENCE2
2100 Y = 1
Appendix Language Model Programs
57
2140 MsgBox eng$(VE), Title:="Eng"
2150 X = 9
2160 Y = 1
PASTTENSE
2170 GoTo 2210
2180 X = 11
2190 Y = 1
2210 sentencepreposition$ = InputBox(prompt:="enter preposition:")
2220 If Len(sentencepreposition$) = 0 Then GoTo 2700
Preposition. Enter preposition to compare with lists. Zero length indicates direct object instead of preposition
object.
2230 If sentencepreposition$ = "inf" Then GoTo 2620
2240 If sentencepreposition$ = "view" Then GoTo 4100
2250 For SP = 1 To prep1
2260 If sentencepreposition$ = HOLDPREP$(SP) Then GoTo 2280
2270 GoTo 2330
2280 PREPCNT = PREPCNT + 1
2290 X = 10
2300 Y = 6 + PREPCNT
2320 MsgBox HOLDCASE$(SP) & " " & HOLD & " " & HOLDMEAN$(SP) & " " & HOLDNO(SP)
2330 Next SP
2340 If PREPCNT > 0 Then GoTo 2410
2350 X = 3
2360 Y = 2
2380 MsgBox "miss preposition:" & sentencepreposition$
2390 MISSPREP = MISSPREP + 1
2400 GoTo 2180
2410 X = 17
2420 Y = 10
2440 If HOLDCASE$(SP) = "acc" Then GoTo 3020
2450 If lang$ = "french" Then GoTo 3020
2460 If lang$ = "english" Then GoTo 3020
2470 If lang$ = "spanish" Then GoTo 3020
2480 SENTENCECASE$ = InputBox(prompt:="enter case:")
Preposition. Some prepositions can take more than one case.
2490 GoTo 2930
2500 X = 18
2510 Y = 10
2550 obj$ = InputBox(prompt:="enter preposition obj: ")
2560 X = 18
2570 Y = 10
2610 GoTo 2780
2620 INFIN$ = InputBox(prompt = "enter infinitive")
2630 If INFIN$ = "view" Then GoTo 3620
2640 For v = 1 To 80
2650 If inf$(v) = INFIN$ Then GoTo 2681
2660 Next v
2670 MsgBox "miss infinitive"
2680 GoTo 3020
2681 sentencepreposition$ = "to " + eng$(v)
PASTTENSE
2682 GoTo 3020
Appendix Language Model Programs
58
2690 SENTENCECASE$ = "acc"
2700 obj$ = InputBox(prompt:="enter obj:")
2710 BEGIN = 11
2720 GoTo 2780
2740 obj$ = InputBox(prompt:="enter pos obj")
2750 BEGIN = 21
2780 SENTENCECASE$ = ""
2790 If obj$ = "view" Then GoTo 3840
2800 For I = BEGIN To BEGIN + 9
2810 If obj$ = pronoun$(I) Then GoTo 3120
2820 Next I
2830 X = 3
2840 Y = 10
2860 MsgBox "miss " & " " & obj$ & " try again"
2870 obj$ = InputBox(prompt:="enter pronoun objective ")
2880 GoTo 2790
2900 MsgBox "pronoun obj miss: " & obj$
2910 MISSOBJ = MISSOBJ + 1
2920 GoTo 1620
2930 If SENTENCECASE$ = PRONCASE$(1) Then GoTo 3000
2940 If SENTENCECASE$ = PRONCASE$(11) Then GoTo 3020
2950 If SENTENCECASE$ = PRONCASE$(21) Then GoTo 3040
2960 If SENTENCECASE$ = PRONCASE$(31) Then GoTo 3060
2970 If SENTENCECASE$ = PRONCASE$(41) Then GoTo 3080
2980 If SENTENCECASE$ = PRONCASE$(51) Then GoTo 3100
2990 GoTo 2500
3000 BEGIN = 1
3010 GoTo 2500
3020 BEGIN = 11
3030 GoTo 2500
3040 BEGIN = 21
3050 GoTo 2500
3060 BEGIN = 31
3070 GoTo 2500
3080 BEGIN = 41
3090 GoTo 2500
3100 BEGIN = 51
3110 GoTo 2500
3120 X = 20 + SENTENCE2
3130 Y = 3
3170 MsgBox subj$, Title:="exercise"
3180 X = 20 + SENTENCE2
3190 Y = 10
3210 per = per + 1
3220 s = per
3230 Get #3, VE, verbrecord
PASTTENSE
3240 If EOF(3) Then GoTo 3600
verb1$ = verbrecord.v1
verb2$ = verbrecord.v2
verb3$ = verbrecord.v3
verb4$ = verbrecord.v4
Appendix Language Model Programs
59
verb5$ = verbrecord.v5
verb6$ = verbrecord.v6
verb7$ = verbrecord.v7
verb8$ = verbrecord.v8
3250 verb$(1) = verb1$
3260 verb$(2) = verb2$
3270 verb$(3) = verb3$
3280 verb$(4) = verb4$
3290 verb$(5) = verb5$
3300 verb$(6) = verb6$
3310 verb$(7) = verb7$
3320 verb$(8) = verb8$
3330 MsgBox subj$ & " " & verb$(s) & " ", Title:="verb conjugated"
3350 If Len(sentencepreposition$) = 0 Then GoTo 3490
3360 Y = 18
3370 X = 20 + SENTENCE2
3390 MsgBox subj$ & " " & verb$(s) & " " & sentencepreposition$ & " " & Chr(13) & "2. " & subjsent$ & " " &
verbsent$ & " " & prepsent$ & " " & objsent$
3400 I = 1
3410 For OB = BEGIN To BEGIN + 10
3420 If obj$ = pronoun$(OB) Then GoTo 3490
3430 Next OB
3440 X = 3
3450 Y = 2
3470 MsgBox msg$ = "miss obj"
3480 GoTo 3840
3490 SENTENCE2 = SENTENCE2 + 1
3500 MsgBox subj$ & " " & verb$(s) & " " & sentencepreposition$ & " " & obj$
subjsent$ = subj$
verbsent$ = verb$(s)
prepsent$ = sentencepreposition$
objsent$ = obj$
3511 s = 0
3510 HIT = HIT + 1
3520 If SENTENCE2 > 1 Then GoTo 3550
3530 holdcnt = 0
3540 GoTo 1600
3550 SENTENCE2 = 0
3570 GoTo 1600
3580 Close #3
PASTTENSE
3590 MsgBox "hits: " & HIT
3600 MsgBox "miss " & MISS
3610 End
3620 Y = 25
3630 X = 5
3680 For v = 1 To 5
3690 holdcnt = holdcnt + 1
3700 X = 5 + v
3710 Y = 25
3740 Next v
3750 MsgBox holdcnt & " " & inf$(holdcnt) & " " & inf$(holdcnt - 4) & " " & inf$(holdcnt - 3) & " " &
inf$(holdcnt - 2) & " " & inf$(holdcnt - 1)
Appendix Language Model Programs
60
X = 11
3760 Y = 25
3780 If holdcnt >= verbnumb Then GoTo 3810
3790 YES$ = InputBox(prompt:=" enter ok ")
3800 If YES$ = "" Then GoTo 3680
3810 holdcnt = 0
3830 GoTo 1800
3840 X = 5
3850 Y = 25
3900 For v = 1 To 5
3910 holdcnt = holdcnt + 1
3920 X = 5 + v
3930 Y = 25
3960 Next v
3961 MsgBox PRONCASE$(holdcnt - 4) & " " & pronoun$(holdcnt - 4) & Chr(13) & PRONCASE$(holdcnt - 3) &
" " & pronoun$(holdcnt - 3) & Chr(13) & PRONCASE$(holdcnt - 2) & " " & pronoun$(holdcnt - 2) & Chr(13) &
PRONCASE$(holdcnt - 1) & " " & pronoun$(holdcnt - 1) & Chr(13) & PRONCASE$(holdcnt) & " " &
pronoun$(holdcnt), Title:="pronon case"
3970 X = 11
3980 Y = 25
4000 If holdcnt = 60 Then GoTo 4030
4010 NO$ = InputBox(prompt:=" enter ok ")
4020 If NO$ <> "ok" Then GoTo 3900
4030 holdcnt = 0
4050 X = 18
4060 Y = 10
4080 obj$ = InputBox(prompt:="pronoun object:")
4090 GoTo 2790
4100 Y = 25
4110 X = 5
4160 For v = 1 To 5
4170 holdcnt = holdcnt + 1
PASTTENSE
4180 X = 5 + v
4190 Y = 25
4200 Next v
4210 MsgBox HOLDCASE$(holdcnt - 4) & " " & HOLDPREP$(holdcnt - 4) & Chr(13) & HOLDCASE$(holdcnt -
3) & " " & HOLDPREP$(holdcnt - 3) & Chr(13) & HOLDCASE$(holdcnt - 2) & " " & HOLDPREP$(holdcnt - 2)
& Chr(13) & HOLDCASE$(holdcnt - 1) & " " & HOLDPREP$(holdcnt - 1) & Chr(13) & HOLDCASE$(holdcnt) &
" " & HOLDPREP$(holdcnt)
4230 X = 11
4240 Y = 25
4260 If holdcnt >= 90 Then GoTo 4290
4270 YES$ = InputBox(prompt:="enter ok:")
4280 If YES$ = "" Then GoTo 4100
4290 holdcnt = 0
4310 GoTo 2180
End Sub
Modify Models. Change programs as necessary. Copy new versions to disk for any language.
Appendix Language Model Programs
61
DOCUMENT PROGRAMS AND DATA.
Call Word Processors from hard drives. Create batch files. SAVE Word Processor batch files on floppy disk.
BASIC PROGRAMS CREATE INPUT FILES FOR MODELS.
Build verb files. Introduce students to verb conjugation programs. Foreign spelling may cause data entered to be in
error. Detect errors on files. Update files for models. All language system programs can be in Basic. Correct relative
verb files without software. Update with a mouse (in Gwbasic). Update verbs with accent marks.
13. UPDAVERB - BASIC. Converting to Visual Basic.
Type record
v1 As String * 14
v2 As String * 14
v3 As String * 14
v4 As String * 14
v5 As String * 14
v6 As String * 14
v7 As String * 14
v8 As String * 14
End Type
UPDAVERB
Sub update()
Dim verbrecord As record
5 Dim inf$(50), pronounsg$(10), pronounpl$(10), holdverb$(10), verb$(8)
20 MsgBox Title:="updaverb ", prompt:="Update verb file"
50 LANG$ = InputBox(Title:="file: ", prompt:="Enter language ")
70 FILENAME$ = "C:\book\" + LANG$ + "\pronouns"
80 Open FILENAME$ For Input As #1
Pronouns. Open pronoun files. Read into memory.
90 If EOF(1) Then GoTo 210
100 Input #1, N, PER$, SINGPL$, PRONOUN$
110 MsgBox Title:="Pronoun", prompt:=N & " " & PER$ & " " & SINGPL$ & " " & PRONOUN$
120 I = I + 1
130 If I > 10 Then GoTo 210
140 If I > 5 Then GoTo 170
150 pronounsg$(I) = PRONOUN$
160 GoTo 190
170 JIN = JIN + 1
180 pronounpl$(JIN) = PRONOUN$
190 GoTo 90
200 J = 1
210 Close #1
211 FILENAME3$ = "C:\book\" + LANG$ + "\tran"
212 Open FILENAME3$ For Input As #3
213 If EOF(3) Then GoTo 219
214 Input #3, nu, infin$, past$, eng$
MsgBox prompt:=infin$
215 cat = cat + 1
216 inf$(cat) = infin$
217 GoTo 213
219 Close #3
Appendix Language Model Programs
62
220 FILENAME2$ = "C:\book\" + LANG$ + "\VERBS"
Open verb Files. Retrieve only verbs to be updated.
230 Open FILENAME2$ For Random As #2 Len = 122
250 Y = 13
260 X = 5
280 SP$ = Space$(40)
290 cor$ = InputBox("Correction: ", Title:="Update verb")
291 For C = 1 To 50
If cor$ = "end" Then GoTo 1260
292 If cor$ = inf$(C) Then GoTo 330
293 Next C
295 GoTo 290
300 For I = 1 To 5
320 Next I
330 J = C
340 Y = 14
350 X = 5
UPDAVERB
370 If EOF(2) Then GoTo 1260
380 Get #2, J, verbrecord
390 MsgBox Len(verbrecord.v1) & " " & Len(verbrecord.v2) & " " & Len(verbrecord.v3) & " " &
Len(verbrecord.v4)
410 MsgBox "prompt:=Enter infinitive:", Title:=verbrecord.v1
430 infit$ = InputBox("inf")
440 If infit$ = "end" Then GoTo 1260
450 If Len(infit$) = 0 Then GoTo 550
460 CNT = CNT + 1
470 holdverb$(1) = infit$
510 GoTo 560
550 holdverb$(1) = verbrecord.v1
560 v = 1
570 For I = 1 To 3
580 v = v + 1
640 verb$(2) = verbrecord.v2
650 verb$(3) = verbrecord.v3
660 verb$(4) = verbrecord.v4
710 VB$ = InputBox(" Enter new verb form:" & Chr(13) & "or use enter key ", prompt:=pronounsg$(I) & " " &
verb$(v))
720 If Len(VB$) = 0 Then GoTo 760
730 CNTSG = CNTSG + 1
740 holdverb$(v) = VB$
750 GoTo 770
760 holdverb$(v) = verb$(v)
770 Next I
810 For I = 1 To 3
820 v = v + 1
830 verb$(5) = verbrecord.v5
840 verb$(6) = verbrecord.v6
850 verb$(7) = verbrecord.v7
940 VB$ = InputBox(prompt:="Enter new verb form:" & Chr(13) & "or use enter key", Title:=pronounpl$(I) & " "
& verb$(v))
950 If Len(VB$) = 0 Then GoTo 990
Appendix Language Model Programs
63
960 CNTPL = CNTPL + 1
970 holdverb$(v) = VB$
980 GoTo 1000
990 holdverb$(v) = verb$(v)
1000 Next I
1070 VB$ = InputBox(prompt:="enter aspect: " & verbrecord.v8, Title:=" past: ")
1080 If Len(VB$) = 0 Then GoTo 1120
1090 CNTPA = CNTPA + 1
1100 holdverb$(8) = VB$
1110 GoTo 1210
1120 holdverb$(8) = verbrecord.v8
UPDAVERB
1210 MsgBox Len(verbrecord.v1) & " " & Len(verbrecord.v2) & " " & Len(verbrecord.v3) & " " &
Len(verbrecord.v4) & " " & Len(verbrecord.v5) & " " & Len(verbrecord.v6) & " " & Len(verbrecord.v7) & " " &
Len(verbrecord.v8) & " j ", J
verbrecord.v1 = holdverb$(1)
verbrecord.v2 = holdverb$(2)
verbrecord.v3 = holdverb$(3)
verbrecord.v4 = holdverb$(4)
verbrecord.v5 = holdverb$(5)
verbrecord.v6 = holdverb$(6)
verbrecord.v7 = holdverb$(7)
verbrecord.v8 = holdverb$(8)
1220 Put #2, J, verbrecord
1230 v = 0
1240 MsgBox holdverb$(1) & " " & holdverb$(7) & " " & holdverb$(8) & " " & J
Random File. Put each field in a random file buffer. Put updated records on file.
1250 GoTo 250
1260 Close #2
1270 MsgBox " inf "
1280 MsgBox "count " & CNT
1290 End
End Sub
SOFTWARE TO CREATE INPUT FILES FOR BASIC MODELS.
Call software from hard drives.
CONVERT DATABASE FILES TO DATA FILES FOR BASIC PROGRAM MODELS.
Convert Excel Spreadsheet to (.csv) files. Convert Alphaworks Database DIF (.dbf) files to ASC files.
Select Database Software. Create data input files.
Create one database numbers list file. MODIFY database files. Add additional data item fields. Choose one
database file to create another database file for the model.
EXPORT. Convert to input files. Delete the first ten Database header records by Edlin.
RETRIEVE APPENDIX document programs. EXPORT. RUN programs from Part II #13 to list files. Files
correctly opened in program 13a. 13b. and 13c are accepted by models. Review data files.
The model file format is the same as in programs to list files. Files in this format can be read by models, stored
in DIMension statements and compared.
Appendix Language Model Programs
64
Create other files for Basic model programs.
DATABASE BASIC LIST. Visual Basic Programs.
Build word files. Create and store word lists, such as numbers for counting in Chapter 4.
LIST PRONOUN. 13a.
LIST PRONOUN. List pronouns. Visual Basic.
Sub listpro()
Dim np(10), perp$(10), nosp$(10), pronounp$(10), case1p$(10)
10 MsgBox prompt:="List pronoun groups", Title:=" Book"
30 lang$ = InputBox(prompt:="language:")
40 PRON$ = InputBox(prompt:="pro:")
60 MsgBox prompt:=("c\language\" & lang$ & "\" & PRON$)
filename$ = "c:\language\" + lang$ & "\" + PRON$ + ".csv"
70 Open filename$ For Input As #2
80 If EOF(2) Then GoTo 170
90 Input #2, n, per$, nos$, pronoun$, case1$
cnt = cnt + 1
cnt1 = cnt1 + 1
np(cnt) = n
perp$(cnt) = per$
nosp$(cnt) = nos$
pronounp$(cnt) = pronoun$
case1p$(cnt) = case1$
110 PAGE = PAGE + 1
130 If PAGE < 10 Then GoTo 80
MsgBox prompt:=(np(1) & " " & perp$(1) & " " & nosp$(1) & " " & pronounp$(1) & " ") & " " & ((np(6) & " " &
perp$(6) & " " & nosp$(6) & " " & pronounp$(6) & " ") & " ") & (Chr$(13)) & ((np(1) & " " & perp$(2) & " " &
nosp$(2) & " " & pronounp$(2) & " " & " ") & ((np(7) & " " & perp$(7) & " " & nosp$(7) & " " & pronounp$(7)))),
Title:=case1p$(7) & " First and Sec"
MsgBox prompt:=(np(1) & " " & perp$(3) & " " & nosp$(3) & " " & pronounp$(3) & " ") & " " & ((np(8) & " " &
perp$(8) & " " & nosp$(8) & " " & pronounp$(8) & " ") & " ") & (Chr$(13)) & ((np(1) & " " & perp$(4) & " " &
nosp$(4) & " " & pronounp$(4) & " " & " ") & ((np(9) & " " & perp$(9) & " " & nosp$(9) & " " & pronounp$(9)) &
Chr$(13) & np(1) & " " & perp$(5) & " " & nosp$(5) & " " & pronounp$(5) & " ") & " " & ((np(10) & " " &
perp$(10) & " " & nosp$(10) & " " & pronounp$(10)))), Title:=case1p$(9) & " Third"
G$ = InputBox(prompt:="next group")
150 PAGE = 0
cnt = 0
160 GoTo 80
170 MsgBox prompt:=("count " & cnt1)
180 Close #2
190 End
End Sub
List Prepositions. RUN the second Basic program (13b). This program is useful to review prepositions.
13b. LIST PREPOSITIONS. Review categories.
13b. LIST PREPOSITIONS
Sub listprep()
10 Dim CA1$(100), PR1$(100), ME1$(100)
30 lang$ = InputBox(prompt:="enter language", Title:="list prepositions")
40 filename$ = "c:\language\" + lang$ + "\preposit" + ".csv"
50 MsgBox filename$
60 Open filename$ For Input As #3
Appendix Language Model Programs
65
70 If EOF(3) Then GoTo 150
80 Input #3, case1$, prep$, MEANING$
90 Index = Index + 1
100 CA1$(Index) = case1$
110 PR1$(Index) = prep$
120 ME1$(Index) = MEANING$
130 MsgBox Title:=CA1$(Index), prompt:=PR1$(Index) & " : " & ME1$(Index)
140 GoTo 70
150 Close #3
180 MsgBox prompt:=filename$, Title:="Prep"
210 MsgBox "number :" & Index
220 GoTo 620
270 Y = 4
280 X = 6
300 PREPOSITION$ = InputBox(prompt:="Enter preposition ")
320 If PREPOSITION$ = "end" Then GoTo 600
330 For I = 1 To Index
340 If PREPOSITION$ = PR1$(I) Then GoTo 420
350 Next I
360 Y = 6
370 X = 6
390 MsgBox "miss "
400 GoTo 620
420 Y = 5
430 X = 6
450 MsgBox "case :" & " preposition :" & Chr(13) & CA1$(I) & " " & PR1$(I) & Chr(13) & ME1$(I) & Chr(13) &
PREPOSITION$ & " "
580 GoTo 620
600 End
620 Y = 9
630 X = 2
650 For v = 1 To Index Step 10
13b. LIST PREPOSITIONS
660 MsgBox PR1$(v) & Chr(13) & PR1$(v + 1) & Chr(13) + PR1$(v + 2) & PR1$(v + 3) & Chr(13) & PR1$(v +
4) & Chr(13) & PR1$(v + 5) & Chr(13) & PR1$(v + 6) & Chr(13) + PR1$(v + 7) & PR1$(v + 8) & Chr(13) &
PR1$(v + 9)
670 Next v
680 Y = 1
690 X = 20
700 MsgBox Buttons:=vbInformation, prompt:=filename$
720 GoTo 270
End Sub
13c. VERBLIS. List verbs in lessons for models with the third program (13c).
Type record
v1 As String * 14
v2 As String * 14
v3 As String * 14
v4 As String * 14
v5 As String * 14
v6 As String * 14
v7 As String * 14
v8 As String * 14
End Type
Appendix Language Model Programs
66
Dim verbrecord As record
Sub verblist()
10 MsgBox "list random file", Title:="verblis "
30 Dim verb$(8)
lang$ = InputBox(prompt:="ENTER: Language ")
44 TENSE$ = InputBox(prompt:="ENTER: past or verbs:", Title:="Language Verbs")
50 filename$ = "c:\basic\lab\" + lang$ + "\" + TENSE$
60 Open filename$ For Random As #2 Len = 122
80 MsgBox prompt:=("infin" & "1st per " & "2nd per " & "3rd per" & "past "), Title:=lang$
100 J = J + 1
101 If EOF(2) Then GoTo 280
110 Get #2, J, verbrecord
v1$ = verbrecord.v1
v2$ = verbrecord.v2
v3$ = verbrecord.v3
v4$ = verbrecord.v4
v5$ = verbrecord.v5
v6$ = verbrecord.v6
v7$ = verbrecord.v7
v8$ = verbrecord.v8
13b. LIST PREPOSITIONS
140 MsgBox Title:=lang$, prompt:=(v1$ & " " & v2$ & " " & v3$ & " " & v4$) & " " & (v5$ & " " & v6$ & " " &
v7$ & " " & v8$)
180 X = X + 1
190 If X < 10 Then GoTo 100
200 X = 0
210 ED$ = InputBox(prompt:="next page?")
220 MsgBox Title:=lang$, prompt:=("infin " & "1st per " & "2nd per " & "3rd per " & "past")
250 If ED$ = "999" Then GoTo 290
260 GoTo 100
280 MsgBox prompt:="cnt " & J - 1
290 Close #2
300 End
End Sub
13d. CONVERT DATABASE TO RELATIVE BASIC DATA FILE.
1. Convert relative files to sequential files for Database updates (13d).
2. Select Database to create past verb files.
3. Convert database files to relative files for language models to choose past tenses. Use print # in line 170 for
Excel. Select OPEN and PARSE.
LISTDATA
10 PRINT "list random file"
20 PRINT "listdata"
30 PRINT "enter language";
40 INPUT LANG$
44 INPUT "ENTER: past or verbs:",TENSE$
50 FILENAME$="\laboratory\"+LANG$+"\"+TENSE$
59 OPEN "o",#1,FILENAME$+".dat"
Appendix Language Model Programs
67
60 OPEN "r",#2,FILENAME$
61 FIELD #2, 14 AS V1$, 14 AS V2$, 14 AS V3$, 14 AS V4$, 14 AS V5$, 14 AS V6$, 14 AS V7$, 14 AS V8$
70 PRINT TAB(38) LANG$
80 PRINT TAB(2) "infin","1st per","2nd per","3rd per","past"
90 PRINT SPACE$(20)
100 J=J+1
101 IF EOF(2 ) THEN 270
110 GET#2,J
140 PRINT J;
150 PRINT V1$;V2$; V3$;V4$
160 PRINT TAB(15) V5$;V6$;V7$;V8$
170 WRITE #1,V1$,V2$,V3$,V4$,V5$,V6$,V7$,V8$
180 X=X+1
190 IF X<10 THEN 100
LISTDATA
200 X=0
210 INPUT "next page?",ED$
220 PRINT TAB(38) LANG$
230 PRINT TAB(2) "infin","1st per","2nd per","3rd per","past"
240 PRINT SPACE$(20)
250 IF ED$="999" THEN 290
260 GOTO 100
270 PRINT
280 PRINT "cnt ",J-1290 CLOSE #2
291 CLOSE #1
300 END
13e. CONVERT BASIC DATA FILES TO RANDOM FILES CONVDATA.
1. Sequential File. Convert special service data files to text files (13e). Text files are sequential files.
2. Relative File. Convert data files to random files. Add a record key.
CONVDATA
Type record
v1 As String * 14
v2 As String * 14
v3 As String * 14
v4 As String * 14
v5 As String * 14
v6 As String * 14
v7 As String * 14
v8 As String * 14
End Type
Dim verbrecord As record
Sub convert()
MsgBox prompt:="convert database", Buttons:=vbExclamation
Dim verb$(8)
Dim verbvb$
Dim id
20 lang$ = InputBox(prompt:="enter language:", Title:="Sentence")
30 past$ = InputBox(prompt:="enter past or verbs", Title:="Verb File")
40 filename$ = "c:\language\" + lang$ + "\" + past$ + ".csv"
Appendix Language Model Programs
68
50 FILENAME2$ = "c:\basic\lab\" + lang$ + "\" + past$
60 Open FILENAME2$ For Random As #2 Len = 122
80 Open filename$ For Input As #1
90 If EOF(1) Then GoTo 240
100 Input #1, v1$, v2$, v3$, v4$, v5$, v6$, v7$, v8$
110 cnt = cnt + 1
120 MsgBox (cnt & " " & v1$ & " " & v2$ & " " & v3$ & " " & v4$) & (" " & v5$ & " " & v6$ & " " & v7$ & " "
& v8$)
CONVDATA
140 LSet verb$(1) = v1$
150 LSet verb$(2) = v2$
160 LSet verb$(3) = v3$
170 LSet verb$(4) = v4$
180 LSet verb$(5) = v5$
190 LSet verb$(6) = v6$
200 LSet verb$(7) = v7$
210 LSet verb$(8) = v8$
verbrecord.v1 = v1$
verbrecord.v2 = v2$
verbrecord.v3 = v3$
verbrecord.v4 = v4$
verbrecord.v5 = v5$
verbrecord.v6 = v6$
verbrecord.v7 = v7$
verbrecord.v8 = v8$
MsgBox verbrecord.v1 & " " & v1$ & " " & verbrecord.v8
220 Put #2, cnt, verbrecord
230 GoTo 90
240 Close #1
250 Close #2
260 MsgBox prompt:="count " & " " & cnt
270 MsgBox FILENAME2$, Title:=" For Sentence Model"
280 End
End Sub
Alphaworks Database. Create, update record TABLES and FORMS, prints FORMS to disk for documentation and
convert files to sequential files with comma delimiters for program models.
Excel 7 Spreadsheets.
Use Dialogue boxes,
SAVE AS comma separated variable (.csv).
Visual Basic MODULES. Change input or output statements to:
OPEN " " for output as #1
4. Use Debug.print to print screen output.
Appendix Language Model Programs
44