トップページ⇒tech
230コメント73KB

QBASIC

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
QBASIC
Windows98,Windows95 のCD-ROM の中に入ってます。
詳しくは以下のURL参照。
http://homepage2.nifty.com/kasayan/basic/qbasic.htm
http://www.geocities.co.jp/Milano/8000/qbasic/

詳しいページ
http://homepage2.nifty.com/kasayan/bindex.htm
http://www.geocities.co.jp/Milano/8000/qbasic/list.html

関連リンク
N88BASICなら俺に聞けスレ
http://pc.2ch.net/test/read.cgi/tech/1002050153/
MSX-BASICの奥義を伝授するスレ
http://pc.2ch.net/test/read.cgi/tech/1006624394/
ActiveBasicスレッド
http://pc.2ch.net/test/read.cgi/tech/1006083397/
N-BASICを思い出すスレ
http://pc.2ch.net/test/read.cgi/tech/1004643424/
REALbasicでプログラムごっこ
http://pc.2ch.net/test/read.cgi/tech/1003044439/
N60-BASICを思い出すスレ
http://pc.2ch.net/test/read.cgi/tech/1004975036/
RealBasicだけどどう?
http://pc.2ch.net/test/read.cgi/tech/997193486/
F-BASICに関するスレ
http://pc.2ch.net/test/read.cgi/tech/1008744379/
Blitz Basicってどうよ?
http://pc.2ch.net/test/read.cgi/tech/1007311614/
HSP9
http://pc.2ch.net/test/read.cgi/tech/1006444367/
Google Computers > Programming > Languages > BASIC
http://directory.google.com/Top/Computers/Programming/Languages/BASIC/
0153デフォルトの名無しさんNGNG
>>152
実行してみました。
うなぎのホネみたいのが、うにょうにょ動いてたにょ!
0154デフォルトの名無しさんNGNG
>>151
まとめてくれて、ありがとう!
漏れ、QUICK BASIC の本で勉強してるから、こういうの、ありがたいんだよね。

さて、いまから、リカーシブ、グラフィックスのところを読みます。
内容は、
●コッホ曲線
●コッホ島
●クロスステッチ
の3つです。
0155デフォルトの名無しさんNGNG
入門書もいよいよおおづめ。
ランダムファイルとシーケンシャルファイルの読み書きだ。

これが終わったら、次に、もう一冊買ってある別の入門書を読みます。
0156デフォルトの名無しさんNGNG
>>153
うにょうにょをVBで再現することに成功しました。
いちおうリアルタイム描画。

>>154
151はQBヘルプの抜粋です。すいません。

おもしろそうな幾何図形を描く短いコードがあったら、紹介してください。
0157デフォルトの名無しさんNGNG
SOUND 文のところをちょっとやってみたが、BEEP 用のスピーカーからもろに音が出るのでアパートの近所迷惑になるので、実験できません。
0158デフォルトの名無しさんNGNG
WinXPだと、Win95にあったQBASIC動かないみたいですね、誰か動きましたか?
0159デフォルトの名無しさんNGNG
First BASIC は試してみた?
0160デフォルトの名無しさんNGNG
QBASICもだんだん全容が見えてきたら飽きてきたな(w
0161デフォルトの名無しさんNGNG
これで窓アプリでも組めればそそるんだけどね
0162デフォルトの名無しさんNGNG
http://www.amazon.co.jp/exec/obidos/ASIN/4874089984/qid=1012747948/sr=1-24/ref=sr_1_0_24/250-4218930-7128232
書評 書いてみたよ
0163デフォルトの名無しさんNGNG
氏ね
0164デフォルトの名無しさんNGNG
ファイルをオープンしてクローズしないでプログラムを終了したらどうなるの?
0165デフォルトの名無しさんNGNG
>164
Input時はエラーになり、Output時は0バイトのファイルが出来ると思う。
0166デフォルトの名無しさんNGNG
>161
窓アプリは出来ないと思うけど、CGIは出来そう。
0167デフォルトの名無しさんNGNG
今までにやった女の名前と年令をシーケンシャルファイルに記録するコードだよ

CLS
OPEN "girl.txt" FOR OUTPUT AS #1

PRINT " owari tai toki ha /,0 to ose"
INPUT "namae,nenrei"; namae$, toshi
WHILE namae$ <> "/"
WRITE #1, namae$, toshi
INPUT "namae,nenrei"; namae$, toshi
WEND
CLOSE #1
END
0168デフォルトの名無しさんNGNG
良スレはっけん。
QuickBasicユーザが居てうれしい。
昔作ったゲームあるけど見る?
ソースきぼんならソースも出すよ。

いまは他の言語使ってるけどBASICにはBASICの良さがあるね。
統合環境はQuickBasicが一番好き。

河西 朝雄氏はどの本書いてもネタ変わってない気がする(藁
0169デフォルトの名無しさんNGNG
文字が左からうにょ〜っと出てきます。

CLS
p$ = "Basic World !"
FOR k = 1 TO LEN(p$)
PRINT " "; RIGHT$(p$, k)
FOR i = 1 TO 100000: NEXT i
NEXT k
END
0170デフォルトの名無しさんNGNG
QBASIC ってmidiは扱えないの?
PLAY文だと、スピーカーから豪快に「ピーポーパー!」と音が出るので、近所迷惑です。
0171デフォルトの名無しさんNGNG
時計ができたよ。
Delphi なんか目じゃねーな。

SCREEN 12
CLS
DO UNTIL a$ = "a"
LOCATE 15, 15
PRINT TIME$
a$ = INKEY$
LOOP
END
0172168NGNG
EXE形式とソース。

http://www.ac.wakwak.com/~mikage/web/lib/qb_lzh/bp400.lzh
http://www.ac.wakwak.com/~mikage/web/lib/qb_lzh/bp400s.lzh

QuickBasicで書いたのでPC-98で動かしてね。
i486DX2推奨。

力技で完成までこぎ着けたんで見るだけでも見てもらえれば嬉しいです。
0173デフォルトの名無しさんNGNG
>>172
サブルーチン名にピリオドが使えるなんて,初めて知ったよ.
力作ですね.98は無いので,動かせませんが.
0174デフォルトの名無しさんNGNG
そうか。漏れも486時代にプリンセスメーカーを買わないで、Qucik BASICを買ってれば、人生が変わったかも。
0175168NGNG
>>173
ピリオドで区切って意味的に分類しようとしてたのが見て取れてちょと懐かしい。
名前にピリオドが使えるのは確か先輩に教わった。
その先輩に出会わなかったら、今プログラム書いてないかも(´Д`;)

Anex86で動かしてみたけど、ウエイト関係0にして2Pまでが限界。
実際にi286-12MHzで開発してた時もあったけどまあこんなものだった。
BEEP音が若干変だけど一応動く。
0176デフォルトの名無しさんNGNG
しかしアメリカの本で面白いよね。
いまQBasic By Exampleていう本読んでるけど、PRINTとCLSとLETとENDの4つ終わっただけで
Congratulations!! You are now QBasic programmer!!
とか20行くらい使ってベタボメ。
0177デフォルトの名無しさんNGNG
>172
98ノートで動きました。

>175
N88-BASIC(86)でも、変数名にピリオドが使えました。
で、「構造体サポート」というジョークがありました(笑)。
0178デフォルトの名無しさんNGNG
入力した文字の文字コードを即座に出力する、画期的なプログラムです!

CLS
INPUT a$
PRINT ASC(a$)
END

これでもう、文字コード一覧表とにらめっこする必要はありません!!
しかも、フリーで使えます!!!
0179デフォルトの名無しさんNGNG
>178
そのコードだと、カーソルキーとかに使えない。
改良の余地があるな。
0180デフォルトの名無しさんNGNG
最近、不満がでてきた。
変数のタイプミスをしても、そのまま新しい変数宣言になってしまうので、タイプミスが発見できない。
これでは、あまりおおきなコードは書けない。
0181 (´ヘ`;)ハァNGNG
今ごろ気づいたのかよ
0182デフォルトの名無しさんNGNG
QBASIC ってレコードのメンバーに配列を使えないけど、これで何か、すごく困ることってありますか?
0183デフォルトの名無しさんNGNG
num.rec という記述があった。
どこの構造体のメンバーだろう、とソース中探し回ったがなかった。
よく考えたら、ピリオドを使ったnum.rec という名前の変数だった。
変数宣言が無いからわからなかった。
こういうところが困る。
0184 NGNG
QBASICでマウス呼び出す方法
ガイシュツ?
0185デフォルトの名無しさんNGNG
ミサイルコマンドもでき、できたよ(迎撃も何もできないけど)

SCREEN 12
CLS
PSET (0, 0)
c = 1
FOR i = 1 TO 450
PSET STEP(1, 1)
FOR j = 1 TO 50000: NEXT j
IF ((i MOD 10) = 0) THEN
IF c = 1 THEN
LOCATE 5, 30
PRINT "Missile is coming!"
c = -1
ELSE
LOCATE 5, 30
PRINT " "
c = 1
END IF
END IF
NEXT i
END

0186デフォルトの名無しさんNGNG
下から6行目のスペースが短くなっちゃた。
そこに18文字分の半角スペースを入れてください。
space$()使った方がよかったな。
0187デフォルトの名無しさんNGNG
おほしさまを作るコードです。

SCREEN 12
CLS

RANDOMIZE TIMER

DO
x = INT(RND * 800) + 1
y = INT(RND * 600) + 1
PSET (x, y)


FOR i = 1 TO 1000

x = INT(RND * 800) + 1
y = INT(RND * 600) + 1
PRESET (x, y)

NEXT i
LOOP WHILE (INKEY$ = "")
END


0188デフォルトの名無しさんNGNG
それ、PRESETはなんのためにあるの?
SEED同じにしないと消えない気がするけど・・・。
0189デフォルトの名無しさんNGNG
>>188
毎回1000回消してりゃ、どれかは消えるだろうってことじゃねーの?
0190デフォルトの名無しさんNGNG
ななめの線が動くコードです。

SCREEN 12
CLS
DO
FOR i = 0 TO 639
LINE (i, 0)-(639 - i, 479)
FOR j = 1 TO 2500: NEXT j
CLS
IF INKEY$ <> "" THEN
edc = 1
EXIT FOR
END IF
NEXT i
LOOP UNTIL edc = 1
END

0191デフォルトの名無しさんNGNG
しかくがいっぱい出てくるコードです。

SCREEN 12
CLS
sx = 0
sy = 0
lx = 639
ly = 439

FOR c = 1 TO 130
LINE (sx, sy)-(lx, ly), , B
sx = sx + 5
sy = sy + 5
lx = lx - 5
ly = ly - 5
LOCATE 1, 1
PRINT c
FOR i = 1 TO 100000: NEXT i
NEXT c
END


0192デフォルトの名無しさんNGNG
CLS
PRINT NOT 1
END

これで、結果が-2になるのですが、そういうもんなんですか?

0193デフォルトの名無しさんNGNG
1を16ビットの16進数で考えると
 ↓
0x0001
 ↓
NOTでビット反転
 ↓
0xfffe
 ↓
10進数(2の補数形式)へ戻すと
 ↓
-2

つまり、そういうもの。
0194デフォルトの名無しさんNGNG
0195デフォルトの名無しさんNGNG
>>182
構造体メンバーに配列が使えるようになったのは確かVB2あたりからだった
ような気がする。QuickBASIC 4.5も初代VBもダメじゃなかったかな。
0196デフォルトの名無しさんNGNG
やっぱSP-5030だな。
まぁオレは5031にしてたけど。
0197デフォルトの名無しさんNGNG
このバシック厨房ども!
0198デフォルトの名無しさんNGNG
QuickBASICとQuickCの混在で開発してた時代が懐かしい。
QuickBASIC用のサブルーチンをMASMで書いた事もあったなあ。
Windows DLLになってそういう事は全くしなくなったが。

ああQuickBASICじゃなくてQBASICか話題は。
そういやMS-DOS5.0のEDITコマンドは裏でQBASIC走らせてたよなあ。
エディタ機能の実体は同じだったって事か。
0199デフォルトの名無しさんNGNG
>>198
おGちゃん、ご飯はさっき食べたでしょ?
0200デフォルトの名無しさんNGNG
>>151
結局ちょっと気の利いたことやろうとすると何もできない中途半端な
BASICだよなあ。EXEも作れんし。BASICA(GW-BASIC)みたいなBLOAD
コマンドも駄目なんだっけ?
0201デフォルトの名無しさんNGNG
>>198
MSにしてはよく出来てると思ったら、そういうことだったのか。
0202デフォルトの名無しさんNGNG
First Basic っていうのを使えば、QBasic のソースをコンパイルしてEXEを作れるよ。
0203デフォルトの名無しさんNGNG
QBasic 関連のウイルスあるんだね。
http://www.symantec.com/region/jp/sarcj/data/w/w97m.celebrate.a.html
0204デフォルトの名無しさんNGNG
BASIC 関連ではこのページがすごい。
http://www2.airnet.ne.jp/sardine/langs/BASIC.html
0205デフォルトの名無しさんNGNG
アマゾンで注文してた
The revolutionary guide QBASIC
が届いたので読みたいが、Turbo Pascal の勉強が忙しくて読めないな。
0206デフォルトの名無しさんNGNG
LET a=1
LET b=2
LET c=a*b
PRINT a,b,c
LET b=b+1
PRINT a,b,c
LET c=a*b
PRINT a,b,c
END

これで、どういう出力結果になるか、という問題で、間違えちゃいました(w
変数が明示的に代入されるまでは、変化ないんですね。

0207デフォルトの名無しさんNGNG
お、QBASICスレ発見
0208デフォルトの名無しさんNGNG
bc.exe,link.exe,bcom45.lib,
この3つひろってくればEXEがつくれる。

ていうか、QuickBASIC4.5(US)まるごと落ちてるし・・・
0209デフォルトの名無しさんNGNG
QuickBASIC4.5 日本語版 PC98用 きれいな状態で補完してある(藁
0210デフォルトの名無しさんNGNG
>>150
かなり前の書き込みなんで今も見てるか分かりませんが、
使ってる本の書名教えてもらえないでしょうか。
0211デフォルトの名無しさんNGNG
エラーコードのリストってありませんかね?
できれば日本語で・・・・ないよなぁ
0212デフォルトの名無しさんNGNG
>>210
日本語の本なのですが、あとからよく読みなおしてみるとあんまり良い本とは思えないので教えません(w

英語の本なら、The revolutionary guide QBASIC
ていうのがQBasicの本としては高度らしいです。
3dとかも載ってるみたいです。
私も持ってますがまだ読んでません。

もし、単にQBasicの入門書が欲しい、ということであれば、
QBasic by example
という本がとてもわかりやすいです。
おすすめです。
0213デフォルトの名無しさんNGNG
今、私はJavaの入門書を読んでいるのですが、サンプルコードを打ち込むところで、こういうものにでくわしました。

 JButton btn1= new JButton("Button1");
 JButton btn2= new JButton("Button2");
 JButton btn3= new JButton("Button3");
 JButton btn4= new JButton("Button4");
 JButton btn5= new JButton("Button5");
 JButton btn6= new JButton("Button6");

似たようなコードを6行も打つ場面です。
面倒くさくてイヤになりますよね。
そこで私はさっそくQBasicでこんなプログラムを作りました。

CLS
OPEN "javasrc.txt" FOR OUTPUT AS #1
FOR i = 1 TO 6
  PRINT #1, USING "JButton btn#"; i;
  PRINT #1, "= new JButton(" + CHR$(34);
 PRINT #1, USING "Button#"; i;
 PRINT #1, CHR$(34);
 PRINT #1, ");"
NEXT i
PRINT "done"
END

実行すると javasrc.txt という名前のテキストファイルに
上記の6行のコードが出力されるので、あとはそれをエクスプローラーからメモ帳で開いてJava用のエディターにコピペすればオッケー。
普通はこういう作業はPerlでやるそうですが、私はまだPerlの本は5ページしか読んでないので、QBasicでちゃちゃっと作って見ました。
0214デフォルトの名無しさんNGNG
がんがれ!
0215ごくきんNGNG
今日はじめてこの掲示板を見て初めて書き込みします。初心者で不勉強な質問で申し訳
ないのですが、どうしてもわからないので、知ってる方がいたら、教えてください。
QBasicでは、単純変数をグローバル変数にするのは説明に出てるのですが、
配列変数はそうならないのでしょうか?
0216(  _。。)_ バタ。 ◆lUd9keO2 NGNG
>>215 DIM SHARED
0217ごくきんNGNG
>215の質問は舌足らずでした。モジュールファイルをまたがって使える
配列変数はどうやるか、でした。
シングルモジュールで動作していたものを無理やり、
マルチモジュールファイルにして、動かそうとしたら、サブのモジュール
ファイルに処理が移ったとたんに、配列変数が初期化されてるらしいのです。
(我ながら正しい説明になってるか?疑問だ?)どんなもんでしょう?
0218デフォルトの名無しさんNGNG
Windows2000で、デスクトップにショートカットを置いて、そのアイコンをダブルクリックすると、自動的にDOSの画面になって、USモードになって、qbasic.comを起動する、というプログラムを作りたいのですが、どうしたらいいですか。
0219デフォルトの名無しさんNGNG
>>218
バッチファイル書けば?
0220デフォルトの名無しさんNGNG
DOSのバッチファイルですか、、、
1回も書いたこと無い、、、
0221デフォルトの名無しさんNGNG
QBできるんだったら簡単だよ〜ん
0222デフォルトの名無しさんNGNG
デスクトップ上にq.batという名前のテキストファイルを作って、
C:\q\qbasic.com
と書いて上書き保存してダブルクリックしたらできました。
0223デフォルトの名無しさんNGNG
あげちゃう!
0224:NGNG
会社のWindows MeのマシンでDOSプロンプトを立ち上げてFirst Basicを起動したんだけど、画面の表示がおかしくて使えないんですよ。
0225:NGNG
400個のファイルを作りたくて、以下のソースを書いたんですけど、
Bas file name or number
って言われるんですよ〜

CLS
FOR i = 1 TO 400
  OPEN "i.txt" FOR OUTPUT AS #i
  CLOSE #i
NEXT i
END

0226デフォルトの名無しさんNGNG
関連リンク
「ポケコンBASICについて真面目に考える」
http://pc.2ch.net/test/read.cgi/tech/1022907518/
0227デフォルトの名無しさんNGNG
>>225
3〜4行目を以下のように変更してみれば?

  OPEN MID$(STR$(i), 2) + ".txt" FOR OUTPUT AS #1
  CLOSE #1
0228:NGNG
>>227
すごいです。言われたとおりにやったらできました。
でも、mid$の意味が理解できません。
0229デフォルトの名無しさんNGNG
>>228
STR$で0以上の数値を文字列にすると1文字目にスペースが入るので、
MID$で2文字目以降を取り出してる。
そう考えると3行目は次のやり方でもいいと思う。(LTRIM$でスペースを削除しています。)

OPEN LTRIM$(STR$(i)) + ".txt" FOR OUTPUT AS #1
0230:NGNG
>>229
今度はよく理解できました。
ありがとうございます。まさにプロの仕事といった印象を受けました。
■ このスレッドは過去ログ倉庫に格納されています