#99 Article 1067 Posted at 1995/12/22 22:54:28 by たぐれっと (MAP4870) [SAHOU.4]
Subject: Re: プログラミング作法・お題4 /1052
今回は結構長くなりました。 N88-BASIC(86)用。 100 ' かうんたー 110 '"count",a 120 KEY 2,"system"+CHR$(13) 130 DEFINT A-Z 140 ON ERROR GOTO *ETRAP 150 E53$="'input.txt' が見つかりません(^^;" 160 E14$="メモリが尽きました。途中ですが結果のほうに。。(^^;" 170 OPEN "input.txt" FOR INPUT AS #1 180 OPEN "output.txt" FOR OUTPUT AS #2 190 OPTION BASE 1 200 DIM JI$(2048),C(2048) 210 Z=1 : CLS 220 PRINT " 個の変数を使っています。残りメモリが心配(^^;" 230 ' かうんと 240 *COUNT 250 IF EOF(1) THEN *FOWARI 260 LINE INPUT #1,JI$ : I=0 270 WHILE I<=Z 280 I=I+1 : IF JI$=JI$(I) THEN C(I)=C(I)+1 : GOTO *COUNT 290 WEND 300 Z=Z+1 : PRINT CHR$(11);Z 310 C(Z)=1 : JI$(Z)=JI$ 320 GOTO *COUNT 330 *FOWARI 340 PRINT "カウント終了。ソートします。" 350 ' ならべかえ 360 *SORT 370 FOR I=1 TO Z-1 380 PRINT "."; 390 FOR J=I+1 TO Z 400 IF C(I)<C(J) THEN SWAP C(I),C(J) : SWAP JI$(I),JI$(J) 410 NEXT 420 NEXT 430 ' はっぴょう 440 PRINT : PRINT "結果発表~。'output.txt' に出力します。" 450 FOR I=1 TO Z 460 PRINT #2,C(I);":";JI$(I) 470 NEXT 480 END 490 ' えらーとらっぷ 500 *ETRAP 510 IF ERR=53 THEN PRINT E53$ : BEEP : END 520 IF ERR=14 THEN PRINT E14$ : BEEP : RESUME *SORT 530 ON ERROR GOTO 0 前回使ったソートのルーチンを使ってみたんですが、えらく遅いので、 夢中さんのアルゴリズム(a1033) を使わせて頂きました。 入力テキストは'input.txt'、出力は'output.txt' となっています。 余り大きなものを処理しようとすると、途中でメモリが無くなります(笑) 作るのに時間がかかった割りには、相変わらず大したことはやってい ません(^^; あ。while~wend をはじめて使ってみました(汗) --- ps. >p.s.「実行すると、そのプログラムのソースコードと同じ内容のものを出力する > プログラム」にしようかと思ったけど、やめた(^^; 1 LIST でOK(笑) たぐれっと