- 締切済み
FORTRAN77のプログラミングを教えて下さい。
FORTRAN77のプログラミングを教えて下さい。 九州・沖縄8件の名前kenと面積(km2)menと人口(人)jinが書かれたファイル'kyusyu.txt'がある。これを読み、面積、人口、人口密度(人/km2)mituの大きい順に県名と値を書き出すプログラムを完成させよ。(型宣言も必要) 主プログラムは、数、名前、値を与えるのみで、作業本体はサブルーチン副プログラムjunに任せる事とする。副プログラムは論理型変数を使う手法。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- noyuo
- ベストアンサー率39% (33/84)
モジュール分割の作業は終わっているようなので、あとは、変数(配列)の設計と処理フローを考えてから、プログラミングになりますよね。 使用する変数は、読み込んだデータの格納(&並べ替え)用と人口密度用の配列と、ループのインデックスぐらいでしょうか。 県の数分の配列として以下を静的配列宣言。 ・名前は文字型 ・人口は整数型 ・面積と、人口密度は、実数型 >主プログラムは、数、名前、値を与えるのみ ということは、 主プログラムでファイルのオープン、読み込み、クローズを行って、jun を呼ぶ。 junは、 (1)読み込んだ県の数分ループして、人口密度を計算し配列にセット。 (2)mituの大きい順にソート。(バブルソートでよいでしょう) (3)並べ替えた順に出力。 をする。 ところで、 > 副プログラムは論理型変数を使う手法 とは、どういうことだろう? ファンクション関数のことかな? ごめんわかりません。 >作業本体はサブルーチン副プログラムjunに任せる とあるので、このプログラムの目的の出力もjunに入れたが、 junの名前は順番に並べ替えの「順」を意味しているなら、主プログラムで(3)を するのだろうか? 最後に、入力ファイルの形式もプログラムの設計に任せられてると思うので、 1行に1つの県の情報を、固定長の書式で読み込むとしてよいと思います。
- usokoku
- ベストアンサー率29% (744/2559)
FORTRAN77ですと、文字変数の方言があったはず。 文字関係は、マニュアルをみないと答えられません。 漢字が使える言語と英数のみの言語と英数かなの使用可能な言語があったはずで、文字コードの違いも処理系によって方言が有ります。 ファイルの書式は?。分離記号は? 80Hで読みとって、分離記号で分けるルーチンが必要なのか、言語にまかせるのか、書式を指定するのか。 主プログラムは、名称で決定する処理系と、宣言で任意の名称が使える処理系があったはず。どちらですか。 副プログラムについては、副プログラムであることの大域宣言が必要な処理系と、システムのほうで勝手に解釈してないならばあるものとして処理していれる処理系があったはず。どちらですか。 私の使っている処理系とご質問者の希望する処理系との違いがあるはず(1980年代に購入して以後使いつづけています)なので、補足ください。