このディレクトリの索引 # [1] 授業単元:fortran # [2] 問題文(含コード&リンク):配列を使わずに平均値、分散、標準偏差を表示せよ # データ数nとn個のデータを入力し、平均値、分散、標準偏差を標示せよ。なおn≧5である。 # dimension、if、go toを使ってはいけない。 '配列を使わずに平均値、分散、標準偏差を表示' :- write('データ数 : '), get_integer(N), writef('%個の数を1個1行で連続して入力してください : ',[N]), get_line(Line), read_term_from_atom(Line,X,[]), '配列を使わずに平均値、分散、標準偏差を表示'(1,N,X,0,_,Z). _分散 is Z / N, _標準偏差 is sqrt(Z / (N - 1)), writef('平均値=%t,分散=%t,標準偏差=%t\n',[_平均値,_分散,_標準偏差]),!. '配列を使わずに平均値、分散、標準偏差を表示'(M,N,X,S,_平均,0.0) :- M > N,_平均 is S / N,!. '配列を使わずに平均値、分散、標準偏差を表示'(M,N,X,S1,_平均,Z) :- get_line(Line2), read_term_from_atom(line2,X2,[]), S2 is S1 + X, M1 is M - 1, '配列を使わずに平均値、分散、標準偏差を表示'(M1,N,X2,S2,_平均,Z2), Z is (X - _平均) ^ 2 + Z2. get_line(Line) :- read_line_to_codes(current_input,Codes), atom_codes(Line,Codes). get_integer(N) :- read_line_to_codes(current_input,Codes), number_codes(N,Codes), integer(N).