人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

↓のプログラムをフローチャートでしめすとどうなるのでしょうか。図形表示でなく記号の名前順に並べてもらえると助かります。端子→準備→ループ→処理→出力→判断→入力になりましたが自信がないです。どなたか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

●質問者: yuigadokusonn
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:333 360 ABS ALL as
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● きゃづみぃ
●35ポイント

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

◎質問者からの返答

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


2 ● くまっぷす
●35ポイント ベストアンサー

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年ぐらいですが。

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

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ