• ベストアンサー

N88互換BASICのプログラムについて。

私は機械科3年ですが、今年からBASICを勉強しています。次のプログラムのエラー(行番号190にてopenしたファイルに出力できないです)がどうしても解決できないです。N88互換BASICやられている方でどなたか私にアドバイスをしていただけると助かります。 110 REM EX1B by E/F on 2006/04/25 120 PI=3.14159:PHI=30:Y0=.5 130 '************ Output into File ************ 140 CLOSE #1:OPEN "C:\WINBASIC\EX1B_OUT.TXT" FOR OUTPUT AS #1 150 FOR X=0 TO 360 STEP 45 160 A=.2 :Y1=A*SIN((X-PHI))+Y0 170 A=1.2 :Y2=A*SIN((X-PHI))+Y0 180 A=2 :Y3=A*SIN((X-PHI))+Y0 190 PRINT #1,X;",";Y1;",";Y2;",";Y3" 200 PRINT"Out:";X;",";Y1;",";Y2;",";Y3 210 NEXT X 220 CLOSE #1 230 '************ Input from File ************** 240 CLOSE #2:OPEN "C:\WINBASIC\EX1B_OUT.TXT" FOR INPUT AS #2 250 IF EOF(2)<>0 THEN GOTO 190 260 INPUT #2,X,Y1,Y2,Y3 270 PRINT"Inp:x=";X;" y1=";Y1;" y2=";Y2;" y3=";Y3;" 280 GOTO 150 290 CLOSE #2 300 '***** Close All Files and Computer Stop***** 310 CLOSE 320 END

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.5

110 REM EX1B by E/F on 2006/04/25 DEBUG by BLUEPIXY 120 PI=3.14159:PHI=30:Y0=.5 130 '************ Output into File ************ 140 CLOSE #1:OPEN "C:\TEMP\EX1B_OUT.TXT" FOR OUTPUT AS #1 150 FOR X=0 TO 360 STEP 45 160 A=.2 :Y1=A*SIN((X-PHI))+Y0 170 A=1.2 :Y2=A*SIN((X-PHI))+Y0 180 A=2 :Y3=A*SIN((X-PHI))+Y0 190 PRINT #1,X;",";Y1;",";Y2;",";Y3 200 PRINT"Out:";X;",";Y1;",";Y2;",";Y3 210 NEXT X 220 CLOSE #1 230 '************ Input from File ************** 240 CLOSE #2:OPEN "C:\TEMP\EX1B_OUT.TXT" FOR INPUT AS #2 250 IF EOF(2)<>0 THEN GOTO 290 260 INPUT #2,X,Y1,Y2,Y3 270 PRINT"Inp:x=";X;" y1=";Y1;" y2=";Y2;" y3=";Y3 280 GOTO 250 290 CLOSE #2 300 '***** Close All Files and Computer Stop***** 310 CLOSE 320 END

catnapist
質問者

お礼

できました~。ファイル入出力できました。エラーが出るといつも前の方ばかり見てしまって、200から先を見てませんでした。後ろの方も気をつけるようにます。遅い時間にご回答いただき有難うございました。

その他の回答 (4)

noname#20378
noname#20378
回答No.4

#3です ところで・・・自分はあまり詳しくないので識者の皆様に聞きたいんですが For ~NextにGotoで飛んだ場合のカウンタ変数って正しく動きますかね?

noname#20378
noname#20378
回答No.3

ちょっと前まで疑問だったけどたぶんこれ。 190 PRINT #1,X;",";Y1;",";Y2;",";Y3"  195 REM 250行目及び280行目から飛んできた場合は#2は開かれているが#1は開かれてない

catnapist
質問者

お礼

ご回答有難うございます、確かに矛盾していました。

  • asuca
  • ベストアンサー率47% (11786/24626)
回答No.2

>190 PRINT #1,X;",";Y1;",";Y2;",";Y3" 最後のY3の後ろにあるダブルコーテーション(”)は何なのかな? いらないと思いますが。

catnapist
質問者

補足

ご回答有難うございます。確かに要らないですね。でもプログラム全体には影響しないみたいです。実行画面で修正前と修正後を見比べたところ特にこれといったは変化はないです。

  • saru_1234
  • ベストアンサー率33% (452/1341)
回答No.1

はずしてたらすみません. ファイルへの書き込みのPRINT文は, PRINT#1,... のように, PRINT と #1 の間を空けなかったように 思いますが... (確認しようとしましたが資料が見つかりませんでした.)

catnapist
質問者

補足

ご回答有難うございます。PRINT#1(スペースなし)で実行いたしましたところ「文法エラーです」になっちゃいました。付け足しですが、元々のエラー内容は「ファイルがオープンされていません」です。

関連するQ&A