• 締切済み

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

みんなの回答

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.3

#1です。空白がバラけて見づらいですね。すみません。 数値表示は、もしかしたら数値の右1バイトには空白が付与されたか?であれば桁数が短くなっても問題ありません。 なお、1000~0までカウントダウンしますが、表示される数値は999~0です。訂正。 十進Basicが何か、検索してみました。教育用なんですね。

myyacht
質問者

お礼

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

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.2

十進ベーシックがどんなものか分かりませんが、 N88BASICのコマンドの意味は理解されていますか? 理解できているのであれば、その処理の通りに書き直すだけです 10 cls  画面をクリアして何も描かれていない状態にする 20 p=1000  p定数を格納 30 for n=1 to 1000:next n  次の処理を行うまでの空ループ(待ち時間:ウエイト)  これがないと一瞬でプログラムが終了する 40 p=p-1  pに格納された値から1引いてpに格納し直す 50 if p=-1 then end  pが-1になったらプログラムを終了させる 60 locate 10,10:print p  左から10個目、上から10個目を指定。そこにpの値を出力(書き出す) 70 goto 30  30行へ処理を移す 1000から0までカウントダウンするプログラムのようですが 60行目の表示で桁数が変わったときの処理が無いため正しく表示されないですね 最後には "2000" → "1000" → "0000" とカウントが終了します 修正するなら60行目に画面をクリアする命令を加えるか、 pの表示の後に空白文字を表示するようにしましょう これだけの説明で自力で直せないのであれば諦めるしかないと思います また、問題の丸投げ(疑問点を示さず作業を依頼する行為)は禁止されています プログラムを直すのに分からないところを補足してみてください 十進ベーシックについて分かる片からアドバイスをもらえると思います

myyacht
質問者

お礼

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

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

十進Basicが何か知りませんが、まんま変換すると宿題丸投げの場合アウトなのでコメント付与だけ。 10 cls 画面初期化(CLearScreen 80×25文字ぐらいだったなぁ) 20 p=1000 pに1000を代入 30 for n=1 to 1000:next n    nを1000回数えることで時間稼ぎ 40 p=p-1 pにp-1を代入 50 if p=-1 then end pが-1であったら終了 60 locate 10,10:print p 画面位置指定(文字単位でxyともに10文字目) 70 goto 30           30に戻って繰り返し。 1000から0までカウントダウンする動作。 ただし行60で表示される文字の桁が短くなる際に不都合があるように思いますね。

myyacht
質問者

お礼

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

関連するQ&A

  • 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行)。どうしたらいいですか。

  • 十進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とはどういう意味があるのでしょうか?

  • 十進ベーシックで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

  • プログラムの組み方について

    ウインドウズ98とエクセルとワードを使っていますが、 かつてのBASICのようなプログラムを組んで実行 させることは可能なのでしょうか?例えば 10 A=1 20 A=A+1:IF A>9 THEN 50 30 FOR B=1 TO A:PRINT B 40 GOTO 20 50 PRINT A 60 END というような簡単なものでいいのですが・・・。 どなたか教えて下さい。よろしくお願いします。

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

    添付の図のようなフローチャートを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が出力されるのでおかしな気がします。 解答が正しいのでしょうか?それとも間違っているのでしょうか?

  • 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 お手間をおかけ致しますが、どうかお願いいたします。

  • N88 basicプログラムの質問(ノルム計算)1

    N88 basicプログラムにおいて鉱物のノルム計算ができるようにしたいのですが、プログラムを打ち込んだのですが、うまく動きません。どなたかわかる方がいればご教授頂きたく願います。 かなり長くなりますが、ぜひともお願い致します。 下記、打ち込んだプログラムとなります。 長いので、質問を分けて入力します。 10 ' 20 '***** normative calculation program for clay minerals ***** by T,Igarashi,1983 30 ' 40 OPTION BASE 1 50 CONSOLE 0,25,0,1 60 WIDTH 40,25 70 ' 80 ' 90 DIM A$(22),DMY$(22),AA$(22),B1$(31),M$(8),L$(8) 100 DIM A(8,22),A1(22),A2(22),B(31),B0(8,31),C9(31),TOTAL(2,8) 110 GOSUB *INIT.1 120 ON ERROR GOTO 5000 130 GOSUB *ENTER 140 FOR QQ=1 TO NN 150 GOSUB *INIT.2 160 IF KORF=1 THEN GOSUB *FILE ELSE GOSUB *KEYBOARD 170 GOSUB *STORE 180 GOSUB *CALC 190 GOSUB *OUTPUT 200 NEXT QQ 210 GOSUB *PRINTOUT 220 GOTO 130 230 ' 240 ' 250 ' 260 *INIT.1 270 RESTORE 290 280 FOR I=1 TO 22 : READ AA$(I) : READ A2(I) : NEXT 290 DATA SIO2,60.085,TiO2,79.899,Al2O3,101.961,Fe2O3,159.692,FeO,71.846,MnO,70.937,MgO,40.304,CaO,56.079,Na2O,61.979,K2O,94.195 300 DATA P2O5,141.943,Cl,35.453,SO3,80.57,S,32.6,Cr2O3,151.989,ZrO2,123.218,F,18.99,CO2,44.9,H2O+,18,H2O-,1,Ig.LOSS,1,Others,1 310 RESTORE 330 320 FOR I=1 TO 31 : READ B1$(I) : NEXT 330 DATA Q,C,ad,mi,ab,an,ka,se,ch,gi,mo,pp,dp,al,Z,hl,th,cc,mg,sd,li,mt,he,cm,pr,il,ru,ap,fr,en,ot 340 C9(1)=A2(1) : C9(2)=A2(3) : C9(3)=A2(1)+A2(3) : C9(4)=A2(10)+A2(3)+A2(1)*6 : C9(5)=A2(9)+A2(3)+A2(1)*6 : C9(6)=A2(8)+A2(3)+A2(1)*2 : C9(7)=A2(3)+A2(1)*2+A2(19)*2 350 C9(8)=A2(10)+A2(3)*3+A2(1)*6+A2(19)*2 : C9(9)=A2(7)*5+A2(3)+A2(1)*3+A2(19)*4 : C9(10)=A2(3)+A2(19)*3 : C9(11)=A2(9)*33+A2(3)+A2(7)+A2(1)*4+A2(19)*4 : C9(12)=A2(3)+A2(1)*4+A2(19) 360 C9(13)=A2(3)+A2(19) : C9(14)=A2(10)+A2(3)*3+A2(13)*4+A2(19)*6 : C9(15)=A2(1)+A2(16) : C9(16)=(A2(9)-16)/2+A2(12) : C9(17)=A2(9)+A2(13) : C9(18)=A2(8)+A2(18) : C9(19)=A2(7)+A2(18) : C9(20)=A2(5)+A2(18) 370 C9(21)=A2(4)+A2(19) : C9(22)=A2(4)+A2(5) : C9(23)=A2(4) : C9(24)=A2(5)+A2(15) : C9(25)=A2(5)-16+A2(14)*2 : C9(26)=A2(2)+A2(5) : C9(27)=A2(2) : C9(28)=A2(8)*10+A2(11)*3+A2(19) 380 C9(29)=A2(8)-A2(17)*2 : C9(30)=A2(1)+A2(7) : C9(31)=1 : DD=0 390 FOR I=1 TO 31 : B(I)=0 : NEXT 400 RETURN 410 ' 420 ' 430 ' 440 *ENTER 450 C=0 : KORF=0 : SCREEN 3,3 : CLS 3 : SCREEN 3,0 : LINE(0,0)-(639,199),6,BF : COLOR 2 460 LOCATE 0,5 : PRINT "How many samples (Max 8 samples)";: INPUT NN 470 IF NN>8 THEN CLS 1 : GOTO 460 480 IF NN=0 THEN GOTO *PROEND 490 COLOR 2 : LOCATE 0,8 : PRINT "Input data from Keyboard or File or End : K/F/E" 500 Y$=INKEY$ 510 IF Y$="" THEN 490 520 IF Y$="e" OR Y$="E" THEN GOTO *PROEND 530 IF Y$="k" OR Y$="K" THEN KORF=0 : RETURN 540 IF Y$<>"f" AND Y$<>"F" THEN 490 550 KORF=1 560 RETURN 570 ' 580 ' 590 ' 600 *INIT.2 610 CLS 1 620 FOR I=1 TO 22 : A(QQ,I)=0 : NEXT I 630 FOR I=1 TO 31 : B(I)=0 : B0(QQ,I)=0 : NEXT I 640 RETURN 650 ' 660 ' 670 ' 680 *FILE 690 OPEN "data.1" AS #1 700 FIELD #1,40 AS MINERAL$,40 AS L1$ 710 FOR I=1 TO 22 : FIELD #1,(I-1)*4+80 AS DMY$(I),4 AS A$(I) : NEXT 720 MAX=LOF(1) : IF MAX=0 THEN RETURN 440 730 LOCATE 1,2 : PRINT MAX;"records are filing." 740 IF DD=1 THEN 800 750 LOCATE 2,5 : PRINT "You need list (Y/N)?": Y$=INKEY$ 760 IF Y$"" THEN 750 770 IF Y$="N" OR Y$="n" OR Y$="ミ" THEN 800 780 IF Y$="Y" OR Y$="y" OR Y$="ン" THEN GOSUB *NAME.LIST : GOTO 800 790 GOTO 750 800 LOCATE 2,10 : INPUT "Record No.";N 810 IF N>MAX THEN CLS 1 : GOTO 730 820 GET #1,N 830 M$=MINERAL$ : L$=L1$ 840 FOR I=1 TO 11 : A(QQ,I)=CVS(A$(I)) : A(QQ,I+11)=CVS(A$(I+11)) : NEXT 850 CLOSE #1 : DD=1 860 LOCATE 2,15 : PRINT "Correct data : Y/N"; : Y$=INKEY$ 870 IF Y$="" THEN 860 880 IF Y$="Y" OR Y$="y" THEN C=1 : GOTO 1120 890 IF Y$="N" OR Y$="n" THEN RETURN 180 900 GOTO 860 910 ' 920 ' 930 ' 940 *NAME.LIST 950 LPRINT 960 LPRINT CHR$(27) ; "V0960" ;CHR$(&H8) 970 LPRINT "Sample Name" ; TAB(40); "Locality" 980 LPRINT CHR$(27);"V0960";CHR$(&H8) 990 FOR II=1 TO MAX 1000 GET #1, II 1010 M$=MINERAL$ : L$=L1$ 1020 LPRINT M$; TAB(40); L$ 1030 NEXT 1040 LPRINT CHR$(27) ; "V0960";CHR$(&H8) 1050 LPRINT CHR$(12) 1060 RETURN 1070 ' 1080 ' 1090 ' 1100 *KEYBOARD 1110 M$="" : L$="" : FOR I=1 TO 22 : A(QQ,I)=0 : NEXT I

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

    誰か次のプログラムの間違いを直してください。入力を間違えても次に進めるようにするにはどこをどう変えたらよいのですか? 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

  • 素数は何%くらいあるか

    高1です。 素数が何%くらいあるかを調べてみようと思い、次のようなBasicプログラムを作りました。 -------------------------------------------------------- 100 cls:count=1:print 2;" ";100;"%";" ";count 110 for i=3 to 10000000 120 n=i 130 if (n - int(n/2)*2) = 0 then goto 220 140 for j = 3 to sqr(n) step 2 150 if (n - j * int(n/j) ) = 0 then goto 220 160 end if 170 next j 180 count=count + 1 190 p = count*100 / (n - 1) 200 percent = (int(p * 10))/10 210 print n;" ";percent;" ";"%";" ";count 220 next i 230 end -------------------------------------------------------- 【各行の意味】 100  2は素数 110  3から一千万まで調べる 130  偶数は除外 140~ 素数判定(自然数nが√n以下のすべての数で割りきれなければ、nは素数である、を利用) 180  素数の個数をカウントする 190~ 素数が何%あるかを少数第一位まで求める。少数第二位以下は切り捨て。 210  素数、%、素数の個数 を表示 -------------------------------------------------------- 【結果】 千までに素数は168個、16.8% 一万までに素数は1229個、12.3% 十万までに素数は9592個、9.5% 百万までに素数は78498個、7.8% 一千万までに素数は664579個、6.6% -------------------------------------------------------- そこで質問ですが、 1.素数の割合は収束する傾向にあると言えるでしょうか? 2.プログラムに間違いがありましたら、教えていただけないでしょうか。 3.素数の割合に関するわかりやすい本(高校生でも理解できるようなもの)などがありましたら、教えていただけないでしょうか。 ちなみに、これは学校の宿題や課題ではありません。純粋に個人的な興味で調べたものですが、何か結論みたいなものが導けたら来年の自由研究に出してみたいと思っています。 使用機種:Mac 使用ソフト:chipmunk basic(フリーソフト) 機種が非力なので1億や10億といった計算はやっていません。

  • 数学におけるプログラムの問題です。

    「次のプログラムは何をするものか説明し、nに360が入力されたときのp,qを求めよ。   100 INPUT n     110 FOR i=1 TO SQR(n)   120 IF MOD(n,i*i)=0 THEN LET p=i   130 NEXT i   140 LET q=n/(p*p)   150 PRINT "p=";p   160 PRINT "q=";q    END」 という問題です。  p=6,q=10 はわかります。このプログラムは「入力された値に対して、2乗して割り切れる最大の値とその時の商を求めるものである」でよろしいのでしょうか?

専門家に質問してみよう