新しく発言する EXIT インデックスへ
ファイルの読み込み方

  ファイルの読み込み方 ひろ 2007/03/18 09:19:56 
  DATA文の内容, 白石和夫 2007/03/18 09:34:57 
   └蛇足ですが,データを複数組用意する場合は... 白石和夫 2007/03/18 09:38:55 
    └訂正 白石和夫 2007/03/18 09:43:48 
     └訂正の訂正 白石和夫 2007/03/18 10:31:18 
      └素早いご返答、ありがとうございます。 ひろ 2007/03/18 12:28:09 
       └DEF文はDO〜LOOPの外に書いてください。 白石和夫 2007/03/18 14:47:49 
        └できました。本当に助かりました。 ひろ 2007/03/18 15:49:50 

  ファイルの読み込み方 ひろ 2007/03/18 09:19:56  ツリーへ

ファイルの読み込み方 返事を書く ノートメニュー
ひろ <giveptyxsm> 2007/03/18 09:19:56
初めまして。
積分しようと思い、台形公式を使えばいいことまでは分かりました。
ただ、この場合のmとzのデータをいちいち書くのではなく、ファイルから読み込んで計算したいのですが、よく分かりません。
ファイルはテキストファイルとエクセルのファイルがあります。
教えていただけないでしょうか?
よろしくお願いします!

READ a,n,c,m,z
DEF fnf(x)=((0.3*(1+x)^3)+0.7)^(-1/2)
LET h=(z-a)/n
LET s=(fnf(a)+fnf(z))/2
FOR k=1 TO n-1
LET x=a+h*k
LET s=s+fnf(x)
NEXT k
LET s=s*h
LET l=(1+z)*c*s

LET g=m-5*LOG10(l)+2.5*LOG10(1+z)
PRINT g
DATA 0,10000,3000000000,20,1


END

  DATA文の内容, 白石和夫 2007/03/18 09:34:57  ツリーへ

Re: ファイルの読み込み方 返事を書く ノートメニュー
白石和夫 <fbdfvqwhki> 2007/03/18 09:34:57
DATA文の内容,
0,10000,3000000000,20,1
をメモ帳などで,適当なテキストファイルに書き込みます。
そのファイル名が"ABC.TXT"だとしたら,
プログラムのはじめの方に
OPEN #1: NAME "ABC.TXT"
END行の手前に
CLOSE #1
を追加して
READ a,n,c,m,z

READ #1: a,n,c,m,z
に書き換えれればOkです。

   └蛇足ですが,データを複数組用意する場合は... 白石和夫 2007/03/18 09:38:55  ツリーへ

Re: DATA文の内容, 返事を書く ノートメニュー
白石和夫 <fbdfvqwhki> 2007/03/18 09:38:55
蛇足ですが,データを複数組用意する場合は,
1組のデータが1行になるようにファイルを作成し,

OPEN #1: NAME " "
DO
READ #1, IF MISSING THEN EXIT DO: a,n,c,m,z

LOOP
CLOSE #1
END
のような感じのプログラムにします。

データをEXCELで作成したいときは,
横方向に a,n,c,m,zとなるようにデータを入力して
CSV形式で書き出せば使えます。

    └訂正 白石和夫 2007/03/18 09:43:48  ツリーへ

Re: 蛇足ですが,データを複数組用意する場合は... 返事を書く ノートメニュー
白石和夫 <fbdfvqwhki> 2007/03/18 09:43:48
訂正
READ #1:
ではなくて
INPUT #1:
としてください。

     └訂正の訂正 白石和夫 2007/03/18 10:31:18  ツリーへ

Re: 訂正 返事を書く ノートメニュー
白石和夫 <fbdfvqwhki> 2007/03/18 10:31:18
訂正の訂正
READ #1:
でもかまいません。
(どちらでも同じ)

      └素早いご返答、ありがとうございます。 ひろ 2007/03/18 12:28:09  ツリーへ

Re: 訂正の訂正 返事を書く ノートメニュー
ひろ <giveptyxsm> 2007/03/18 12:28:09
素早いご返答、ありがとうございます。
ファイルからDATA一組を読み込むことができました。
ですが、複数組のデータの場合がまだよく分かりません。
DEF文でエラーが出ます。
度々申し訳ないのですが、お願いします。

OPEN #1: NAME "ABC.TXT"
DO
READ #1, IF MISSING THEN EXIT DO: a,n,c,m,z
DEF fnf(x)=((0.3*(1+x)^3)+0.7)^(-1/2)
LET h=(z-a)/n
LET s=(fnf(a)+fnf(z))/2
FOR k=1 TO n-1
LET x=a+h*k
LET s=s+fnf(x)
NEXT k
LET s=s*h
LET l=(1+z)*c*s
LET g=m-5*LOG10(l)+2.5*LOG10(1+z)
PRINT g
LOOP
CLOSE #1
END




データは以下の様にテキストファイルでABC.TXTとして保存しました。
0,10000,3000000000,23,1.5
0,10000,3000000000,23,1.1
0,10000,3000000000,24,0.5

       └DEF文はDO〜LOOPの外に書いてください。 白石和夫 2007/03/18 14:47:49  ツリーへ

Re: 素早いご返答、ありがとうございます。 返事を書く ノートメニュー
白石和夫 <fbdfvqwhki> 2007/03/18 14:47:49
DEF文はDO〜LOOPの外に書いてください。

DEF fnf(x)=((0.3*(1+x)^3)+0.7)^(-1/2)
OPEN #1: NAME "ABC.TXT"
DO
READ #1, IF MISSING THEN EXIT DO: a,n,c,m,z
LET h=(z-a)/n
LET s=(fnf(a)+fnf(z))/2
FOR k=1 TO n-1
LET x=a+h*k
LET s=s+fnf(x)
NEXT k
LET s=s*h
LET l=(1+z)*c*s
LET g=m-5*LOG10(l)+2.5*LOG10(1+z)
PRINT g
LOOP
CLOSE #1
END

        └できました。本当に助かりました。 ひろ 2007/03/18 15:49:50  ツリーへ

Re: DEF文はDO〜LOOPの外に書いてください。 返事を書く ノートメニュー
ひろ <giveptyxsm> 2007/03/18 15:49:50
できました。本当に助かりました。
ありがとうございます!


インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。