[過去ログ] くだすれFORTRAN(超初心者用)その6 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(3): 2012/08/16(木)20:58 AAS
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
FORTRAN使いが優しくコメントを返しますが、
お礼はFORTRANの布教と初心者の救済と次期Fortran2008規格でのCOMEFROM文採用をお願いします。

●注意事項
・質問する前にGoogle等の検索サイトで検索しましょう。
・回答者にわかりやすい様に、質問内容はできる限り詳しく書きましょう。
・エラーの場合は起きた状況、環境(OS・コンパイラ・バージョン)、エラーメッセージも詳しく書きましょう。

●前スレ
くだすれFORTRAN(超初心者用)その5
省10
2: 2012/08/16(木)21:32 AAS
           , r‐‐ 、_
        ,  ´ ̄  ´ ̄    ̄ミ 、   ____/: : : : ヽ、
    __./         `¨       \/: : : : : : : : :: : :  : : : : : : : : }
     / /// // /  ,.、  /     /  : : : : : : : : :   : : : : : : /
    _,ァ≫イ/ / / /  <、\>′   ヽ{  : :\      フ: : : : :/
      イ/| //ー-、   />/`Y    ∧\.:: : : :ヽ   /: : : :/   ) (
     彡' ノ,イ{/{__///「/¨ヽ.! ! | .}}  /: : :.i  /: : : : :/   (   )
       彡' ノ }イ:::} ´´ r=ミ、 }ノ 1 小      /: : : : :/  (   ノ            こ、これは>>1乙じゃなくて
            片ソ   /:::しヘ从 j/从.ゝ 彡/: : : : :/            |\        レンコンしそ餃子の湯気なんだからね
        {:::::、   廴::/}{/ ,'{/  /  ,': : : : /      (     (. |: : \       今後は、気をつけなさい!!
省10
3
(1): 2012/08/17(金)02:14 AAS
> 初心者に適切な指導もなくプログラム書かせているのはアカハラの域に達してるな。

これって割と多いような気がするな。
まあ分野によっちゃいずれ必要になることが前前から分かっていそうな気もするのだが
それも指導のうちと言えばそうだ
4: 2012/08/17(金)04:02 AAS
do i=2,1000
write(*,*) '1otsu'
enddo
5: 2012/08/17(金)19:12 AAS
>>3
昔は先輩が教えることが前提となっていたから成立したが、
最近、先輩がいなかったり、知らなかったりで、伝承が途切れている。
時代の変化に、サヨクかぶれの爺さんたちの現状認識が追いついていない。
連中は鳩山みたいに夢を見て、管みたいに怒鳴り散らしてるからw
6
(1): 2012/08/17(金)20:00 AAS
前スレくだすれFORTRAN(超初心者用)その5の>>999さん
アドバイスありがとうございます。引き続きよろしくお願いします。
変更点の件ですが、

入力文
character (len = 20) :: filenm
write(*,'(a,$)') 'File Name : '
read(*,'(a)') filenm
open(11,file= TRIM(filenm) )

出力文
write(*,'(a,$)') 'File Name : '
省4
7: 2012/08/17(金)20:51 AAS
>>6
それだと出力してない。
OPEN と CLOSE の間で出力する。

ただ一度に欲張らず、まず固定された入力ファイルと出力ファイルで
ちゃんと計算できるプログラムをつくって確認しておくべき。

その後、色々ループさせたり、ファイル名を変えたり出来るようにすべき。
ものには順番があり、近くから遠くへ及ぼすべしとは、四書のはじめ大学にも書いてあるw
8: 2012/08/17(金)21:14 AAS
これまでの教えていただいたプログラムが下記になります。

program test
implicit none
integer, parameter :: ndata = 400
real :: a(18, ndata), x(3, ndata), y(3, ndata)
real :: s, sx, sy, tx(ndata), ty(ndata)
integer :: i, j, icol

character (len = 20) :: filenm
write(*,'(a,$)') 'File Name : '
read(*,'(a)') filenm
省14
9: 2012/08/17(金)21:16 AAS
! exel data y
do i = 1, ndata
read(12, *) (y(j, i), j = 1, 3)
end do
!
do i = 1, ndata
tx(i) = (i * 50.0 - 25.0) * x(3, i)
ty(i) = (i * 50.0 - 25.0) * y(3, i)
end do

print *, 'input column '
省7
10
(1): 2012/08/17(金)21:38 AAS
write(*,'(a,$)') 'File Name : '
read(*,'(a)') filenm
open(14,file=filenm)

write(*,*) 'result=', s ! <--だから結果を書きだせってw

close(14)
11
(1): 2012/08/17(金)21:39 AAS
write(14,*) 'result=', s ! <--だから結果を書きだせってw

思わず間違えたwwww
12
(25): 2012/08/17(金)21:52 AAS
>>10>>11
アドバイスありがとうございます。とろいのですいません。

出力文
write(*,'(a,$)') 'File Name : '
read(*,'(a)') filenm
open(14,file=filenm)
write(14,*) 'result=', s ! <--結果を書き出すプログラム。
close(14)

こういうことでしょうか?
13
(1): 2012/08/17(金)22:03 AAS
そうそう。欲しい結果を書きだす。
本来は、入力ファイル名や計算したカラム(列)番号のような
付加的な情報も書いておくべきだろうが・・・

open(14,file = trim(filenm) ) ! <- こっちもTRIMで尻の空白を削っておくべし。
14: 12 2012/08/17(金)22:16 AAS
>>13
最後の方は、こういう感じでプログラムすればうまく動きますかね。

print *, 'input column '
read *, icol
sx = sum( tx * a(icol, :) )
sy = sum( ty * a(icol, :) )
s = sx / sy

write(*,'(a,$)') 'File Name : '
read(*,'(a)') filenm
open(14,file = trim(filenm) ) ! <- TRIMで尻の空白を削る。
省6
15
(1): 2012/08/17(金)23:15 AAS
character (len = 20) :: filenm_in, filenm_out
write(*,'(a,$)') 'File Name : '
read(*,'(a)') filenm_in
open(11,file= TRIM(filenm_in) )

・・・・

write(*,'(a,$)') 'File Name : '
read(*,'(a)') filenm_out
open(14,file=trim(filenm_out))
write(14, *) 'input file name', filenm_in
write(14, *) 'column no.', icol
省5
16: 12 2012/08/17(金)23:31 AAS
>>15
度々すみません。親切にありがとうございます。
プログラムに組み込ませていただきます!

今日もかれこれ5時間くらいネカフェにいますが、
そろそろおいとまします。自転車こいで橋を越えた甲斐がありました。
また色々教えてください。
17: 12 2012/08/17(金)23:46 AAS
最後にプログラム全体を書き込ませてください。
program test
implicit none
integer, parameter :: ndata = 400
real :: a(18, ndata), x(3, ndata), y(3, ndata)
real :: s, sx, sy, tx(ndata), ty(ndata)
integer :: i, j, icol

character (len = 20) :: filenm_in, filenm_out
write(*,'(a,$)') 'File Name : '
read(*,'(a)') filenm_in
省18
18: 12 2012/08/17(金)23:47 AAS
!
do i = 1, ndata
tx(i) = (i * 50.0 - 25.0) * x(3, i)
ty(i) = (i * 50.0 - 25.0) * y(3, i)
end do

print *, 'input column '
read *, icol
sx = sum( tx * a(icol, :) )
sy = sum( ty * a(icol, :) )
s = sx / sy
省9
19: 12 2012/08/17(金)23:48 AAS
本日もどうもありがとうございました。
お先に失礼します。
20
(1): sage 2012/08/21(火)14:51 AAS
わからないので教えてください。
メモ帳(a.txt)のなかにデータがあります。

A B C D
1 1 1 1
2 2 2 2
‥‥‥‥
100 100 100 100

みたいな感じでデ−タがあるのですが、

B列の1行から100行まで
D列の1行から100行までのデータを取り出して
省4
1-
あと 982 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.321s*