トップページ⇒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/
0002デフォルトの名無しさんNGNG
ネタ?
0003デフォルトの名無しさんNGNG
牛ベーシック。最近ちょっと狂ってる。
0004デフォルトの名無しさんNGNG
アマゾンUSAのQBASICのカテゴリー
http://www.amazon.com/exec/obidos/tg/browse/-/3988/ref=br_bx_c_2_7/002-0036773-7796810
0005デフォルトの名無しさんNGNG
さっそく質問なんだけど、
WIDTH 80,20
ってやるとエラーになるよ。
QBASICではWIDTH使えないの?
0006デフォルトの名無しさんNGNG
QBASIC すげぇおもしれぇ。
中毒になりそう。
0007デフォルトの名無しさんNGNG
Quick Basic か・・・また古いものを・・なつかスイ。
0008デフォルトの名無しさんNGNG
くさかべ風に正確に言うと、完全にQuick Basic と同じではありません。
もちろんわかっていってるとは思いますが、Quick BAsic のサブセット版のようなものがQBAISCです。
でもほとんどQuick Basicと同じと言っていいみたいです。
0009デフォルトの名無しさんNGNG
Win32なリソースにアクセスできるの?
0010デフォルトの名無しさんNGNG
MS-DOSプロンプトでしか動きません。
0011デフォルトの名無しさんNGNG
二番目のリンクのサンプルプログラムの項……
なめ�dのかい!
0012デフォルトの名無しさんNGNG
>>5
>>1のリンクの
http://www.geocities.co.jp/Milano/8000/qbasic/
のQBasic関数一覧によると WIDTH [桁数] [,行数] で使えるみたいだよ。

つーか LOCATEは y,x で指定するのに POINT は (x, y) で指定するのね。
なんかややこしい。
Quick Basicとの違いといえばQBASICではコンパイルできなくてインタプリタのみ
とかなんとかなんかの雑誌で見た気がする。あとは知らん。
日本語が使えないから日本語のコメント入れたい場合はメモ帳でプログラム打って.basで保存すればよい
とかいうのもなんかの雑誌で見た気がする。
0013デフォルトの名無しさんNGNG
グラフィック機能は面白そうだね。出力先はどこ?
0014デフォルトの名無しさんNGNG
>>12
WIDTH 40.20
とやったけど、なぜか
Ileegal function call
といわれてしまうのよ。
0015デフォルトの名無しさんNGNG
そりゃまあ、小数点で指定しては……
0016デフォルトの名無しさんNGNG
ぐは。間違えた。

 10 CLS
 20 WIDTH 40,20
でも、同じエラーでした。
001712NGNG
>>16
ちょっとまて。
今気付いたけどQBASICって行番号使えたっけ?
001812NGNG
>>17
おぉ、使える。
どこかで見た行番号を使えないというのは嘘だったのか!
001912NGNG
>>16
今Googleとかでいろいろ調べていたところ、
N88BASIC for WinとQBASICとを比較しているサイトで
QBASICのリストでコメント文でWIDTHがはぶかれているのを見た。
結局使えない可能性が濃厚。
0020デフォルトの名無しさんNGNG
>>18
行番号が使えなくて困るようなことってある?
002112NGNG
>>20
ない。
けど使いたかったの。
0022デフォルトの名無しさんNGNG
調べてくれてありがとう。
疑問が解けました。
0023デフォルトの名無しさんNGNG
でも行番号はただのラベルであって、番号順に実行したりしないよ
0024デフォルトの名無しさんNGNG
え、マジ!?
そんなのBASICじゃない!!
0025デフォルトの名無しさんNGNG
番号順に実行しない、ってどういう意味?
基本的には上から下に流れていくんでしょ。

もしかして、

 20 PRINT "A"
 10 PRINT "B"

というコードで、
 B
 A
という出力にはならない、っていう意味?
0026デフォルトの名無しさんNGNG
>>25
今試してみたら、
 A
 B
になった。
002712NGNG
いやぁ、っていうか俺もLINEで線引こうとしたら
WIDTHと同じ Ileegal function call
ってエラーがでたよ。

そこで2〜3年前のベーマガやらいろいろ調べてみると
そこに載っていた全部のプログラムがSCREENを使っていた。
SCREEN モード, カラースイッチ, 書き込みページ, 表示ページ
で、このモードの部分を指定してやるとLINEを使うことができた。
どうやらモードの部分は1〜12まで指定できるらしい。数字が大きいほど解像度が上がる。

つーかこれってQuickBasicやN88Basicでは当たり前のことなの?
N88 for Winでは普通にいけたが…(つーか初めからモードが3しか指定できない)
ちょっと戸惑いそうだぞ…

つーかN88 for WinではLOCATEは0,0からだが、QBasicでは1,1かららしい。もう知らん。
ちなみにLOCATE 0,0とするとIleegal function callが出た。そういう系のエラーらしい。
0028デフォルトの名無しさんNGNG
>>27
調べてくれてありがとう。
感激しました。
「QBASICはSCREEN」
これを標語にして覚えます。
0029デフォルトの名無しさんNGNG
CABの中を探し回ってたけど、CABの中じゃなかったのね。
全部で641KBか。
ベーマガに、フライトシミュのコードがあるよ。
0030デフォルトの名無しさんNGNG
あっちこっちで言ってる「冬厨」ってこういう事か…。とこのスレをみて思った。

漏れは昔 (PC98の) QuickBASIC やってたけど、今更 QBasic はあんまり関心しねぇなぁ。

Borland C++ が無料で手に入る時代だよ?
まぁ、たしかに Win32 だとグラフィック扱うまでの敷居がとてつもなく高い事はたしかだけど。

茨の道を歩む覚悟がないと漏れのような中途半端に落ち着くこと確実。

あ、誰か ナツメから出てた QuickBASIC ハンドブック Vol.2 いる?
QBasic やるなら 関数リファレンスとしてスゲェ役に立つけど。
0031デフォルトの名無しさんNGNG
>あっちこっちで言ってる「冬厨」ってこういう事か…。

自己紹介ご苦労。
0032デフォルトの名無しさんNGNG
>>31

よくわかったね。
0033デフォルトの名無しさんNGNG
WIDTH 使えたよ。
ただし、桁は40と80だけで、行は25以上。
0034デフォルトの名無しさんNGNG
ここにゲームが10本あった。
http://www.yamagame.com/MyWeb/QBASIC/QBasGame.html
0035デフォルトの名無しさんNGNG
>>33
今試したらできました。
教えてくれてありがとう。
0036デフォルトの名無しさんNGNG
>>34 さんの紹介してくれたページに

>Cntl+Pause(Break) でプログラムを終了できる

というのがあった。これ重要でしょ。特に無限ループをすぐ作る私みたいな厨にとっては。
0037デフォルトの名無しさんNGNG
CLS
sum = 0

 FOR i = 1 TO 100
  sum = sum + .01
  NEXT i

PRINT sum
END

このコードを実行すると、漏れのマシンでは
.9999993
になった。十進BASICでは、この欠点は改善されているようだが、日本語版しかないので、ソースをガイジンと共有できない。
どうしたものか。
0038デフォルトの名無しさんNGNG
http://www.bbcbasic.com/
ここのFAQ笑えた。

Q. What is QBasic?

A. QBasic is a BASIC, in the same way as a racehorse with a broken leg is still a racehorse.
QBasic's limited features and inherent constraints make it beloved by 16 year-olds and others who don't know any better.
Like a racehorse with a broken leg, it should be shot.
0039デフォルトの名無しさんNGNG
いま fj のアーカイブ調べてわかりました。
BCD(Binary Coded Decimal)というライブラリーを使うと、浮動小数点の演算も正確にできるそうです。
で、質問なんですが、QBASIC 用の BCD ライブラリーってあるんですか?
0040デフォルトの名無しさんNGNG
ベーマガのサイト行け
0041デフォルトの名無しさんNGNG
>>38
どういう意味ですか?
QBasic は足の折れた競争馬みたいなもんだ。って事ですか?
0042デフォルトの名無しさんNGNG
>38
今はフリーのコンパイラが何種類か手に入ると言っても、
FD1枚以下のサイズで統合環境を提供できるものは、なかなか無いだろう。

>39
BCD演算でも、桁落ち誤差は発生するよ。
倍精度以上の計算がしたかったら、それなりの言語を選ぶべき。
0043デフォルトの名無しさんNGNG
GT−RのアテーサはFRで必要な時だけ
フロントに駆動をかけてくれる。
つまり、FRのスポーツ感はそのまんま。
パワードリフトなんかも、お茶の子さいさいなワケだ。
0044(4WD)&rlo;(DW4)&rle;NGNG
>>43
よくわからんが。
つぎのNSXは前輪が電動で動く4WDらしいぞ。
電子センターデフのアテーサよりいいかも。
0045デフォルトの名無しさんNGNG
>43
言ってる事はよくわからんが、とにかくすごい自身だ
0046デフォルトの名無しさんNGNG
>>34
SHOT16ってゼビウスじゃん。
こんな小さいソースで、よく出来てるなあ。
花火みたいに爆発する敵(名前忘れた)もちゃんと出てくるし。
0047デフォルトの名無しさんNGNG
>BCD演算でも、桁落ち誤差は発生するよ。
これって例えば、
A=10/3=3.33333
3*A =>9.999999
になるとか、そういうことですか?

とりあえず、今は、
FOR i=1 TO 100
sum=sum+0.01
NEXT i
print sum

これできっかり1を出してくれるBASICの実装がほしいんです。
現在までの調査では、「十進BASIC」しか世界中探しても存在しないようです。
0048デフォルトの名無しさんNGNG
>47
桁落ち誤差は、大きな数と小さな数を足した時に起きる。
0049デフォルトの名無しさんNGNG
>47
F-BASIC for Win も、BCD演算できるよ。
あと、U-BASIC86とか、いろいろある。
どっちみち、0.01を100回足すことだけにこだわってるようじゃ、
計算誤差は避けられない。
0050デフォルトの名無しさんNGNG
>47
MSX-BASICもBCDだったな。
実機を使わなくても、エミュでじゅうぶん実用的。
0051デフォルトの名無しさんNGNG
QBASIC /H で起動すると、WIDTH 80,50 が実行できる。
0052デフォルトの名無しさんNGNG
コンピューターって、整数演算はそれなりにこなすけど、小数演算は、あんまり使えないんだね。
いままでコンピューターに過大な期待を抱きすぎていました。
コンピューターがあればなんでも計算できると思ってました。
いまでは、コンピューターは、単なる高価でまぬけな箱です。
数学の問題に取り組むには、コンピューターはあくまで補助道具、ニンゲンの頭が一番重要とわかりました。
0053デフォルトの名無しさんNGNG
8ビットパソコンが出たとき、この問題で電卓以下だと笑われた。
今でも内蔵時計の精度は低いしね(笑)。
まあ、何とかとハサミは使いよう。
演算精度が気になるなら、それ用の言語を選択すればよろしい。
BASICは元々初心者のプログラミング教育用に作られたのだ。
0054デフォルトの名無しさんNGNG
ワタクシは、BASICを使って小学生、中学生くらいの問題を全部解いてやろうとか考えていたのですが、
「0.01を100回足す」
くらいなら公文式をやってる子なら6歳くらいでもできるのに、俺様の1GHZのマシンで間違った答えを出しやがることに謝罪と保証を要求したい気分になってるのであります。
0055デフォルトの名無しさんNGNG
>54
パソコンの問題じゃなくて、大昔のBASICを使ってるから。
倍精度で計算すれば、かなりマシになる。
Dim sum As Double
0056デフォルトの名無しさんNGNG
>>47 >>52 >>54
マジレスすべきか迷ったけど、一応書いてみる。

人間の10進数で 1/3 や 1/9 を正確に表現できないよーに、
コンピュータの16進数では 1/10 や 1/100 を正確に表現できないんです。

0.3333333 を3回足しても 0.9999999 でそ。それと全く同じです。
0.1 とか 0.01 は16進数で書くと循環小数になるんで、仕方なく適当な桁で切り捨てやがります。
これが間違った答えが出る原因であります。

所詮、人間とコンピュータは相容れぬもの。
0057デフォルトの名無しさんNGNG
その代わり、1/2+1/4+1/8+1/16+1/32+1/64なんかは2進数で
割り切れるから、非常に正確(笑)。
0058デフォルトの名無しさんNGNG
>>56
まあ、BASIC みたいに子供のおもちゃみたいな言語では仕方ないよ
有理数を型として持ってる言語を使えってことだな
0059デフォルトの名無しさんNGNG
>>58
つまり、

「型なし言語逝ってよし」
http://pc.2ch.net/test/read.cgi/tech/986355498/

ということなんですか?
0060デフォルトの名無しさんNGNG
>>52
そんなあなたにFortran(藁
0061デフォルトの名無しさんNGNG
(1)Fortran って十進計算に対応してるの?
(2)小数点の丸め誤差に悩まされることがないの?
(3)いろんな計算が正確にできるの?
0062デフォルトの名無しさんNGNG
>>59
そこのスレッドタイトルの「型」は変数の型であって、値の型ではないよ
実際問題、値の型がない言語なんてごく希だよ(無いわけじゃない)
0063デフォルトの名無しさんNGNG
ハードとソフトのギャップだよ。
10バイトだかの浮動小数点演算装置を内蔵してるのに、
なんで単精度実数が8ビット時代と同じ4バイトなんだ?
0064デフォルトの名無しさんNGNG
>>53
> 今でも内蔵時計の精度は低いしね(笑)。
( ´,_ゝ`)プッ
0065デフォルトの名無しさんNGNG
XPによってNT系OSの硬牢性は一段と高まったと思うよ。
正直NT4.0マンセーな人にも使って欲しいと思う。
0066デフォルトの名無しさんNGNG
>>65
つーかGDIをカーネルモードで動かすのヤメレっつってんだよ!!
3.5はヨカタ
0067デフォルトの名無しさんNGNG
34のゼビウスで、237面まで行った。

そろそろQBASICの話題に戻ってほしい。
0068デフォルトの名無しさんNGNG
Alpha21164-600MHzとHPのPA-8200/240MHzが張り合ってたよな。
クロック数は まったく関係ない。
Alpha21264は同クロックの21164より約2倍速い。
で21164は同 クロックのPentiumIIの約3倍。
PentiumIVがSSE2使ってもAlphaの方が はやいようん。
EV7で打ち止めだけど。
0069デフォルトの名無しさんNGNG
ここにいっぱいソースやツールがあった。
http://www.qbasic.com/tutorial.shtml
コンパイラやアセンブラ変換ツールまである。
0070デフォルトの名無しさんNGNG
QB PDS7.1 って何?
0071デフォルトの名無しさんNGNG
PDSは、Professional Development Systemの略ね。
QuickBasicの後継としてM$が開発してたみたい。
QuickBasic Extended とも呼ばれてた。
しかし、すぐVisualBasicに取って代わられた。

History of BASIC
http://www.phys.uu.nl/~bergmann/history.html
0072パケドラマニヤNGNG
英語版のMSDOSに入っているQBASICだったら日本語表示
アプリ開発できるんじゃねーの。憶測で物を言ってるけど。
スクリーンモード0とかで日本語表示ができなくても、
スクリーンモード11とか12だったらDOS/V環境で日本語表示
できると思うんだよね。
いまさら試すのもなんだけどな。
0073デフォルトの名無しさんNGNG
>72
やってみたいので、何かヒントください。
いちおうネットで調べた見たけど、そういう試みはまだなさそう。
0074デフォルトの名無しさんNGNG
>>73
コンパイラがあれば、日本語入ってても大丈夫なんだけど。
開発環境だと、ちょっと意味無し。

メモ帳で、以下のTEST.BASを作成。
SCREEN 12
PRINT "こんにちは、世界"

コマンドプロンプト(USと打たない状態)で、
QBASIC TEST.BAS と入力。
画面は表示されないが、[F5]を押す。
007574NGNG
間違えた、
QBASIC2 TEST.BASと入力。
007673NGNG
>74
すごい! 「こんにちは、世界」が表示されました。
編集画面には戻れないし、DOS窓自体も強制終了ですけど。
0077デフォルトの名無しさんNGNG
やっぱり、QBASIC2がミソでしょうか?
HELPなんてサイズが同じですし。
昨日間違って、2のHELPをクリックしたら、
一番上に日本語のメニュー行が出てきて、驚きました。

QBASIC2は、もしかして日本語化を途中で断念した痕跡ですか?
007874NGNG
QBASIC2に関しては、よく知らないです。
たまたま動かしてみたら、動いただけ。
いちおー画面が表示されてないだけで、[Alt]-F-X ってやると終了できる。

BCってプログラムがあれば、コンパイルできるんだけどねぇ。
そうすれば、普通のエディタで書いて、コンパイルして、
日本語を表示するプログラムが実行できるよ。
>>69 のところでコンパイラを探してみれば?
0079デフォルトの名無しさんNGNG
>78
サイト丸ごと落としたら、9MBありました。
コンパイラは、FirstBASICとASICとMoonRockでした。
前の2つはシェアウェア、残りは類似ソースのコンパイラでした。
0080質問NGNG
http://www.qbasic.com/chapter2.txt
ここの説明を見てたら、

>The "numbers" category is further broken down into four areas. The
> regular type, called integers, require no symbol, or can be followed by a
> %. They can be in the range of -32767 to 32767. Integers are what you
> will be using most of the time. Another type of integer, long integers,
> have a range of -2 billion to 2 billion.

と書いてあります。

(1)Integer % -32767 to 32767
(2)long integers, & -2 billion to 2 billion
(3)short decimal !
(4)long decimal #
となるようですが、具体的な使い方がわかりません。

LET A = 0.0001!
という感じでつかうのでしょうか、それとも
LET A! = 0.0001
でしょうか。
0081仕様書無しさんNGNG
どっちでもいいのでは。

LET A! = 0.0001!

と書いておけば一番確実だけど。

それにしても懐かしいな〜 LET。
代入ステートメントがある言語なんて、ここ10年触ってない。
0082デフォルトの名無しさんNGNG
>80
後ろに何も付いてなければ、数値は!扱いになります。
変数も宣言なしで使うと、!型になります。
つまり、!は付けても付けなくても同じです。
なお、LETは省略してもオッケーです。
008374NGNG
Microsoftのコンパイラは、今ではごみ同然ですが、
さすがにどこかに落ちていたりはしないようですね。
BorlandはTurboCppとか落とせるのに。

変数を宣言せずに使うと Integer 型になると思ってたが、
DEFINT A-Z と書いている場合だけだったか。
LET A = 0.0001
PRINT A
とやるとちゃんと 0.0001と表示されるね。

その時代は、WORK% とか X$ とか書きましたが、いまどきは使わないほうがいいです。
ちゃんと宣言してから使いましょう。
DIM iRdFile AS INTEGER
DIM nRow AS LONG
DIM shtTaxRate AS SHORT
DIM dblXPos AS DOUBLE
DIM sMessage AS STRING * 60
ただ、調子に乗って長い名前にしすぎるとメモリの無駄ですので。
0084デフォルトの名無しさんNGNG
>83
整数ですむ場合は、整数のほうが速いし、メモリ食わないので、
たいてい最初に、DEFINT A-Zと書いてましたね。当時は。
0085仕様書無しさんNGNG
>>84
Dr.D にそう奨められましたね。当時は。
0086デフォルトの名無しさんNGNG
>>83
変数名にまでメモリ効率を求めたあのころ・・・・まるで遠い昔のようだ。
無理な省略で自分でも使途がわからなくなったりしたな。
0087デフォルトの名無しさんNGNG
Dr.D ってだれですか?
あとみんな収入がないのにコンピューター使ってたんだね。
漏れは27才だけど最近ようやくBASICをはじめたよ。
0088デフォルトの名無しさんNGNG
デバッグ博士だっけ?
月刊マイコンBASICマガジンという雑誌の中に居た(今も居る)人デス。
0089デフォルトの名無しさんNGNG
27歳ならまわりに元ベーマガ読者が結構いると思われ。プログラマの知り合いがいたら
聞いてみな。
0090デフォルトの名無しさんNGNG
>>85
ワラタ
0091デフォルトの名無しさんNGNG
>>83
>Microsoftのコンパイラは、今ではごみ同然ですが、
>さすがにどこかに落ちていたりはしないようですね。

そうか?
海外じゃ結構おおっぴらにWebサイトに置いてたりするぞ。
頻繁にURLが変わってるけどな(w
0092デフォルトの名無しさんNGNG
構造化されてると聞いていたが、ソースを見れば見るほど構造化されていないように見える。
0093デフォルトの名無しさんNGNG
>>92
何を言ってるんだ (`д´)ノ ゴルァ!!

「ローカル変数」という概念が導入されただけで感激モンだったんだ〜
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
            ∧_∧
          ( ´Д⊂ヽ
          ⊂    ノ
           人  Y
          し (_)
009474NGNG
そうか、海外のサイトを探せばあるのかな。
まあ、ワレズを探してまで、QBasicにこだわる事もないでしょう。
今、BC7\を圧縮してみたら、5MBもあったよ。

ところで、QBX.EXEとQBASIC.EXEってのは別物なの?
0095http:// cj3203940-a.shmki1.ky.home.ne.jp.2ch.net/NGNG
guest guset
0096デフォルトの名無しさんNGNG
>94
BC7をMXで公開してください。
009774NGNG
>>96
手元にないので、明日まで待たれよ。DLしとく。
0098よろしく>74さんNGNG
qbasic.comのbasファイル全部に目を通してみました。
めぼしいのをいくつか紹介。

●ゲーム
perl3 …… パックマン、表示もサウンドも文句なし
oozes …… ロードランナー、カギの取り方がわからない
baldio …… スーパーマリオ、画面は小さい

●スクリーンセーバー系デモ
micro …… らせん構造、異常に速いと思ったらスクロール使用
puddle …… 渦
firework …… 花火
amobe …… 模様

●非実用系
txtreng …… 3Dカー・ドライブ、セーバーの迷路ライク、遅すぎ
windowsx …… ジョークソフト、OSもどき

zipファイルもbasと同数ぐらいあるので、ゆっくり見ていきます。
0099デフォルトの名無しさんNGNG
>>98
レビューありがとう。
次回も期待しております。
0100デフォルトの名無しさんNGNG
100
0101デフォルトの名無しさんNGNG
今日、QUICK BASIC の本を4冊買ってきた。

(1)最新はじめてのQUICK BASIC めざせ構造化!ここまできたBASIC 河西朝雄 技術評論社
(2)BASICでわかる数学 八鍬幸信 蝦名信秀
(3)QUICKBASIC入門 dれでもわかるプログラミング 林直つぐ 室井勝子 鈴木美枝子
(4)QUICK BASIC 中級プログラミング 小池慎一 森 博

内容はまだ読んでないから知らない。
■ このスレッドは過去ログ倉庫に格納されています