QBASIC

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
ネタ?
牛ベーシック。最近ちょっと狂ってる。
4デフォルトの名無しさん:02/01/03 22:51
5デフォルトの名無しさん:02/01/03 23:09
さっそく質問なんだけど、
WIDTH 80,20
ってやるとエラーになるよ。
QBASICではWIDTH使えないの?
6デフォルトの名無しさん:02/01/03 23:32
QBASIC すげぇおもしれぇ。
中毒になりそう。
7デフォルトの名無しさん:02/01/03 23:41
Quick Basic か・・・また古いものを・・なつかスイ。
くさかべ風に正確に言うと、完全にQuick Basic と同じではありません。
もちろんわかっていってるとは思いますが、Quick BAsic のサブセット版のようなものがQBAISCです。
でもほとんどQuick Basicと同じと言っていいみたいです。
Win32なリソースにアクセスできるの?
10デフォルトの名無しさん:02/01/03 23:57
MS-DOSプロンプトでしか動きません。
二番目のリンクのサンプルプログラムの項……
なめdのかい!
12デフォルトの名無しさん:02/01/04 00:01
>>5
>>1のリンクの
http://www.geocities.co.jp/Milano/8000/qbasic/
のQBasic関数一覧によると WIDTH [桁数] [,行数] で使えるみたいだよ。

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

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

もしかして、

 20 PRINT "A"
 10 PRINT "B"

というコードで、
 B
 A
という出力にはならない、っていう意味?
26デフォルトの名無しさん:02/01/04 23:14
>>25
今試してみたら、
 A
 B
になった。
2712:02/01/04 23:49
いやぁ、っていうか俺も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が出た。そういう系のエラーらしい。
28デフォルトの名無しさん:02/01/05 23:37
>>27
調べてくれてありがとう。
感激しました。
「QBASICはSCREEN」
これを標語にして覚えます。
29デフォルトの名無しさん:02/01/05 23:56
CABの中を探し回ってたけど、CABの中じゃなかったのね。
全部で641KBか。
ベーマガに、フライトシミュのコードがあるよ。
あっちこっちで言ってる「冬厨」ってこういう事か…。とこのスレをみて思った。

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

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

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

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

自己紹介ご苦労。
>>31

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

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

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

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

PRINT sum
END

このコードを実行すると、漏れのマシンでは
.9999993
になった。十進BASICでは、この欠点は改善されているようだが、日本語版しかないので、ソースをガイジンと共有できない。
どうしたものか。
38デフォルトの名無しさん:02/01/07 01:30
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.
39デフォルトの名無しさん:02/01/07 02:43
いま fj のアーカイブ調べてわかりました。
BCD(Binary Coded Decimal)というライブラリーを使うと、浮動小数点の演算も正確にできるそうです。
で、質問なんですが、QBASIC 用の BCD ライブラリーってあるんですか?
40デフォルトの名無しさん:02/01/08 09:28
ベーマガのサイト行け
>>38
どういう意味ですか?
QBasic は足の折れた競争馬みたいなもんだ。って事ですか?
42デフォルトの名無しさん:02/01/08 23:20
>38
今はフリーのコンパイラが何種類か手に入ると言っても、
FD1枚以下のサイズで統合環境を提供できるものは、なかなか無いだろう。

>39
BCD演算でも、桁落ち誤差は発生するよ。
倍精度以上の計算がしたかったら、それなりの言語を選ぶべき。
43デフォルトの名無しさん:02/01/08 23:27
GT−RのアテーサはFRで必要な時だけ
フロントに駆動をかけてくれる。
つまり、FRのスポーツ感はそのまんま。
パワードリフトなんかも、お茶の子さいさいなワケだ。
44(4WD)&rlo;(DW4)&rle;:02/01/08 23:39
>>43
よくわからんが。
つぎのNSXは前輪が電動で動く4WDらしいぞ。
電子センターデフのアテーサよりいいかも。
>43
言ってる事はよくわからんが、とにかくすごい自身だ
46デフォルトの名無しさん:02/01/08 23:51
>>34
SHOT16ってゼビウスじゃん。
こんな小さいソースで、よく出来てるなあ。
花火みたいに爆発する敵(名前忘れた)もちゃんと出てくるし。
47デフォルトの名無しさん:02/01/08 23:52
>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」しか世界中探しても存在しないようです。
48デフォルトの名無しさん:02/01/09 00:01
>47
桁落ち誤差は、大きな数と小さな数を足した時に起きる。
49デフォルトの名無しさん:02/01/09 00:07
>47
F-BASIC for Win も、BCD演算できるよ。
あと、U-BASIC86とか、いろいろある。
どっちみち、0.01を100回足すことだけにこだわってるようじゃ、
計算誤差は避けられない。
50デフォルトの名無しさん:02/01/09 00:09
>47
MSX-BASICもBCDだったな。
実機を使わなくても、エミュでじゅうぶん実用的。
51デフォルトの名無しさん:02/01/09 00:54
QBASIC /H で起動すると、WIDTH 80,50 が実行できる。
52デフォルトの名無しさん:02/01/09 01:14
コンピューターって、整数演算はそれなりにこなすけど、小数演算は、あんまり使えないんだね。
いままでコンピューターに過大な期待を抱きすぎていました。
コンピューターがあればなんでも計算できると思ってました。
いまでは、コンピューターは、単なる高価でまぬけな箱です。
数学の問題に取り組むには、コンピューターはあくまで補助道具、ニンゲンの頭が一番重要とわかりました。
53デフォルトの名無しさん:02/01/09 01:28
8ビットパソコンが出たとき、この問題で電卓以下だと笑われた。
今でも内蔵時計の精度は低いしね(笑)。
まあ、何とかとハサミは使いよう。
演算精度が気になるなら、それ用の言語を選択すればよろしい。
BASICは元々初心者のプログラミング教育用に作られたのだ。
54デフォルトの名無しさん:02/01/09 01:34
ワタクシは、BASICを使って小学生、中学生くらいの問題を全部解いてやろうとか考えていたのですが、
「0.01を100回足す」
くらいなら公文式をやってる子なら6歳くらいでもできるのに、俺様の1GHZのマシンで間違った答えを出しやがることに謝罪と保証を要求したい気分になってるのであります。
55デフォルトの名無しさん:02/01/09 01:53
>54
パソコンの問題じゃなくて、大昔のBASICを使ってるから。
倍精度で計算すれば、かなりマシになる。
Dim sum As Double
>>47 >>52 >>54
マジレスすべきか迷ったけど、一応書いてみる。

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

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

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

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

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

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

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

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

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

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

BCってプログラムがあれば、コンパイルできるんだけどねぇ。
そうすれば、普通のエディタで書いて、コンパイルして、
日本語を表示するプログラムが実行できるよ。
>>69 のところでコンパイラを探してみれば?
79デフォルトの名無しさん:02/01/12 00:22
>78
サイト丸ごと落としたら、9MBありました。
コンパイラは、FirstBASICとASICとMoonRockでした。
前の2つはシェアウェア、残りは類似ソースのコンパイラでした。
80質問:02/01/12 01:46
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
でしょうか。
81仕様書無しさん:02/01/12 01:50
どっちでもいいのでは。

LET A! = 0.0001!

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

それにしても懐かしいな〜 LET。
代入ステートメントがある言語なんて、ここ10年触ってない。
82デフォルトの名無しさん:02/01/12 02:25
>80
後ろに何も付いてなければ、数値は!扱いになります。
変数も宣言なしで使うと、!型になります。
つまり、!は付けても付けなくても同じです。
なお、LETは省略してもオッケーです。
8374:02/01/12 02:44
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
ただ、調子に乗って長い名前にしすぎるとメモリの無駄ですので。
84デフォルトの名無しさん:02/01/12 02:49
>83
整数ですむ場合は、整数のほうが速いし、メモリ食わないので、
たいてい最初に、DEFINT A-Zと書いてましたね。当時は。
85仕様書無しさん:02/01/12 03:43
>>84
Dr.D にそう奨められましたね。当時は。
86デフォルトの名無しさん:02/01/12 03:52
>>83
変数名にまでメモリ効率を求めたあのころ・・・・まるで遠い昔のようだ。
無理な省略で自分でも使途がわからなくなったりしたな。
87デフォルトの名無しさん:02/01/12 03:52
Dr.D ってだれですか?
あとみんな収入がないのにコンピューター使ってたんだね。
漏れは27才だけど最近ようやくBASICをはじめたよ。
デバッグ博士だっけ?
月刊マイコンBASICマガジンという雑誌の中に居た(今も居る)人デス。
89デフォルトの名無しさん:02/01/12 03:57
27歳ならまわりに元ベーマガ読者が結構いると思われ。プログラマの知り合いがいたら
聞いてみな。
90デフォルトの名無しさん:02/01/12 04:04
>>85
ワラタ
>>83
>Microsoftのコンパイラは、今ではごみ同然ですが、
>さすがにどこかに落ちていたりはしないようですね。

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

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

ところで、QBX.EXEとQBASIC.EXEってのは別物なの?
guest guset
96デフォルトの名無しさん:02/01/13 03:32
>94
BC7をMXで公開してください。
9774:02/01/13 07:40
>>96
手元にないので、明日まで待たれよ。DLしとく。
98よろしく>74さん:02/01/13 23:09
qbasic.comのbasファイル全部に目を通してみました。
めぼしいのをいくつか紹介。

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

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

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

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

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

内容はまだ読んでないから知らない。
10274:02/01/14 20:50
>>101
4冊も買うとは、やる気あるね。
全部はやらなくていいから、自分にあってそうな奴から、こつこつがんばれ。
ある程度感覚がつかめてきたら、C++なり、Javaなりも勉強してみよう。
あまり、BASICにはまりすぎると、多言語の習得が難しくなるので。

調べたけど、以下のようなラインアップだったみたい。
QBasic
  インタープリタのみで、DOSやWindowsに付属している。
QuickBasic
  コンパイラつき
BasicCompiler(PDS)
  String型をHeapメモリー上に確保できる。その他の開発ツールも付属。
103デフォルトの名無しさん:02/01/15 01:14
QBASICって文字列を=で比較できるんだね。
104デフォルトの名無しさん:02/01/15 01:20
>103
QBに限らず、BASICは全部そう。
105お待ちしてます:02/01/15 01:39
NS BASIC もほしくなった。
Palm持ってないけど、エミュで。

とりあえず、98ノートにTurboCを入れよう。
10696=98=105:02/01/15 01:48
名乗るのを忘れてた(汗)。
Xファイル鑑賞中。
107デフォルトの名無しさん:02/01/15 02:11
「最新はじめてのQUICK BASIC」

「構造化を使うことで、CやPASCALにも劣らないプログラムを作ることができます」
と書いてあるが、マジかよ(w
10874:02/01/15 10:12
>>106
ごめん、名前欄見逃してた。今日の夜にして。

>>107
CもPASCALもBASICも構造化言語であることに変わりはないってこと。
ただし、オブジェクト指向に関しては
CにはC++が、PASCALにはObjectPASCALがあるのに、
BASICはVB.NETが出るまでは、ないってこと。

あと、Cをやるとメモリーの使われ方がイメージできるようになるから良いよ。
逆にそれがCの欠点でもあるのだけれど。
10974:02/01/15 23:35
>>74
Microsoft_BASIC_710.lzh
11096:02/01/15 23:52
>74
どうも。検索開始しました。うまくめぐりあえるかな。
あ、ファイル名、暗号化しなくてもだいじょうぶですか?

TCはかじった経験あるんですが、C++で挫折しました。
いまはVBで遊んでます。
VBとQBって文法似てるよね。VBも構造化BASICとか言う物なんでしょうか?
11296:02/01/16 00:11
>111
たしかにコードの書き方とかは似てますね。
イベントドリブンな点は違いますけど。

検索ヒットしないので、メアド欄にMXのID入れておきました。
こちらからCのソースでも落としてください。
11374:02/01/16 00:36
>>111
文法や、基本の関数は同じ。
イベントドリブン(Mainだけでなく、Windowsから呼び出される関数がある)のと
Ver.4あたりから、クラスモジュールというオブジェクト指向風味の物が導入された。
114デフォルトの名無しさん:02/01/16 02:48
QBASIC の IF, THEN, ELSE, 等のブロックは、Cみたいに、{ } カーリーブランケットとかで囲まないんだね。
ちょっと見にくいかも。
115デフォルトの名無しさん:02/01/16 03:03
配列、プロシージャーのところまで読んでみたら、ポインターがあるみたいだね。BASICのくせになまいき。
配列をプロシージャーに引数として渡すとき、配列の先頭アドレスだけ渡す、みたいなことが書いてある。
Cでポインターに挫折してBASICに逃げてきて結局ポインターにでくわした漏れって、、、
116デフォルトの名無しさん:02/01/16 13:27
>>115
必需じゃないんだからいいんじゃないの
ポインターって表現はないでしょ。
プロシージャの引数は基本的にいわゆる参照渡しかと。
11896:02/01/17 00:49
>115
先頭アドレスを渡すだけですね。

#昨日74さんからいただいたMS BASIC PDS7.1には、ユーザ定義型(Type)がありました。
ISAMもついてるし、かなり本格的です。
11974:02/01/17 03:55
ユーザ定義型って、QBasicには無かったっけ?

今、マニュアル読んでるんだけど、
プロシージャの引数は、配列とユーザ定義型は、参照渡ししか出来ないって。
QBasicは初心者の学習用として、シンプルでいいかなと思ってたけど、
セグメントだのfar文字列だの出てきて、結構難しいなあ。
12096:02/01/17 23:36
>119
じつは、QBasic、ほとんどいじったことないんですよ。
Z80 → N88 → TC → (ブランク) → VB です。素人ですし。
12174:02/01/18 00:52
俺は、ポインターと配列がごっちゃになっちゃう人です。

VARPTR()ってのを使うと、オフセットアドレスが取得できますね。
QBasicだけじゃなく、VBでも使えた。
明日は、いろんな変数の配置のされ方を表示させてみようと思います。
122デフォルトの名無しさん:02/01/18 01:30
計算オペレーターの実行優先順位のとこまで読んだ。
6 + 2 * 3 - 4 / 2
がどういう順序で計算されるか、とかそういう説明。
このへんは、Scheme のほうがはるかにわかりやすい。
Scheme だったら、いちいち、優先順位なんかおぼえる必要は無い。
123デフォルトの名無しさん:02/01/18 02:16
「BASICでわかる数学」
読んでたら、
「どしどしGOTOを使おう」
とか書いてあってちょっと萎え。
124デフォルトの名無しさん:02/01/18 03:07
アマゾンでQBASICの本だと思って間違えてLiberty BASIC の本買っちまった。鬱だ。
本当に買いたかったのは、これ。
Qbasic Programming for Dummies
http://s1.amazon.com/exec/varzea/ts/exchange-glance/Y02Y0017865Y0431196/qid=1011290185/sr=1-/ref=z_ret_b_oop_03/104-7263667-8639101

間違えて買ったのは、こっち。
Beginning Programming for Dummies

通販の場合は手にとって確認できない罠、、、

しかも今よーく確認したら、Qbasic Programming for Dummies の方は絶版になっていて、中古が1冊あるだけ。しかもその中古も
Will not Ship Internationally
http://s1.amazon.com/exec/varzea/ts/my-zshop-expanded-description/S1AXYAL1O19ZAN/103-0862124-3795824
とか書いてあるし。まじでアメリカに移住してぇ。USのみ販売の中古本を日本にいながら買う方法は無いのか?

>>123
いつの時代も、技術についていけなくて、
旧世代の技術マンセー!っていう人っているんだね。
今でも OO 理解できない人とかが、同じ事繰り返してるYO。

>>124
アメリカの便利屋(そんなのいるのか?)に頼むっていうのは?
多少高くつくかも知れないけど、どうしても欲しいなら。
あとはアメリカの知り合いに頼む、いなければアメリカに知り合いの
いる知り合いに頼む。
126デフォルトの名無しさん:02/01/19 02:45
QUICK BASIC 中級プログラミング
読んでるけど、自動車のファジィ速度制御とか、モデムでのファイルの送受信まで扱ってるな(w
127デフォルトの名無しさん:02/01/19 03:03
>125
いつの時代も、新しいモノ好きで、
新世代の技術マンセー!っていう人っているんだね。
新しいというだけで、自分のロジックまでよくなると思ってる(笑)。
12874:02/01/19 03:19
新しい技術は古い技術の上に成り立っているので、
結局、古い技術も理解しなくてはならないという罠。

今日は寝ます。
129デフォルトの名無しさん:02/01/19 14:33
つけたし。
「BASICでわかる数学」
は、QBASICをつかえばいいのに、なぜかGOKUBASICとかいう独自のBASICを使っているため、構造化ができない。
なので
「GOTO使え」
な方針になっている。ここは素直にQBASICを使えばよかった。変なところに独自仕様にこだわる日本人の悪いくせがもろにでているかんじ。

130125:02/01/19 15:07
>>127
COBOLER(・∀・)ハケーン!!
131デフォルトの名無しさん:02/01/19 17:57
First BASIC っていうの使ったら、コンパイルできたよ。
EXE作れるから、ほとんどQUICK BASICと変わらんな。
ただし、30日間のシェアウエアだから、30日経ったら、どうなるかわからんが。
132デフォルトの名無しさん:02/01/21 01:15
最新はじめての QUICK BASIC
の Eluza ちゃん チョーかわいい
133デフォルトの名無しさん:02/01/23 01:17
☆ミニ講座☆

 INPUT A,B
 C = A + B
 PRINT C

を実行すると、
 ?
と出ますので、そこで、カンマで区切って、数字を2つ打ちます。
 1,2
すると、その合計値が出ます。
 3
>>133
きっと深い意味があるんだろうけど、俺には読み取れない。
135デフォルトの名無しさん:02/01/24 15:34
QBASIC のサブプロシージャーと関数プロシージャーは、引数の値渡しはできないのですか?
アドレス渡ししかできないのですか?

呼び出し側の変数を、サブ側で、かってに変更されると、困ることもあります。
>>135 変数を裸で渡すと参照渡しになるけど,()でくくって渡すと値渡しになるとかいうのがなかったっけ。
13774:02/01/25 02:28
>>135
うぬ、ByValキーワードが使えないみたい。
>>136 が正解みたいです。

DECLARE SUB test (i2 AS INTEGER)
DIM i AS INTEGER
CLS
i = 999
PRINT "A i="; i
CALL test((i))
PRINT "B i="; i
PRINT

i = 999
PRINT "C i="; i
CALL test(i)
PRINT "D i="; i

SUB test (i2 AS INTEGER)
  i2 = 123
END SUB

[結果]
A i=999
B i=999

C i=999
D i=123
138デフォルトの名無しさん:02/01/26 23:46
今、自分のマシンで確認してみました。
たしかにその方法をつかえば、アドレス渡しも、値渡しも、自由自在ですね。
QBASICは、文字列処理も結構できるし、Cとくらべてもそんなに不便を感じることはありません。
あえて欠点をあげるとすれば、ポインターを使えない、UNIXで動かない、変数のタイプミスにきづきにい(タイプミスをすればそのまま新しい変数として宣言される)くらいでしょうか・
UNIXで動かない? プププ
140デフォルトの名無しさん:02/01/27 00:46
プププって言われてモナー
141UNIX:02/01/27 00:51
DOSEMUで動かせるってことでしょ?
プププを翻訳してみると、
「確かにDOSEMUでも動かせるけど、
 UNIXでまでQBASIC使う意味はないのでは?
 不確かだがUNIXにもBASICあっただろ」
って言いたいのでは?
143デフォルトの名無しさん:02/01/27 02:18
ずーっと入門書を読んできて、ハノイの塔まできたけど、再帰のアルゴリズムが理解できない。
なんで、たったの5,6行で、あれだけ複雑なことが記述できるのだろうか。

ちなみに、ハノイの塔を、頭の中で考えながら寝ると、ずーっと寝られなくなりません?
漏れは、ハノイの塔を頭でときはじめると、どんどん目がさえてきて、朝の4時くらいまで寝られなくなる。
もちろん、ふとんの中で、目を閉じて、イメージだけで解くんだけど。

最初はプレート3枚からはじめて、13枚くらいまでいく。
複雑、かなぁ??
145デフォルトの名無しさん:02/01/27 02:46
>>143
あれって実際にもその5,6行を再帰的にやるだけでしょが。

X枚のときにXm回でゴールするなら、

X+1枚の時は
1.Xm回で一番下以外を隣に移す。
2.1回で一番下をあいている塔に移す。
3.Xm回で一番した以外で出来ている塔を2.の塔に移す。
で2Xm+1回になるわけでしょ。それを再帰処理で計算してくだけ。

それぞれの枚数ごとにスタートからゴールまでずっと考えると
いうのは、数学的素養がない根性馬鹿しかやらんことだよ。
146デフォルトの名無しさん:02/01/27 03:16
Linuxで動く、文法が一番QBASICに近い、BASIC言語を教えてください。
>>146
bwbasic、pbasic、yabasicのどれか。
qbasicで作られたビジュアルシェル。

http://fox.zero.ad.jp/~zak17295/spl/os1.lzh
149デフォルトの名無しさん:02/01/28 01:28
>>147
どうも。いちおう検索結果を報告。

yabasic
http://www.yabasic.de/

bwbasic
http://www.dais.is.tohoku.ac.jp/~kabe/languages/bwbasic.html
ftp://ftp.tohoku.ac.jp/mirror/free-unix/BSD/FreeBSD/distfiles/bwbasic-2.10.tar.gz

pbasicはバイナリはあったけど、ドキュメントサイトが見つからなかったです。
150デフォルトの名無しさん:02/01/28 19:44
入門書を読み進めて、3次元グラフィックのとこまできました。
BASICのくせに、けっこう難しいです。
15196:02/01/29 23:05
QBasicで使えない QuickBasicの命令です。

The following QuickBasic keywords are not supported in QBasic:

   ALIAS    EVENT    LOCAL     SETMEM
   BYVAL    $INCLUDE  SADD     SIGNAL
   CDECL    Int86    Interrupt   UEVENT
   COMMAND$  Int86X   InterruptX

qbasic.comで公開されてるソースの中には、QuickBasic用のも混じってます。
15296:02/01/29 23:06
以前、言及した"Micro.bas"を少しリライトしました。
486ノートで見ると、速度がバッチリ。立体的なうねりが見えます。
DNAというより、昇り竜でしょうか。
で、VBに移植してみたら、遅くてダメ。ずっと速い機種なのに。
やっぱり、ハードウェア・スクロールには、かないません。
裏画面に全部描いてからBitBltしたら、なんとかなりましたが…。
できればリアルタイムに描画したかった…。Cだと出来るんでしょうね。
-----------------------------------------------------------------
CLS
SCREEN 12
pi = 3.14159 / 2
FOR rot = 0 TO 3.14159 * 20 STEP .1
 ax = 320 + 60 * COS(rot)
 ay = 400 + 30 * SIN(rot)
 FOR i = 1 TO 8
  CIRCLE (ax + (90 - i * 10) * COS(rot), ay + (22 - i * 2) * SIN(rot)), 9 - i, i
  CIRCLE (ax - (90 - i * 10) * COS(rot + pi), ay - (22 - i * 2) * SIN(rot + pi)), 9 - i, i
 NEXT
 LINE (ax, ay)-(ax + 80 * COS(rot), ay + 20 * SIN(rot)), 9
 LINE (ax, ay)-(ax - 80 * COS(rot + pi), ay + -20 * SIN(rot + pi)), 9
 LINE (ax + 80 * COS(rot), ay + 20 * SIN(rot))-(ax - 80 * COS(rot + pi), ay + -20 * SIN(rot + pi)), 9
 PRINT ""
NEXT
153デフォルトの名無しさん:02/01/29 23:21
>>152
実行してみました。
うなぎのホネみたいのが、うにょうにょ動いてたにょ!
154デフォルトの名無しさん:02/01/30 00:31
>>151
まとめてくれて、ありがとう!
漏れ、QUICK BASIC の本で勉強してるから、こういうの、ありがたいんだよね。

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

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

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

おもしろそうな幾何図形を描く短いコードがあったら、紹介してください。
157デフォルトの名無しさん:02/01/31 00:12
SOUND 文のところをちょっとやってみたが、BEEP 用のスピーカーからもろに音が出るのでアパートの近所迷惑になるので、実験できません。
WinXPだと、Win95にあったQBASIC動かないみたいですね、誰か動きましたか?
159デフォルトの名無しさん:02/02/02 13:51
First BASIC は試してみた?
160デフォルトの名無しさん:02/02/03 21:52
QBASICもだんだん全容が見えてきたら飽きてきたな(w
161デフォルトの名無しさん:02/02/03 22:44
これで窓アプリでも組めればそそるんだけどね
162デフォルトの名無しさん:02/02/03 23:55
氏ね
164デフォルトの名無しさん:02/02/04 23:08
ファイルをオープンしてクローズしないでプログラムを終了したらどうなるの?
165デフォルトの名無しさん:02/02/04 23:19
>164
Input時はエラーになり、Output時は0バイトのファイルが出来ると思う。
166デフォルトの名無しさん:02/02/04 23:20
>161
窓アプリは出来ないと思うけど、CGIは出来そう。
167デフォルトの名無しさん:02/02/05 20:53
今までにやった女の名前と年令をシーケンシャルファイルに記録するコードだよ

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
良スレはっけん。
QuickBasicユーザが居てうれしい。
昔作ったゲームあるけど見る?
ソースきぼんならソースも出すよ。

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

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

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

SCREEN 12
CLS
DO UNTIL a$ = "a"
LOCATE 15, 15
PRINT TIME$
a$ = INKEY$
LOOP
END
172168:02/02/07 00:41
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推奨。

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

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

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

CLS
INPUT a$
PRINT ASC(a$)
END

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

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

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

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


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

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

しかくがいっぱい出てくるコードです。

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


192デフォルトの名無しさん:02/02/24 19:12
CLS
PRINT NOT 1
END

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

1を16ビットの16進数で考えると
 ↓
0x0001
 ↓
NOTでビット反転
 ↓
0xfffe
 ↓
10進数(2の補数形式)へ戻すと
 ↓
-2

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

ああQuickBASICじゃなくてQBASICか話題は。
そういやMS-DOS5.0のEDITコマンドは裏でQBASIC走らせてたよなあ。
エディタ機能の実体は同じだったって事か。
>>198
おGちゃん、ご飯はさっき食べたでしょ?
200デフォルトの名無しさん:02/03/02 00:21
>>151
結局ちょっと気の利いたことやろうとすると何もできない中途半端な
BASICだよなあ。EXEも作れんし。BASICA(GW-BASIC)みたいなBLOAD
コマンドも駄目なんだっけ?
201デフォルトの名無しさん:02/03/02 01:15
>>198
MSにしてはよく出来てると思ったら、そういうことだったのか。
202デフォルトの名無しさん:02/03/02 01:28
First Basic っていうのを使えば、QBasic のソースをコンパイルしてEXEを作れるよ。
203デフォルトの名無しさん:02/03/10 23:55
QBasic 関連のウイルスあるんだね。
http://www.symantec.com/region/jp/sarcj/data/w/w97m.celebrate.a.html
204デフォルトの名無しさん:02/03/11 00:07
BASIC 関連ではこのページがすごい。
http://www2.airnet.ne.jp/sardine/langs/BASIC.html
205デフォルトの名無しさん:02/03/29 20:39
アマゾンで注文してた
The revolutionary guide QBASIC
が届いたので読みたいが、Turbo Pascal の勉強が忙しくて読めないな。
206デフォルトの名無しさん:02/04/07 22:26
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
変数が明示的に代入されるまでは、変化ないんですね。

207デフォルトの名無しさん:02/04/09 00:45
お、QBASICスレ発見
208デフォルトの名無しさん:02/04/09 00:53
bc.exe,link.exe,bcom45.lib,
この3つひろってくればEXEがつくれる。

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

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

もし、単にQBasicの入門書が欲しい、ということであれば、
QBasic by example
という本がとてもわかりやすいです。
おすすめです。
213デフォルトの名無しさん:02/05/05 23:05
今、私は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でちゃちゃっと作って見ました。
がんがれ!
215ごくきん:02/05/06 22:20
今日はじめてこの掲示板を見て初めて書き込みします。初心者で不勉強な質問で申し訳
ないのですが、どうしてもわからないので、知ってる方がいたら、教えてください。
QBasicでは、単純変数をグローバル変数にするのは説明に出てるのですが、
配列変数はそうならないのでしょうか?
>>215 DIM SHARED
217ごくきん:02/05/08 22:19
>215の質問は舌足らずでした。モジュールファイルをまたがって使える
配列変数はどうやるか、でした。
シングルモジュールで動作していたものを無理やり、
マルチモジュールファイルにして、動かそうとしたら、サブのモジュール
ファイルに処理が移ったとたんに、配列変数が初期化されてるらしいのです。
(我ながら正しい説明になってるか?疑問だ?)どんなもんでしょう?
218デフォルトの名無しさん:02/05/26 03:25
Windows2000で、デスクトップにショートカットを置いて、そのアイコンをダブルクリックすると、自動的にDOSの画面になって、USモードになって、qbasic.comを起動する、というプログラムを作りたいのですが、どうしたらいいですか。
>>218
バッチファイル書けば?
220デフォルトの名無しさん:02/05/26 03:36
DOSのバッチファイルですか、、、
1回も書いたこと無い、、、
QBできるんだったら簡単だよ〜ん
222デフォルトの名無しさん:02/05/26 04:05
デスクトップ上にq.batという名前のテキストファイルを作って、
C:\q\qbasic.com
と書いて上書き保存してダブルクリックしたらできました。
223デフォルトの名無しさん:02/06/14 06:17
あげちゃう!
224:02/06/23 20:20
会社のWindows MeのマシンでDOSプロンプトを立ち上げてFirst Basicを起動したんだけど、画面の表示がおかしくて使えないんですよ。
225:02/06/23 20:33
400個のファイルを作りたくて、以下のソースを書いたんですけど、
Bas file name or number
って言われるんですよ〜

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

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

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

OPEN LTRIM$(STR$(i)) + ".txt" FOR OUTPUT AS #1
230
>>229
今度はよく理解できました。
ありがとうございます。まさにプロの仕事といった印象を受けました。