↓のプログラムをフローチャートでしめすとどうなるのでしょうか。図形表示でなく記号の名前順に並べてもらえると助かります。端子→準備→ループ→処理→出力→判断→入力になりましたが自信がないです。どなたかBASIC経験者の方、プログラミングに詳しい方でアドバイス・コメント等お願いします。


130 '************ Output into File ************
140 CLOSE #1:OPEN "C:\WINBASIC\suutikaiseki_OUT.TXT" FOR OUTPUT AS #1
150 FOR I = 1 TO 6
160 READ X0
165 X=X0
170 GOSUB 240
180 NEXT I
190 CLOSE #1
200 GOTO 390
210 END
240 N=0
250 ER=.00001
260 FX=X0*X0-333
270 DFX=2*X0
275 X1=X0-FX/DFX
280 X1=1/2*(X0+333/X0)
290 IF ABS(X1-X0)<ER THEN 320
300 N=N+1
302 PRINT #1,;N;",";X;",";X1;"
304 PRINT"Out:N=";N;" X=";X;" X1=";X1
305 X0=X1
310 GOTO 260
320 PRINT #1,;N+1;",";X;",";X1;"
330 PRINT"Out:N=";N;" X=";X;" X1=";X1
340 RETURN
350 '*************試行値*************
360 DATA 1,5,10,50,100,500
370 CLOSE #1
380 '************ Input from File **************
390 CLOSE #2:OPEN "C:\WINBASIC\suutikaiseki_OUT.TXT" FOR INPUT AS #2
400 IF EOF(2)<>0 THEN GOTO 440
410 INPUT #2,N,X,X1
420 PRINT"Inp:N=";N;" X=";X;" X1=";X1
430 GOTO 400
440 CLOSE #2
450 '***** Close All Files and Computer Stop*****
460 CLOSE
470 END

回答の条件
  • 1人2回まで
  • 登録:2006/05/26 05:06:14
  • 終了:2006/05/27 16:31:59

ベストアンサー

id:Kumappus No.2

くまっぷす回答回数3784ベストアンサー獲得回数1852006/05/26 09:49:15

ポイント35pt

http://www.cs.takushoku-u.ac.jp/caed/kisosemi/k7/FlowChart.html

端子→準備→ループ→処理→出力→判断→入力

確かにフローチャートの用語で端子とかありますけどあまりこだわる必要はないと思います(はじめとか処理開始とか終わりとか書くのが端子…terminalの訳なんでしょうね)。

プログラム自体は

140が開始処理(ファイルオープン)

150〜180がメインのループ部分

190、200→390移行が結果表示と終了処理

(210と370は浮いてますね…ここにはどこからもこないな)

240〜340までがサブルーチン

メイン:

端子(処理全体の「はじめ」)

     ↓

ファイルを準備する

     ↓

I=1から6までのループ (実際のフローチャートではFOR文もIFと変数の計算みたいに書き下す必要あり)

  ↓

DATAのX0への読み込み、Xにコピー

     ↓

ループの終了判定、I = I+1

     ↓

結果の入ったファイルをオープン

     ↓

結果をファイルから読み出して表示するループ

     ↓

ループの終了判定 ファイルの最後まで読み出したか(Y/N)

     ↓

ファイルクローズ

     ↓

(念のため全部クローズ)

     ↓

全体の「終わり」(端子)

サブルーチン:

サブルーチンのはじめ(端子)

     ↓

N=0, ER=.00001 (変数の初期化)

FX=X0*X0-333 (関数f(x)の計算)

     ↓

DFX=2*X0 (微分値の計算)

X1=X0-FX/DFX

     ↓

X1=1/2*(X0+333/X0)

     ↓

ループの終了判定 X1-X0の絶対値が誤差ERより小さいならばループをぬける

     ↓

N=N+1

     ↓

結果表示、結果をファイルに保存

     ↓

X0=X1

     ↓

ループ(260に戻る)

     

ループを抜けてきたところ(320)

結果表示、結果をファイルに保存

     ↓

RETURN(戻る) (340) (端子)


というところでしょうか。

それにしてもこれが授業だったとしたらちょっと(ほんの30年ぐらい)時代遅れですね…

コンピュータの歴史は60年ぐらいですが。

たぶん、今の世の中でフローチャートがまだ実用になっているのは特許の申請ぐらいじゃないかと思います。

id:yuigadokusonn

そうなのですか。プログラムの各部分の働きを理解させるのが目的だったようです。ご回答有難うございました。

2006/05/27 16:31:25

その他の回答(1件)

id:taknt No.1

きゃづみぃ回答回数13539ベストアンサー獲得回数11982006/05/26 06:22:43

ポイント35pt

GOSUB 240

と呼んでる箇所は、サブルーチン扱いになりますので、別に

分けます。

http://www016.upp.so-net.ne.jp/masuda2/text1/Flow/algo003.html

メイン側は

開始→準備(ファイルオープン)→ループ→処理(X0取得)→X=X0→SUB呼び出し(関数のフロー)→ファイルクローズ→ファイルオープン→

判断(ファイル終了か)→No N,X,X1をファイルから読み取り→画面に出力→判断に戻る

→Yes ファイルクローズ →終了

最後のCLOSE って必要なのかは わかりませんが・・・。

あと、200から GOTO 390 って 飛ばないで

そこから 390 以降を入れたほうが 少しは 見やすくなるでしょう。

サブルーチン側は

端子→N=0→ ER=.00001→FX=X0*X0-333→DFX=2*X0→X1=X0-FX/DFX→X1=1/2*(X0+333/X0)→判断 ABS(X1-X0)<ER →Yes N=N+1</p>

→ファイル出力→画面出力→X0=X1

→260に戻る

→No ファイル出力→画面出力→RETURN

id:yuigadokusonn

サブルーチン部分についても理解できました。ご回答有難うございました。

2006/05/27 16:29:56
id:Kumappus No.2

くまっぷす回答回数3784ベストアンサー獲得回数1852006/05/26 09:49:15ここでベストアンサー

ポイント35pt

http://www.cs.takushoku-u.ac.jp/caed/kisosemi/k7/FlowChart.html

端子→準備→ループ→処理→出力→判断→入力

確かにフローチャートの用語で端子とかありますけどあまりこだわる必要はないと思います(はじめとか処理開始とか終わりとか書くのが端子…terminalの訳なんでしょうね)。

プログラム自体は

140が開始処理(ファイルオープン)

150〜180がメインのループ部分

190、200→390移行が結果表示と終了処理

(210と370は浮いてますね…ここにはどこからもこないな)

240〜340までがサブルーチン

メイン:

端子(処理全体の「はじめ」)

     ↓

ファイルを準備する

     ↓

I=1から6までのループ (実際のフローチャートではFOR文もIFと変数の計算みたいに書き下す必要あり)

  ↓

DATAのX0への読み込み、Xにコピー

     ↓

ループの終了判定、I = I+1

     ↓

結果の入ったファイルをオープン

     ↓

結果をファイルから読み出して表示するループ

     ↓

ループの終了判定 ファイルの最後まで読み出したか(Y/N)

     ↓

ファイルクローズ

     ↓

(念のため全部クローズ)

     ↓

全体の「終わり」(端子)

サブルーチン:

サブルーチンのはじめ(端子)

     ↓

N=0, ER=.00001 (変数の初期化)

FX=X0*X0-333 (関数f(x)の計算)

     ↓

DFX=2*X0 (微分値の計算)

X1=X0-FX/DFX

     ↓

X1=1/2*(X0+333/X0)

     ↓

ループの終了判定 X1-X0の絶対値が誤差ERより小さいならばループをぬける

     ↓

N=N+1

     ↓

結果表示、結果をファイルに保存

     ↓

X0=X1

     ↓

ループ(260に戻る)

     

ループを抜けてきたところ(320)

結果表示、結果をファイルに保存

     ↓

RETURN(戻る) (340) (端子)


というところでしょうか。

それにしてもこれが授業だったとしたらちょっと(ほんの30年ぐらい)時代遅れですね…

コンピュータの歴史は60年ぐらいですが。

たぶん、今の世の中でフローチャートがまだ実用になっているのは特許の申請ぐらいじゃないかと思います。

id:yuigadokusonn

そうなのですか。プログラムの各部分の働きを理解させるのが目的だったようです。ご回答有難うございました。

2006/05/27 16:31:25

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません