• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エラーがでて困っています。)

エラーが出て困っています。デジタイザーを使ってグラフを数値化するプログラムを作成したい

Takochuの回答

  • ベストアンサー
  • Takochu
  • ベストアンサー率53% (82/154)
回答No.6

こんばんは。毎度、Takochu です。 > デジタイザーの設定を変更したあと、 > その設定を反映させるためにデジタイザー本体の再起動が必要だったのです。 > 何事も設定後は再起動させるものなのですね。 初期化の制御命令などは、ないんですか? そういえば、昔のスキャナもなかったような気がします。 > また、CIRCLE文の半径などは利用できないと前回指摘していただきましたが、 > 半径以外ならCIRCLE文は利用できるのでしょうか? 前回、"CIRCLE" 文には利用できない、と書きましたが、 思い違いをしていました。(^_^;) 以下のようにすれば解決できます。 DEF FNWR(R)= INT( R *(500-100+1)/(3880*CHANGE-40+1)) 使用方法は、前回と同様です。 DEF FNWR(R)= INT( R *(vx1-vx0+1)/(wx1-wx0+1)) これで相対座標に対応できます。 なぜ、思い違いをしていたかというと、 例えば、"WINDOW(0,0)-(100,400)" という設定で、 "CIRCLE(50,200),50" を実行すると、 理屈では、非常に横長な円が描かれると思っていたのですが、 実際に確認してみると、画面ちょうどの大きさで普通の円が描かれます。 つまり、"WINDOW"、"VIEW" 文は横軸にしか連動していないのです。 だから、上記の式で十分に対応できます。 4990 CIRCLE(FNWX(X(I)*20!+100),FNWY(3860-Y(I)*12000)),FNWR(10*CHANGE),6 これで、問題が解決したでしょうか。 ところで、以前から思っていたんですけど、 このグラフ、何のグラフですか?

YukkeVer3
質問者

お礼

Takochu師匠、返事が遅れてまことに申し訳ございません。 いつも、本当に助かっております。ありがとうございます。 このグラフの説明ですが、 私たちが行っている研究は超臨界クロマトグラフィーというもので、 実験結果としてピークが出てきます。 そのピークを数値変換して解析を行っていきます。 そこで、必要なのがデジタイザーです。 そのピークを数値変換するのに必要なプログラムを作っているのです。 本来ならば、ピークはデジタルマルチメータというもので、 出てきたピークは自動的に数値化されていくのですが うちの研究室ではデジタルマルチメーターが非搭載のPCですので わざわピークをプリントアウトしてデジタイザーを使用して 数値化していくのです。 また、質問があったあらその時はどうぞよろしくお願いします。 ところで、Takochu師匠にポイントをつけたいのですが、 これってポイントをつけた時点で質問の解答受け付け終了に なってしまうのですか?

関連するQ&A

  • BASICからC言語に

    BASICで for I=1 to 5:line input #2,w$:next I line input #2,COMMENT$ と書かれているプログラムをC言語に書き直したいのですがどのようにしたらいいのでしょうか?

  • 「パスが見つかりません」というエラー

    data.txtにセルの入力内容を出力したくて下記のようなプログラムを書きました。 ところが Open StrFN For Output As #IntFlNo のところで パスが見つかりません というエラーが出てしまいます。原因はわかりますでしょうか。 Sub test() Dim StrFN As String Dim i As Long Dim IntFlNo As Integer StrFN = "c\data.txt" IntFlNo = FreeFile Open StrFN For Output As #IntFlNo For i = 2 To 400000 Write #IntFlNo, Cells(i, 1) & "$" & Cells(i, 2) Next i Close #IntFlNo End Sub

  • 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波を合成した波を描く方法が分からない状態です。 どうにも解決できないのでここに質問しました。どなたか分かる方がいたら教えてください。

  • N88互換BASICで「メッセージの定義されてないエラーです」と出ます

    N88互換BASICで「メッセージの定義されてないエラーです」と出ます… 最近プログラミングを始めた初心者です。 プログラムでエラーが出て困っています、どこが問題なのか改善方法を教えてください。 10 DIM A(100,100,100) 20 INPUT "B=";B 40 FOR i=1 to 100 step 1 50 FOR j=1 to 100 step 1 60 FOR k=1 to 100 step 1 70 A(i,j,k)=B 80 print A(i,j,k) 90 NEXT k 100 NEXT j 110 NEXT i こんな感じのものです。 配列変数を作って、Bの数値を全ての配列変数に代入したいです。 宜しくお願致します。

  • プログラムの見本を示してください!!

    数学プログラムの授業をしています。:プログラム言語は「Basic」です。 今から問題と、少しやれたものについては、プログラムを記してみました。 問題の最後の 「※」部分が質問したいところです。ない場合は、何もわからないところです。 (1)DIMを用いて 5つの値をキーボードから入力して、そのうち最大の値を表示するプログラム ※90行目以降の「最大値」の表示の仕方がいまいちわかりません。   10:DIM (5) 20:FOR I=0 TO 4 30:INPUT I 40:NEXT I 50:S=0 60:FOR L=0 TO 4 70:S=S+A 80:NEXT L 90:PRINT ??? (2)FOR,NEXT分を使い、 S=2+(2+3)+(2+3+4)+ ........+(2+4+5+6+7+8+9+10) の計算をして Sを表示するプログラムを作りたい。 以上お願いいたします。

  • basicでの三角関数のグラフの書き方??

    active basicを使って、sinxのグラフを書こうとしたのですが、出来ません。以下のようにやってみたのですが、x軸と平行な点線が描かれるだけ…。 100 cls3 110 line(50,550)-(1050,550) 120 line(550,50)-(550,1050) 130 for i=0 to 360 140 x=i/360:y=sinx 150 xw=500*x+550:yw=500*y+550 160 pset (xw,yw) 170 line -(xw,yw) 180 next i 990 end どこを直せばいいのか分かりません。初心者なので…。 どなたか分かる方がいらっしゃったら、教えてください。 宜しくお願いします。

  • 【至急】文字を点滅させる方法は?

    質問します。 下記のプログラムにおいて、 13 PRINT "只今、計算中です。少々お待ち下さい。" 14 PRINT "計算終了後、下記に結果を表示します。" の部分だけを点滅させたいのですが、色が変わる変化しかしません。COLOR 2と書けば点滅するはずですよね? 1 CLS 2 REM 乱数を用いてサイコロ(6面体ダイス)を再現。12000回振って各自がほぼ2000回ずつ出るようなサイコロを目指す。 10 INPUT "乱数系列の値をいくつに設定しますか" ;X 13 PRINT "只今、計算中です。少々お待ち下さい。" 14 PRINT "計算終了後、下記に結果を表示します。" 20 RANDOMIZE X 30 DIM DICE(6) 40 FOR T=1 TO X 50 LET N=1+INT(6*RND) 60 FOR I=1 TO 6 70 IF N=I THEN LET DICE(I)=DICE(I)+1 80 NEXT I 90 NEXT T 100 PRINT 110 FOR J=1 TO 6 120 PRINT J;"の目は"; DICE(J);"回出ました。" 130 NEXT J 140 END よろしくお願いします。

  • Basicでのプログラムなのですが・・・

    配列変数についてなのですが、 『20個のデータを入力し、大きい順に並べて表示するプログラム。』 なのですが… 言語:【BASIC】 ソフト:【N88】 を使用しています。 とりあえず、 10 DIM A(20) 20 FOR I=1 TO 20 30 INPUT A(I) 40 NEXT I まではわかるのですが、ここから先がわかりません。 ここから先はどのようにすればいいでしょうか。 どなたかご教授いただけると幸いです。

  • N88相互Basic for Windows95でのプログラム

    初めて質問いたします。 ただいまN88相互Basic for Windows95というソフトを使用して「1~45の数字をランダムに並べて表示する」というプログラムを作成してみたのですが、どうしても数字が重複してしまうのです。どこが間違っているのか教えてください。 下記に自分の作成したプログラムを記入します。又、より効率のいい書き方があれば教えてください。よろしくお願いしますm(_ _)m 10 cls 20 input "今日は何月";tuki 30 input "何日";niti 40 for a=0 to tuki 50 for b=0 to niti 60 seki=rnd 70 next b 80 next a 90 cls 100 dim x(50) 110 x(0)=0 120 for s=1 to 45 130 x(s)=int(rnd*45) 140 for c=0 to s-1 150 if x(s)=x(c) or x(s)<1 then x(s)=int(rnd*45):goto 150 160 next c 170 if s=10+e then e=e+10:q=q+1 180 locate q*3,s-e:print x(s) 190 next s 一応流れとしましては、 「月と日を入力してランダムさを出す」 ↓ 「1~50のデータ数があるのを定義する」 ↓ 「今決めているデータの数字と今まで決めたデータの数字を比較して一緒か1未満なら決めなおす」 ↓     ↑ 「今までのと比較して、一緒じゃないなら数字を表示して次のデータへ」 という流れにしている予定ですが、どうやっても数字が重なってしまうので改善点があれば教えてください。お願いしますm(_ _)m

  • 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