大西佐七のザ・飛騨弁フォーラム 文法

三拍動詞作成用 BASIC プログラム ver 1.0

戻る

2005/10/10

以下の記載ですが、重大な誤りがありました。以下のプログラムは単に三文字を抽出するプログラムでした。三文字イコール三拍ではありません。これに気づくべきでした。新たに2拍動詞、3拍動詞の作成法を公開しています。宜しくご理解のほどお願い申し上げます。
三拍の動詞として可能性のある三文字ををテキストファイルとして出力する BASIC プログラムのソースを公開します。尚、著作権を放棄します。改変は自由です。

★三拍の動詞ですから一拍めは"あ"〜"ん"のひとつ手前です。ただし、小さい字のあいうえお等は一拍めの文字にはなり得ません。
★二拍目は"あ"〜"ん"です。小さい字のあいうえお等はなり得ます。
★三拍めは動詞ですから"う"〜"ぶ"です。
漢字コードは"ぁ"の 2421 に始まって、"ん"の 2473 ですが十六進法ですのでお間違えのないようにお願いします。

尚、 BASIC プログラムになじみのない方のために結果のダウンロードサービスをします。出力結果は 735 KB とかなり大きいサイズですので、圧縮してアップロードしました。圧縮サイズは 103 KB です。また、おおかたの動詞のアクセントは○●○のはずですので、これをデフォルトとします。
1000 '  save "triverb.bas",a' head of the prog. ver 1.4
1010 OF1$="temp.txt"
1020 OPEN OF1$ AS #1:CLOSE:KILL OF1$
1030 DIM C1$(6),C2$(16),C3$(10)
1040 C1$(1)="242"
1050 C1$(2)="243"
1060 C1$(3)="244"
1070 C1$(4)="245"
1080 C1$(5)="246"
1090 C1$(6)="247"
1100 C2$( 0)="0"
1110 C2$( 1)="1"
1120 C2$( 2)="2"
1130 C2$( 3)="3"
1140 C2$( 4)="4"
1150 C2$( 5)="5"
1160 C2$( 6)="6"
1170 C2$( 7)="7"
1180 C2$( 8)="8"
1190 C2$( 9)="9"
1200 C2$(10)="A"
1210 C2$(11)="B"
1220 C2$(12)="C"
1230 C2$(13)="D"
1240 C2$(14)="E"
1250 C2$(15)="F"
1260 C3$( 1)="う"
1270 C3$( 2)="く"
1280 C3$( 3)="す"
1290 C3$( 4)="つ"
1300 C3$( 5)="ぬ"
1310 C3$( 6)="む"
1320 C3$( 7)="る"
1330 C3$( 8)="ぐ"
1340 C3$( 9)="ず"
1350 C3$(10)="ぶ"
1360 '
1370 OPEN OF1$ AS #1
1380 FOR I= 1 TO 10
1390   FOR J= 1 TO 6 
1400     FOR K= 0 TO 15
1410       V1$=KNJ$(C1$(J)+C2$(K))
1420       IF V1$<"ぁ" THEN *ESC11
1430       IF V1$>"ん" THEN *ESC11
1440       IF V1$="ぁ" THEN *ESC11
1450       IF V1$="ぃ" THEN *ESC11
1460       IF V1$="ぅ" THEN *ESC11
1470       IF V1$="ぇ" THEN *ESC11
1480       IF V1$="ぉ" THEN *ESC11
1490       IF V1$="っ" THEN *ESC11
1500       IF V1$="ゃ" THEN *ESC11
1510       IF V1$="ゅ" THEN *ESC11
1520       IF V1$="ょ" THEN *ESC11
1530       IF V1$="ゎ" THEN *ESC11
1540       IF V1$="ん" THEN *ESC11
1550       FOR L= 1 TO 6
1560         FOR M= 0 TO 15
1570           V2$=KNJ$(C1$(L)+C2$(M))
1580           IF V2$<"ぁ" THEN *ESC12
1590           IF V2$>"ん" THEN *ESC12
1600           A$=V2$+"う"
1610           IF A$="ぃう" THEN *ESC12
1620           IF A$="ぅう" THEN *ESC12
1630           IF A$="ぇう" THEN *ESC12
1640           IF A$="んう" THEN *ESC12
1650           IF A$="っう" THEN *ESC12
1660 '
1670           IF V2$="ゃ" THEN *CASE1
1680           IF V2$="ゅ" THEN *CASE1
1690           IF V2$="ょ" THEN *CASE1
1700           GOTO *CASE2
1710 '
1720           *CASE1 'ゃ、ゅ、ょ、はイ列でなきゃだめ
1730           IF V1$="い" THEN *PR
1740           IF V1$="き" THEN *PR
1750           IF V1$="ぎ" THEN *PR
1760           IF V1$="し" THEN *PR
1770           IF V1$="じ" THEN *PR
1780           IF V1$="ち" THEN *PR
1790           IF V1$="に" THEN *PR
1800           IF V1$="ひ" THEN *PR
1810           IF V1$="び" THEN *PR
1820           IF V1$="み" THEN *PR
1830           IF V1$="り" THEN *PR
1840           GOTO *ESC12
1850 ' 
1860           *CASE2
1870           IF V2$="ゎ" THEN *CASE3
1880           GOTO *PR
1890 '
1900           *CASE3 ' ゎ はウ列でなきゃだめ
1910           IF V1$="う" THEN *PR
1920           IF V1$="く" THEN *PR
1930           IF V1$="ぐ" THEN *PR
1940           IF V1$="す" THEN *PR
1950           IF V1$="ず" THEN *PR
1960           IF V1$="つ" THEN *PR
1970           IF V1$="づ" THEN *PR
1980           IF V1$="ぬ" THEN *PR
1990           IF V1$="ふ" THEN *PR
2000           IF V1$="ぶ" THEN *PR
2010           IF V1$="む" THEN *PR
2020           GOTO *ESC12
2030           *PR
2040           PRINT #1,V1$+V2$+C3$(I)+"○●○"
2050           *ESC12
2060        NEXT
2070       NEXT
2080       *ESC11
2090     NEXT
2100   NEXT
2110 NEXT
2120 CLOSE
2130 '
2140 END



1000 '  save "triverb.bas",a' head of the prog. ver 1.3
1010 OF1$="temp1.txt"
1020 OF2$="temp.txt"
1030 OPEN OF1$ AS #1:CLOSE:KILL OF1$
1040 OPEN OF2$ AS #1:CLOSE:KILL OF2$
1050 DIM C1$(6),C2$(16),C3$(10)
1060 C1$(1)="242"
1070 C1$(2)="243"
1080 C1$(3)="244"
1090 C1$(4)="245"
1100 C1$(5)="246"
1110 C1$(6)="247"
1120 C2$( 0)="0"
1130 C2$( 1)="1"
1140 C2$( 2)="2"
1150 C2$( 3)="3"
1160 C2$( 4)="4"
1170 C2$( 5)="5"
1180 C2$( 6)="6"
1190 C2$( 7)="7"
1200 C2$( 8)="8"
1210 C2$( 9)="9"
1220 C2$(10)="A"
1230 C2$(11)="B"
1240 C2$(12)="C"
1250 C2$(13)="D"
1260 C2$(14)="E"
1270 C2$(15)="F"
1280 C3$( 1)="う"
1290 C3$( 2)="く"
1300 C3$( 3)="す"
1310 C3$( 4)="つ"
1320 C3$( 5)="ぬ"
1330 C3$( 6)="む"
1340 C3$( 7)="る"
1350 C3$( 8)="ぐ"
1360 C3$( 9)="ず"
1370 C3$(10)="ぶ"
1380 '
1390 OPEN OF1$ AS #1
1400 FOR I= 1 TO 10
1410   FOR J= 1 TO 6 
1420     FOR K= 0 TO 15
1430       V1$=KNJ$(C1$(J)+C2$(K))
1440       IF V1$<"ぁ" THEN *ESC11
1450       IF V1$>"ん" THEN *ESC11
1460       FOR L= 1 TO 6
1470         FOR M= 0 TO 15
1480           V2$=KNJ$(C1$(L)+C2$(M))
1490           IF V2$<"ぁ" THEN *ESC12
1500           IF V2$>"ん" THEN *ESC12
1510           A$=V2$+"う"
1520           IF A$="ぃう" THEN *ESC12
1530           IF A$="ぅう" THEN *ESC12
1540           IF A$="ぇう" THEN *ESC12
1550           IF A$="んう" THEN *ESC12
1560           IF A$="っう" THEN *ESC12
1570 '
1580           IF V2$="ゃ" THEN *CASE1
1590           IF V2$="ゅ" THEN *CASE1
1600           IF V2$="ょ" THEN *CASE1
1610           GOTO *CASE2
1620 '
1630           *CASE1 'ゃ、ゅ、ょ、はイ列でなきゃだめ
1640           IF V1$="い" THEN *PR
1650           IF V1$="き" THEN *PR
1660           IF V1$="ぎ" THEN *PR
1670           IF V1$="し" THEN *PR
1680           IF V1$="じ" THEN *PR
1690           IF V1$="ち" THEN *PR
1700           IF V1$="に" THEN *PR
1710           IF V1$="ひ" THEN *PR
1720           IF V1$="び" THEN *PR
1730           IF V1$="み" THEN *PR
1740           IF V1$="り" THEN *PR
1750           GOTO *ESC12
1760 ' 
1770           *CASE2
1780           IF V2$="ゎ" THEN *CASE3
1790           GOTO *PR
1800 '
1810           *CASE3 ' ゎ はウ列でなきゃだめ
1820           IF V1$="う" THEN *PR
1830           IF V1$="く" THEN *PR
1840           IF V1$="ぐ" THEN *PR
1850           IF V1$="す" THEN *PR
1860           IF V1$="ず" THEN *PR
1870           IF V1$="つ" THEN *PR
1880           IF V1$="づ" THEN *PR
1890           IF V1$="ぬ" THEN *PR
1900           IF V1$="ふ" THEN *PR
1910           IF V1$="ぶ" THEN *PR
1920           IF V1$="む" THEN *PR
1930           GOTO *ESC12
1940           *PR
1950           PRINT #1,V1$+V2$+C3$(I)
1960           *ESC12
1970        NEXT
1980       NEXT
1990       *ESC11
2000     NEXT
2010   NEXT
2020 NEXT
2030 CLOSE
2040 '
2050 OPEN OF1$ AS #1
2060 OPEN OF2$ AS #2
2070 WHILE NOT EOF(#1)
2080   INPUT #1, A$
2090   B$=LEFT$(A$,2)
2100   IF B$="ぁ" THEN *ESC2
2110   IF B$="ぃ" THEN *ESC2
2120   IF B$="ぅ" THEN *ESC2
2130   IF B$="ぇ" THEN *ESC2
2140   IF B$="ぉ" THEN *ESC2
2150   IF B$="っ" THEN *ESC2
2160   IF B$="ゃ" THEN *ESC2
2170   IF B$="ゅ" THEN *ESC2
2180   IF B$="ょ" THEN *ESC2
2190   IF B$="ゎ" THEN *ESC2
2200   IF B$="ん" THEN *ESC2
2210   PRINT #2,A$+"○●○"
2220   *ESC2
2230 WEND
2240 '
2250 KILL OF1$
2260 END



出力例

あぁう○●○
ああう○●○
あぃう○●○
あいう○●○
あぅう○●○
あうう○●○
あぇう○●○
あえう○●○
あぉう○●○
あおう○●○
あかう○●○
あがう○●○
あきう○●○
あぎう○●○
あくう○●○
あぐう○●○
あけう○●○
あげう○●○
あこう○●○
あごう○●○
あさう○●○
あざう○●○
あしう○●○
あじう○●○
あすう○●○
あずう○●○
あせう○●○
あぜう○●○
あそう○●○
あぞう○●○
あたう○●○
あだう○●○
あちう○●○
あぢう○●○
あっう○●○
あつう○●○
あづう○●○
あてう○●○
あでう○●○
あとう○●○
あどう○●○
あなう○●○
あにう○●○
あぬう○●○
あねう○●○
あのう○●○
あはう○●○
あばう○●○
あぱう○●○
あひう○●○
あびう○●○
あぴう○●○
あふう○●○
あぶう○●○
あぷう○●○
あへう○●○
あべう○●○
あぺう○●○
あほう○●○
あぼう○●○
あぽう○●○
あまう○●○
あみう○●○
あむう○●○
あめう○●○
あもう○●○
あゃう○●○
あやう○●○
あゅう○●○
あゆう○●○
あょう○●○
あよう○●○
あらう○●○
ありう○●○
あるう○●○
あれう○●○
あろう○●○
あゎう○●○
あわう○●○
あゐう○●○
あゑう○●○
あをう○●○
あんう○●○

ページ先頭に戻る