• 締切済み

フォートランのプログラミング

今、CPad for Salford FTN77を使った授業で宿題を出されたのですが最後の問題の課題7がわかりません。 何かひらめきそうなんですがなかなか答えがでずに困っています。 申し訳ないのですがヒントだけでも教えていただけないでしょうか?よろしくお願いします。

この投稿のマルチメディアは削除されているためご覧いただけません。

みんなの回答

  • 8shi8
  • ベストアンサー率32% (90/274)
回答No.1

表示されている問題が読めないので回答できないです もう少し、綺麗に撮れている画像を添付してもらえると良いかと思います

Dai09
質問者

補足

画像が見にくくてすみません 問題文は10×10マスのエリアを@が移動するプログラムを作成せよというものです。なお(1,1)をスタート、(10,10)をゴールとし、10×10マスのエリアは壁で囲われており壁をすり抜ける等の移動はできないとする。移動はキーボードから入力して行う。例えばwが上、sがした、aが左、dが右に1マス移動するように設定する。ゴールしたらプログラムを終了せよ。という問題です。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • フォートラン

    今、CPad for Salford FTN77を使った授業で宿題を出されたのですが最後の問題がわかりません。 問題文は10×10マスのエリアを@が移動するプログラムを作成せよというものです。なお(1,1)をスタート、(10,10)をゴールとし、10×10マスのエリアは壁で囲われており壁をすり抜ける等の移動はできないとする。移動はキーボードから入力して行う。例えばwが上、sがした、aが左、dが右に1マス移動するように設定する。ゴールしたらプログラムを終了せよ。という問題です。 何かひらめきそうなんですがなかなか答えがでずに困っています。 申し訳ないのですがヒントだけでも教えていただけないでしょうか?よろしくお願いします。

  • Fortranを学校と家で両方使うには?

    これから課題でFortranを使ってプログラムしなくてはなりません。Fortranが全くわからず時間もないので学校でプログラムした続きを自宅のパソコンでもしたいと思うのですが、学校で使っているツールと違っても大丈夫なのでしょうか? 過去の質問と回答からFTN77 Personal EditionやCPad for Salford FTN77などがフリーのツールだということは分かったのですが…。 大変初歩的な質問ですが、教えて頂けたらとても助かります。よろしくお願いします。

  • FortranプログラムからC言語で実装された関数を呼ぶ方法

    Windows Vista Home PremiumにFTN95をインストールしたPCにて、Fortranのプログラミングをし始め、「Cpad for Salford FTN77」を利用してプログラミングをしています(FORTRAN77・Fortran90ともに)。FTN95でのFortranプログラミングに際し、FortranプログラムからC言語で実装された関数を呼ぶには、どのように対処すれば可能になりますでしょうか?何分初心者ですので、拙い質問かと思いますが、何卒ご教示願います。

  • FortranプログラムからC言語で実装された関数を呼ぶには?

    Windows Vista Home PremiumにFTN95をインストールしたPCにて、Fortranのプログラミングをし始め、「Cpad for Salford FTN77」を利用してプログラミングをしています(FORTRAN77・Fortran90ともに)。FTN95でのFortranプログラミングに際し、FortranプログラムからC言語で実装された関数を呼ぶには、どのように対処すれば可能になりますでしょうか? ユーザーガイドによれば、「Fortranプログラム中に、C_EXTERNALという宣言をした関数は、Cの関数と同じくアクセスできるようになり、C側では、#extern <返り値>関数名(引数)を与えれば、Cの関数として呼び込むことができる。」とのことがかかれています。 実際に使っているファイルをいくつか書き出します。 <D:\fortran\sample.f> C_EXTERNAL WRITE 'WriteFile' : INTEGER*4 INTEGER*4 RESULT RESULT=WRITE() write(*,*) result return end <D:\fortran\sample.c> #extern int Writefile(int); <C:\Program Files\Silverfrost\FTN95\ftn95c.bat> ftn95.exe %1 %2 %3 %4 %5 %6 %7 %8 %9 /link ちなみに、「Cpad for Salford FTN77」での実行/設定/実行/コンパイル時のパラメータは「/link /dreal」です。もちろんftn95.exeへのパスは通してあります。何が問題でしょうか? 何分初心者ですので、拙い質問かと思いますが、何卒ご教示願います。

  • FORTRANのフリーソフトFTN77?FTN95?

    FORTRANのフリーソフトFTN77?FTN95? こんにちは、理系大学3年生のものです。 夏休みの課題として、指導教授からFORTRANを学習するように言われました。 先生にはFTN Personal Edition 77をコンパイラとしてダウンロードしなさいと言われました。 宿題として出された参考書のタイトルにもFORTRAN77と書いてあります。 しかし、調べてみてもFTN77のダウンロード先が見当たりません。 どうやら、Salford FTN77の後継バージョンがSilverSoftからFTN95という名前になったらしいのですが、つまり、FTN77はもうダウンロードできないってことなんですか? FTN95をダウンロードしてコンパイラとして使用したら、バージョンが違うから、FORTRAN77の参考書では不都合が起きますか? できるなら参考書通りFTN77をダウンロードしたいと思っているのですが、できますかね? それとも最新のFTN95をダウンロードするべきですか? 回答お願いします。

  • Fortran90/Fortran95→Fortran77

    大学の授業でFortranを使ったプログラミングを勉強しています。 以下の文が大学のPCに入っているコンパイラでは問題なくコンパイルでき実行できるのですが、家のPCだとコンパイルすることが出来ません(以下の文でエラーが出ます) 大学のPCの開発環境はFujitsu-FORTRANだと思います(^ ^; 家のPCはSalford FTN77 Personal Edition CompilerとCPad for Salford FTN77を組み合わせて使用しています なぜエラーがでるのか自分なりに考えた結果、Fortran90/Fortran95のプログラムをFortran77のコンパイラでコンパイルしているからだと思います(全くの勘違いだったら指摘して下さい) Fortran90/Fortran95の開発環境がフリーで整えばいいのですが、見つからないのでプログラムを修正したいと思います そこで、力を貸していただきたいのです 前置きが長くなりましたが、エラーが出る文は以下のところです open(8,file='freq_ex13.dat',action='write',status='replace') ここを、Fortran77のコンパイラでコンパイルできるようにアドバイスを下さい よろしくお願いします

  • ファイルが存在しない?

    数値計算用のソフトとしてコンパイラーにsalfordのFORTRAN77、エディタにCpad for Salford FTN77を使用しております。 使用しているPCのOSはwindows XP HOME Edition service pack 2で、メモリは2GBです。 最近、ソースコードにおかしな箇所がないにもかかわらず、コンパイルをしようとすると「コンパイルに失敗しました」と表示され、計算ができないことがあります。 その際、「指定されたFORファイルは存在しません」とも表示されます。 ですが、FORファイル自体はまぎれもなく確かにPC内に存在するものです。 FORファイル名を間違って入力するなどはしておりません。 ちなみに、FORファイル名には半角英語や数字を用い、漢字などは使用しておりません。 また、ファイル名も、たとえば「new4」などのような短いものにしています。 故障かとも思い、コンパイラとエディタを両方とも再インストールしたこともありますが、改善されませんでした。 PC内にあるほとんどのFORファイルは問題なくコンパイルできます。 「コンパイルに失敗しました」と表示されるのは、ある特定のFORファイルをコンパイルしようとした時のみです。 この、「ある特定のFORファイル」は正常にコンパイルできるFORファイルのソースコード中の数値を少し変更したものです。 したがって、記述方式自体に問題があるとは思えません。 原因がまったくわからず、本当に困っています。

  • FORTRAN: WIN SalfordFTN77 → LINUX g77 (セグメントエラー)

    今まで、Salford FTN77 を使用していたのですが、 この度、LINUXのg77でプログラムを動かすことになりました。 Salford FTN77で正常に動作していたのですが、g77では、実行時に「セグメント違反」が発生してしまいます。 現在わかっていることを列挙しますと… ・Salford FTN77では、問題なく動作する ・g77で、コンパイルまでは成功する ・Salford FTN77からの書き換えはおそらく成功(同種のプログラムで確認済み) ・プログラムをループ(=50)させているのですが、特定のループ回数(=13)でセグメントエラーになる。 ・エラー前の計算は正しく行われている ・ループ回数(=10)を引き下げると実行可能になる ・ループ毎にファイルのcloseも行っている ・スタックを限界まで引き上げて実行したが、同様のエラーが発生 ・特定のループ回数(=13)から、ある特定の変数(ここでは b)を、表示(write( , ) b )もしくは代入(a=b)しようとするとエラーが発生する。 ・エラーが発生する直前までは、ある特定の変数(b)は正しく出力でき、値に異常もない。 元々、簡単な数値計算をおこなう程度にしかプログラムを扱っていない生粋の初心者です。 ネットでセグメントエラーについて検索し、手当たり次第試してみたのですが、うまくいかず困っています。 ソースは公開できないのですが、何か心当たりのある方は、回答していただけると嬉しいです。 よろしくお願いします。

  • プログラミング

    友人がプログラミングの授業の課題を頼まれました。 pqrsというものをやってほしいといわれたのですが、pqrsって何ですか?? ちなみに、工学部です。急いでいます。至急お願いします。 答えを教えてほしいといわれましたが、どうしたらいいですか?

  • プログラミングが分かりません。

    プログラミングが分かりません。 プログラミングの授業ではなくデータベースデザインの授業をとっていますがプログラミングに関係していると思いこのカテゴリーで質問させてもらいます。 具体的なC言語を使ってプログラミングはしてませんが構造化プログラムについて授業内で勉強しています。そこでこんな問題が出てきました。 一人のユーザーから適当な数を1つずつ与えられて最後に平均を出す(例えば、5,8,2,3,1,1 と数を一つずつ言ってその時の平均の値を求める) BEGIN SUM = COUNT = 0 DOWHILE There are more numbers in the set ACCEPT NUM FROM USER     SUM = SUM + NUM COUNT = COUNT + 1 ENDDO AVG = SUM/COUNT PRODUCE AVG TO USER END コレをヒントに一つ宿題が出されました。       Aさん 6 8 4 Bさん 9 7 6 Cさん 8 8 5 というように一人三種類の数字がありそれぞれA、B、Cさんの合計を出して一番数字が多い人を決める この場合Bさん(合計22) 最初に示したヒントから考えてどのようにすればBさんを答えとして導くことができますでしょうか? 最初に示した感じでどなたか教えていただけますか?よろしくお願いします。具体的なC言語も指定しないと説明しづらいと思いますのでそのときはこのカテゴリーで質問させてもらった通りにVisual Basic で答えて下さってもかまいません。 自分で考えたのも載せますがやっぱり途中で分からなくなってしまいました。 COUNT = 0, MAX = 0, SUM = 0 DOWHILE there are more people DOWHILE there are more numbers in the set  ACCEPT NUM FROM USER  SUM = SUM + NUM  COUNT = COUNT + 1