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