• ベストアンサー

n88basicでは動いたのに十進ベーシックではだめでした。どうしてですか?

10 INPUT a,b 20 IF a<b THEN beep 1,FOR n=1 TO 100000,NEXT n,beep 0 22 IF a<b THEN swap a,b 30 PRINT a/b END n88basicではこのままで動いたのに十進ベーシックでは「ここにNは書けません」とメッセージが出ました(20行)。どうしたらいいですか。

質問者が選んだベストアンサー

  • ベストアンサー
  • okg00
  • ベストアンサー率39% (1322/3338)
回答No.2

10 INPUT a,b 20 IF a<b THEN 22 FOR n=1 TO 100000 23 NEXT n 24 END IF 22 IF a<b THEN swap a,b 30 PRINT a/bEND マルチステートメントをなくしてみました。 beep命令がないのでなくしました。

myyacht
質問者

お礼

回答ありがとうございます。今後ともよろしくお願いいたします。

その他の回答 (1)

  • tetsumyi
  • ベストアンサー率26% (1855/7081)
回答No.1

日本ではn88basicが標準のBASICと思っている人が多いですがn88basicは特殊な仕様が非常に多いです。 1つの行の中に複数の命令を続けて書くことはできません。 十進ベーシックには無い命令もあります。 ヘルプを見ながら確認してください。

myyacht
質問者

お礼

回答ありがとうございます。

関連するQ&A

  • 十進ベーシックでrenum命令がわかりません。教えてください。

    次の十進ベーシックの行を順番に並べるにはどうしたらいいのですか? 10 LET p=1000000 20 LET p=p-1 30 IF p=0 THEN GOTO 100 100 beep 261.63,500 110 beep 293.66,500 120 beep 329.6,500 22 PRINT p 12 FOR n=1 TO 100000000 13 NEXT n END

  • n88basicのプログラムを十進ベーシックに翻訳してください。

    n88basicの次のプログラムを十1進ベーシックではどうなるのか教えてください。 10 cls 20 p=1000 30 for n=1 to 1000:next n 40 p=p-1 50 if p=-1 then end 60 locate 10,10:print p 70 goto 30

  • 十進BASICのプログラムについて

    十進BASICのプログラムについて 小町算のプログラムですが、 100 DIM s(9) 110 FOR i=1 TO 9 120 LET s(i)=-1 130 NEXT i 140 DO 150 LET sum=0 160 LET num=0 170 LET sign=1 180 FOR i=1 TO 9 190 IF s(i)<>0 THEN 200 LET sum=sum+sign*num 210 LET sign=s(i) 220 LET num=i 230 ELSE 240 LET num=10*num+i 250 END IF 260 NEXT i 270 LET sum=sum+sign*num 280 IF sum=100 THEN 290 FOR i=1 TO 9 300 IF s(i)= +1 THEN PRINT " + "; 310 IF s(i)= -1 THEN PRINT " - "; 320 PRINT i; 330 NEXT i 340 PRINT " = 100" 350 END IF 360 LET i=9 370 LET sign=s(i)+1 380 DO WHILE ( sign > 1 ) 390 LET s(i)=-1 400 LET i=i-1 410 LET sign=s(i)+1 420 LOOP 430 LET s(i)=sign 440 LOOP WHILE ( s(1) < 1) 450 END というものですが、このプログラム中にあるsum、num、signとはどういう意味があるのでしょうか?

  • 空欄に不等号が入るのですが・・・

    添付の図のようなフローチャートをbasicでプログラムすると次のようになる 130行目の空欄を等号ないし不等号ないし等号つき不等号で埋め 条件式を完成させよという問題がありました。 100 INPUT N 110 FOR I=1 TO N 120 LET A=I 130 IF (A+1)^2 (空欄) N THEN GOTO 190 140 NEXT I 150 IF A<=1 THEN GOTO 190 160 PRINT A 170 LET N=N-A^2 180 IF N>=1 THEN GOTO 110 190 END ここで入れるべきものはA^2がNを「超えない」なので>=ですよね? 解答を見ると>となっているのですが 解答の条件式でN=4として実行すると2が出力されるのでおかしな気がします。 解答が正しいのでしょうか?それとも間違っているのでしょうか?

  • 十進ベーシックのプログラムの間違いを教えてください。

    誰か次のプログラムの間違いを直してください。入力を間違えても次に進めるようにするにはどこをどう変えたらよいのですか? RESTORE 30 READ a$ 40 INPUT b$ IF a$=b$ THEN IF a$<>b$ THEN GOTO 40 PRINT a$ GOTO 30 DATA i,x,d,k,k,h,end END IF END

  • N88basicを用いたGPIB制御

    はじめまして。 GPIB,N88basic共に初心者なのですが、N88basicでGPIBを通し デジマルのデータをpcに読み込むプログラムを作ることになりました。 OSはwindows95です。 デジマルの業者からN88basicのサンプルプログラムを送って頂き、 その内容は理解できました。 しかし、このプログラムでは制御ができるか疑問です。 GPIBボードの番号、DLLの呼び出し等に触れていないからです。 N88 basicでは、ボードのDLLを呼び出さなくてもいいのでしょうか。 visual basic,F-basicについては調べてわかったのですが、 N88basicだけはどうしてもわかりませんでした。 どなたか詳しい方いらっしゃいましたら、どうか教えていただけないでしょうか。 ちなみに、サンプルプログラムは下記のものです。 10 DMM=1 'TR6847 GP-IB address 20 ' 30 CMD DELIM=0 'delimiter CR+LF 40 ISET IFC 'interface clear 50 ISET REN 'remote enable 60 ' 70 PRINT @DMM;"Z" 'TR6847 initialize 80 FOR W=0 TO 1000 : NEXT 'time wait 90 ' 100 PRINT @DMM;"F2" 'function.........VAC 110 PRINT @DMM;"R3" 'range............300mV 120 PRINT @DMM;"M1" 'sampling mode....HOLD 130 ' 140 FOR N=1 TO 10 150 PRINT @DMM;"E" 'measuring start 160 INPUT @DMM;DA$ 'data read 170 PRINT DA$ 180 NEXT N 190 ' 200 PRINT @DMM;"M0" 'sampling mode....FREE RUN 210 ' 220 END お手間をおかけ致しますが、どうかお願いいたします。

  • 十進BASICでの衝突プログラミング

    十進ベーシック超初心者です。二次元の箱の中に円を置き、そこで衝突を繰り返すプログラムをつくりたいのですが行き詰っています。 箱の中だけでの衝突は、以下のようにプログラムできたのですが、円にぶつかるときどのようにプログラムをくんで跳ね返させればいいかわかりません。どなたか教えて下さい。 SET WINDOW -20,20,-20,20 DRAW GRID(2,2) PLOT LINES: -10,-10 ;10,-10;10,10;-10,10;-10,-10 DRAW CIRCLE WITH SCALE (2) LET X=-10 LET Y=-10 LET T=0 LET V=4.53574748 LET A=56.654968 LET VX=COS(A) LET VY=SIN(A) 100 PLOT LINES:X,Y ; IF VX>0 THEN LET LX=20-(10+X) END IF IF VX<0 THEN LET LX=20-(10-X) END IF IF VY>0 THEN LET LY=20-(10+Y) END IF IF VY<0 THEN LET LY=20-(10-Y) END IF LET T=MIN(LX/ABS(VX),LY/ABS(VY)) LET X=VX*T+X LET Y=VY*T+Y IF T=LX/ABS(VX) THEN LET VX=-VX END IF IF T=LY/ABS(VY) THEN LET VY=-VY END IF GOTO 100 END

  • N88-日本語 BASIC ASCII ファイル

    N88-日本語 BASIC ASCII ファイルにするのにはどうしたら、宜しいのでしょうか。 ・MS-DOS 6.20 に付属されている、「Fileconv」を使ってみました。 MS-DOS → N88BASIC ドライブ名は、「C」ですが、Cと打つと、弾かれてしまって、入力が不可能です。 ・因みに、MS-DOSのファイル形式になっている、現在は、以下の記述名です。 ----- 10 width 80,20                         '10~96行まで初期設定 20 cls:beep 30 print "KEY操作 1 左 2 右 3 ミサイル発射" 40 print "自機 <T> を操り 敵 = を撃つゲーム" 50 for i=0 to 40 60 locate i,5:print "-" 70 next 80 locate 19,5:print "-<T>-" 90 x=19: m=0:mx=0:my=0              'x、y 自機の座標  mx、my ミサイル座標 95 randomize(val(right$(time$,2)))         'ex,ey 敵座標  96 ey=int(rnd(1)*10)+6:ex=5 100 gosub 200                    '100~130 メインルーチン 110 if m=1 then gosub 300  'm=0 ミサイル未発射。この時は300行(ミサイル移動ルーチン                     'にはいかない m=1 ミサイル発射中は300行へ   120 gosub 400 130 goto 100 200 b$=""                       '自機の移動、ミサイル発射 202 a$=inkey$ 205 if a$<>"" then b$=a$:goto 202 210 if b$="1" and x>1 then x=x-1 215 if b$="2" and x<37 then x=x+1 220 if b$="3" and m=0 then mx=x+2:my=5:m=1:beep 230 locate x,5 :print"-<T>-" 240 return 300 locate mx,my:print " "              'ミサイル移動ルーチン 310 my=my+1 320 if mx=ex and my=ey then gosub 600: end   '当たり判定  330 if my>15 then mx=0:my=0:m=0:return     '下までいったらミサイル終了。m=0に戻す 340 locate mx,my:print "V":return 400 locate ex,ey:print " "               '敵移動ルーチン           410 ex=ex+1 420 if ex=mx and ey=my then gosub 600 :end   '当たり判定 430 if ex>39 then ex=0: ey=int(rnd(1)*10)+6    '端までいったら新座標 440 locate ex,ey:print"=" 450 return 600 beep                          '当たりの時の処理 610 locate mx,my:color 4:print "*" 620 print "大当たり THE END": color 7 630 print "HIT ANY KEY" 640 a$=input$(1):return

  • BASICでの波形合成

    学校でのBASICの宿題で、複数のSIN波を合成する問題で 100 CLS 3:LINE(0,240)-(640,240),7 110 INPUT"基本波の周期は";C 120 INPUT"基本波の振幅は";W 130 INPUT"基本波の移送は";F 140 INPUT"第何倍音まで計算する";N:DIM A(N),B(N) 150 FOR I=1 TO N 160 PRINT I;:INPUT "番目の倍音の振幅は";A(I) 170 PRINT I;:INPUT "番目の倍音の移送は";B(I) 180 NEXT I 190 FOR K=0 TO 360/C*2*3.14159# STEP 3.14159#/90 200 X=C*K-F:Y=-(W*SIN(K))+240:LINE-(X,Y),4 210 NEXT K 220 FOR G=1 TO N:PSET(0,240),3 230 FOR H=0 TO 360/C*2*3.14159# STEP 3.14159#/90 240 X=C/(G+1)*H-B(G):Y=-((A(G))*SIN(H))+240:LINE-(X,Y),3 250 NEXT H,G ここで描いたSIN波を合成した波を描く方法が分からない状態です。 どうにも解決できないのでここに質問しました。どなたか分かる方がいたら教えてください。

  • Tiny Basic 日本語

    Tiny Basic for Windows v1.21を利用しているものです。 入力した日本語を後ろから表示したいです。あいうと入力したら、ういあと出力したいです。 以下が実行したプログラムです。 10 INPUT "お名前は?: ", U$ 20 PRINT "こんにちは "; U$ ;" さん" 25 REM 30 INPUT "丸がいくつ欲しいですか?: "; N 35 S$ = "" 40 FOR I = 1 TO N 50' S$ = S$ + "○" print "○" 55 NEXT I 60 'PRINT S$ 65 REM 70 INPUT "もう一度やりますか(Y/N)? "; A$ 80 IF LEN(A$) = 0 THEN GOTO 70 90 A$ = LEFT$(A$, 1) 100 IF (A$ = "Y") OR (A$ = "y") THEN GOTO 30 110 PRINT "さようなら " 111 INPUT "挨拶はなん回: "; N2 120 FOR I = 1 TO N2 130 PRINT RIGHT$(U$,6); "さん "; 140 NEXT I 150 PRINT 160 PRINT "さようなら " 170 END 行番号130の処理では、アルファベットを後ろから表示できました。ひらがなや漢字はそうなりません。 御指摘お願いします。

専門家に質問してみよう