投稿者
  題名
  内容 入力補助
    
 URL
[ ケータイで使う ] [ BBSティッカー ] [ 書込み通知 ] [ teacup.コミュニティ | 画像 ]

[PR]   石川の求人・転職 渋谷 カフェ ブライダルエステ 柏
teacup. ] [ 無料掲示板 ] [ プレミアム掲示板 ] [ みんなの掲示板 ] [ 無料ブログ ] [ チャット ]

全112件の内、新着の記事から10件ずつ表示します。 1  2  3  4  5  6  7  8  9  10  |  《前のページ |  次のページ》 

レス

 投稿者:御茶目菜子  投稿日:2011年 7月 8日(金)16時05分45秒
編集済
  みっぴゅさんへ
>ソートをしている30行目のループで、STEP -1というようにわざわざリストが長くなる様な作り方をしていますが、何故でしょうか?

これは特に意味はないと思います。
降順でソートする場合はデータによってはこちらの方が速くなるけどランダムに並んだ
データの場合はそういうことはないので無意識にやっただけですね。

作ったのが10年以上前ということもあるのでその時のことは覚えてないけど見る限り
そこまでリスト短縮や高速化はしてないと思います。
OGEは単純なアルゴリズムでそこそこ圧縮率が高いというのがウリでプログラムそのものは
気合いを入れて作った覚えも無いし・・・。
私が作ったものもすべてが完璧というわけではなくそうではないものもあるので
こうした方が良いと感じたものはどんどん改良しちゃってください。
 

リボンOGEリボンの圧縮プログラムのソートの部分サーチ

 投稿者:みっぴゅ  投稿日:2011年 7月 8日(金)09時34分9秒
  ゲーム今回はコレです。
 ↓↓↓
http://ww5.tiki.ne.jp/~ochame/E500/TECH/OGE.HTM

いきなり他人のプログラムを理解出来る様な頭脳は持っていないため、まず自分で作って〔※1〕理解してから見させて頂きました。てか、、、ようやくこういうプログラムが組める様になりました~キラキラ o(^-^)o

でも、同じものなハズなのに結構違ったプログラムになっちゃいましたねぇ。。。 !?(゜Q。)!?


さて、おちゃめさんの作成した圧縮プログラムで、10行から開始するとすると20行目のP(I)=0は不要かな!?っていうツッコミは軽~く置いておくとしまして、質問です。
ソートをしている30行目のリサイクルループで、STEP -1というようにわざわざメモリストが長くなる様な作り方をしていますが、何故でしょうか?
普通は私が作成した〔※1〕150行目みたいにSTEP +1的な作り方をすると思うのですが。。。

やっぱり他人のプログラムを解読するのは難しいものです (-_- ...


〔※1〕
【圧縮】《H$にグラフィックデータを代入しておき、実行するとC$に圧縮データが格納されます。》
100 CLEAR C$,D$
110 ERASE H,D:DIM H(15),D(15)
120 FOR I=1 TO 15:D(I)=I:NEXT
130 L=LEN H$
140 FOR I=1 TO L:H=VAL ("&"+MID$ (H$,I,1)):H(H)=H(H)+1:NEXT
150 FOR I=0 TO 14:FOR J=I+1 TO 15
160 IF H(I)<H(J) LET H=H(I),H(I)=H(J),H(J)=H:D=D(I),D(I)=D(J),D(J)=D
170 NEXT :NEXT
180 FOR I=0 TO 3:D$=D$+HEX$ D(I):NEXT :PRINT D$
190 FOR I=1 TO L
200 H=VAL ("&"+MID$ (H$,I,1))
210 IF I=L GOTO 250
220 FOR J=0 TO 3
230 IF H=D(J) LET H=J*16+VAL ("&"+MID$ (H$,I+1,1))+71:I=I+1:J=3
240 NEXT
250 IF H<16 LET H=ASC HEX$ H ELSE IF H>90 LET H=H+86
260 C$=C$+CHR$ H
270 NEXT
280 C$=D$+C$
290 PRINT C$
300 RETURN


【解凍】《C$に圧縮データを代入しておき、実行するとH$に解凍されます。》
100 CLEAR H$
110 D$=LEFT$ (C$,4)
120 FOR I=5 TO LEN C$
130 C=ASC MID$ (C$,I,1)
140 IF C<71 LET H$=H$+CHR$ C ELSE C=C-71+(C>90)*86,H$=H$+MID$ (D$,C/16+1,1)+HEX$ (C AND 15)
150 NEXT
160 PRINT H$
170 RETURN
 

レス

 投稿者:御茶目菜子  投稿日:2011年 7月 5日(火)15時23分44秒
  みっぴゅさんへ
>割り込み処理を無効にした場合の副作用(?)として[BREAK]すら効かなくなることが
>記載されていましたが、この他には何か不具合等無いでしょうか?

実はキー割り込みを無効にしてもBEEPによる割り込みが優先されるためBEEP中は[BREAK]が
可能だったりします。
ただし、音を鳴らし終わったらキー割り込み無効によって何もできないのでキー割り込み
無効中はBREAKが無意味という点においては変わらないですが。

あとキー割り込みを無効化した場合にはWAIT指定の不具合があります。
例えばPAUSE機能を付ける場合一見すると下記のようなもので正常動作するように
見えます。
http://ww5.tiki.ne.jp/~ochame/E500/TECH/TECH029.HTM

*PAUSE POKE &FB,&E3:WAIT :LOCATE 0,0:PRINT "PAUSE":WAIT 0:LOCATE ,0:PRINT "     ":RETURN

しかし、これを実行すると「PAUSE」表示で一時停止することなくRETURNで復帰して
しまいます。
これは本来ならばWAITの後にくるPRINTがWAITの指定の対象となるにもかかわらずそう
ならないために起きているのです。
これはWAIT指定後の最初のPRINT(もしくはGPRINT)のみに起きている不具合なので
ダミーのGPRINTを置いておけば問題ありません。

*PAUSE POKE &FB,&E3:WAIT :GPRINT :LOCATE 0,0:PRINT "PAUSE":WAIT 0:LOCATE ,0:PRINT "     ":RETURN

また、これはWAIT指定無限大(引数省略時)のみに発生する不具合なのでそれ以外に
おいては問題ありません。

キー割り込み無効による不具合で私が確認している不具合はこんな感じです。
リスクの大きなものはないので安心して使ってください。

>余分な処理が省略される分、高速化も期待出来そうですからね! しかし、、、高速化に関しては既に【コラム】に記載されてましたねぇ。。。

キー割り込み無効化は同時キー入力のテクニックに完全に内包されていますからね。
より効果的な方法が提示できれば単体でテクニック化もありですが、キーを押している
時も遅くならない(平常時より高速化)というのはPOKEとPEEKの処理にかかる時間との
相殺を考えるとそれほど効果的とは言えないためコラムに書いたように高速化のため
ではなく同時キー入力のためにキー割り込みを無効化するというのが最も有効な活用
方法だと判断しました。
 

割り込み処理無効化について…《ワンポイントテクニック No.008》より

 投稿者:みっぴゅ  投稿日:2011年 7月 4日(月)19時41分54秒
  http://ww5.tiki.ne.jp/~ochame/E500/TECH/TECH008.HTM
さりげなく書かれている、割り込み処理の無効化に関する質問です。

割り込み処理には幾種類のルーチンが用意されていて、個々にアドレスをしていすることができますし、それぞれの割り込みルーチンに対して、割り込み処理を無効にするかしないかを個別、あるいは一括して指定することができますね!

さて、そんな割り込み処理ですが、ワンポイントテクニックの方法でBASICから割り込み処理を無効にした場合の副作用(?)として[BREAK]すら効かなくなることが記載されていましたが、この他には何か不具合等無いでしょうか?

それが心配で安心して使う事が出来ません。。。 (゜o゜")\(-_-)


あと、個人的には割り込み処理の無効化もワンポイントテクニックのひとつに載せると良いのではないかなぁ~って思います。
余分な処理が省略される分、高速化も期待出来そうですからね! しかし、、、高速化に関しては既に【コラム】に記載されてましたねぇ。。。
 

ありがとうございます。

 投稿者:レクターメール  投稿日:2011年 5月23日(月)17時56分22秒
  レスありがとうございます。
ご指摘の通りエラー行番号がprint using***のところでして。
書式も間違えていないし何が原因なのだろうと思っていました。
再度チェックしてみたいと思います。
ありがとうございました。
 

レス

 投稿者:御茶目菜子  投稿日:2011年 5月23日(月)15時25分36秒
  レクターさんへ

私はG850Sを持ってないしそのプログラムを見てないのですが手元のE650と同じだと
すればエラー71はUSING format errorとなります。
USINGで指定している形式が間違っているもしくは表示できる数値がUSINGで指定されて
いる範囲を超えていると推測されます。
エラーの出ているPRINT USINGの指定部分に入力ミスが泣ければその変数が使われている
部分をすべてチェックして入力ミスがないか確認してみてください。
 

エラーコードについて

 投稿者:レクター  投稿日:2011年 5月22日(日)13時55分0秒
  はじめまして、最近ポケコンを入手したばかりの初心者です。
実は天体位置計算のプログラムを入力したのですが、エラー71と出て計算結果が出ません。
この「エラー71」の意味を教えて頂けないでしょうか?
ちなみに機種はPC-G850Sです。
取説が無いので困っています。
よろしくお願いします。
 

レス

 投稿者:御茶目菜子  投稿日:2011年 4月23日(土)14時42分52秒
  ミッピュさんへ

それは導電ゴムの劣化が原因だと思われます。
ファミコンのコントローラ用のゴムと同じく交換を行うのがベストだけど残念ながら
パーツの取り寄せはできないので本格的に改善を望むならば本体ごと買い換えるしか
ありません。

とはいえ、改善の方法はあるのでそれを書いておきます。
最もお手軽なのは分解して基板とゴムを取り外し念入りにキレイにすることです。
ゴムの裏側と基板の表についている分離した油を取り除くだけでは見違えたような効果が
期待できます。
それでもあまり改善されないようであれば濃い鉛筆をゴムの裏に塗るなど導電性のある
物質をゴム裏に塗布することで改善されるかもしれません。


みやさんへ

一旦自分で動作を確かめてみてからレスをしようと思ったけどなかなか時間が取れず
レスができなくてすみません。
リストを見る限りでは問題なさそうですね。
あとはこれをどのように使っていくかが問題ですが・・・。
 

本体の手入れ (キーボード編)

 投稿者:ミッピュ  投稿日:2011年 4月23日(土)08時38分9秒
  BASICの事ではなく、たいへん申し訳ないのですが…

特にべたつきがあるわけではありませんが、大半のボタンの反応が悪く入力がしにくくなってきました。
既に寿命なのかもしれませんが、どうにか復活させる事は出来ないものでしょうか?
 

AとBを交互に動作させる、BTEXT$を使う方法

 投稿者:みや  投稿日:2010年11月24日(水)21時25分3秒
  みゅぴゅさんの以前に書き込みを見ました。

変数を共有しない方法を考えました、まだアイデア段階なので基本部分だけ見てください。

S1: に A.BAS、 A.D、 B.BAS、 B.D の4ファイルを作ります。
同名のファイルがあると上書きするので、前もって移動をしてください。

プログラムAとBの違いは先頭3行だけ、残りは全て同じです。

ほとんどの方が、S1:TEXT.BASで、使っていると思うので、そのままプログラムA を入力する。
 転送の為1行目の100’を消してSAVE”S1:A.BAS”を実行してください。
続いて、プログラム B、100~120行を変更して
 転送の為1行目の100’を消してSAVE”S1:B.BAS”を実行してください。
FILES ”S1:*.BAS でファイルの確認をしてください。

入力が済んだら、プログラムA または Bを、RUNしてください。
注意するところは、それぞれ変数を一度も保存してないときは、呼び出さないでください、テスト中の為。

それでは、プログラムAとBの行き来をして試してください。


プログラム A
100 '  SAVE "S1:A      .BAS"
110 P$="A" : P1$="B"
120 A =1   : B  =0
130 WQ$= CHR$ &22 : CR$= CHR$ &D
140 '
150 CLS
160 PRINT USING " プログラム &  ジッコウチュウ"; P$
170 PRINT " ヘンスウ A ヲ   ヨビダス = 1  シンキ = 0 "
180    X$ = INPUT $(1)
190 IF X$ = "0" THEN *Q
200 IF X$ = "1" THEN 230
210 GOTO 180
220 '
230 ' ヨビダシショリ
240 KEY 0, "COPY" +WQ$ +"S1:" +P$ +".D" +WQ$ +"TO" +WQ$ +"DATA.BAS" +WQ$ +":G.*R" +CR$
250 END
260 '
270 *Q
280 DIM C(5)
290     C(5)= 5
300 C=  C(5)
310 '
320 *R
330 CLS
340 PRINT USING "プログラム &    A=###   B=###   C=###"; P$, A, B, C(5)
350 INPUT "  A= "; A
360 INPUT "  B= "; B
370 LOCATE 0,1
380 PRINT USING "プログラム &    A=###   B=###   C=###"; P$, A, B, C(5)
390 PRINT USING "ヘンスウヲ  S1:&&&&&.D ニ  ホゾン= 1  シナイ= 0 "; P$
400 PRINT
410    X$ = INPUT $(1)
420 IF X$ = "0" THEN *Z
430 IF X$ = "1" THEN 460
440 GOTO 410
450 '
460 KEY 0, "COPY" +WQ$ +"S1:DATA.BAS" +WQ$ +"TO" +WQ$ +P$ +".D" +WQ$ +":G.*Y" +CR$
470 END
480 '
490 *Y
500 PRINT USING " ヘンスウヲ  S1:&&&&.D ニ ホゾン シマシタ"; P$
510 PRINT
520 '
530 *Z
540 X= 0
550 PRINT USING "プログラム &  カラ  & ヘ イドウ= 1   シナイ= 0 "; P$; P1$;
560 X$= INPUT $(1)
570 IF X$ = "0" THEN END
580 IF X$ = "1" THEN 610
590 GOTO 560
600 '
610 KEY 0, "BTEXT$=" +WQ$ +"S1:" +P1$ +".BAS" +WQ$ +CR$ +"RUN" +CR$
620 END



プログラム B
100 '  SAVE "S1:B      .BAS"
110 P$="B" : P1$="A"
120 A =0   : B  =1
 

以上は、新着順1番目から10番目までの記事です。 1  2  3  4  5  6  7  8  9  10  |  《前のページ |  次のページ》 
/12 


[PR] グアム旅行