「Fortran90を使って、以下↓の機能を持つプログラムを作成し、ソースと実行結果を示せ」という問題です。
「実数rを入力すると、そのrを半径とする円の面積、球の体積、球の表面積を表示する。」

まず、自分で以下のようなプログラム文をTeraPadで作成しました。
!-----課題1(2)-----
REAL :: pi, r, S1, V, S2
pi = 3.141593
PRINT *, 'Hankei r'
READ *, r
S1 = pi * r**2
V = 4 * pi * r**3/3.0
S2 = 4 * pi * r**2
PRINT *, 'Ennomenseki =', S1
PRINT *, 'Kyuunotaiseki =', V
PRINT *, 'Kyuunohyoumenseki =, S2
END
次にCygwin画面上で、gfortran -o Hankei r.exe Hankei r.f90と打ったら、 gfortran: Hankei r.f90: No such file or directoryという文字列が出てきました。拡張子はちゃんと、f90にしてるし、プログラム文も文法的に間違ってないはずなのに、どうしてうまくいかないのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (5件)

あなたが作ったソースファイルの名前と gfortran を起動するために打ったコマンドでのファイル名をよく見てください, ということではあるけどファイル名に空白は入れない方が安全だと思う.


実際, あなたがここに記した「Hankei r.f90」と「Hankei r.f90」ですら違ってるし (前は「半角空白」, 後ろは「全角空白」).
Windows だけであれば #1 の「ダブルクォートでくくる」で終わりなんだけど, Cygwin だとどうだっけなぁ. メッセージからすると全角空白を使っているように見えるんだけど, こいつはサポートしてたっけ....

この回答への補足

全角空白の件は、ここで質問文を書く際に間違って入力してしまっただけです、すみません。今日、学校で、ファイル名をHankeirとして、Cygwin上で、gfortran -o Hankeir.exe Hankeir.f90と打っても、やはり、gfortran: Hankeir.f90: No such file or directoryという文字列が出てきました。"Hankeir"というふうに、ダブルクオートでくくっても、上手くいきません。何度見直しても、どこが間違っているかさっぱり分かりません。いったいどこがおかしいのでしょう?

補足日時:2009/05/27 00:03
    • good
    • 0

ご説明ありがとうございます>#4.


「No such file or directory」というメッセージですから, そのまま訳すと「そんなファイル (もしくはディレクトリ) は存在しない」ってことです. ということで, Cygwin でコンパイルするときのカレントディレクトリに「ソースファイルが存在するかどうか」を確認してほしいんです.
そのための手段として
1. まずファイルそのものが存在するかどうかを調べる: これは ls を実行すれば分かります
2. そのファイルが読み込めるかどうか確かめる: cat を使って読み込んでみる
くらいをやってみてほしいな, と.
もちろんご存じだと思いますが UNIX でもファイル名に空白を入れることができます>#4.
    • good
    • 0
この回答へのお礼

今日やっと原因が分かりました。
Cygwin上のgfortran -o ( ).exe ( ).f90の( )の中身は作ったソースファイルの名前にしないといけなかったんですね。誤って、プログラム文中の
PRINT *, 'Hankeir' の中の「Hankeir」を( )の中に入れてしまっていました(笑)。いや~、今回は僕がプログラミングに疎かっただけに
ほんと色々とご迷惑をおかけしました。が、皆さんのアドバイスなどのおかげで何とかうまくいきました。ありがとうございました。

お礼日時:2009/05/27 23:25

こんにちは


”Cygwin”って、Windowsの上にかぶせるUnixエミュレータ環境なんですね。 バージョン 1.7 だとダメ文字問題も解決されているとか..

>Isとかcatって何ですか?
Windows のコマンドプロンプトは判りますか?
Is ではなく LS(LiSt)で dir と同じ目的を持つ UNIX コマンドです。
Cat(conCATenate) は、type と同じ使い方もできる便利コマンドだと思います。

 コマンドの詳細は、参考URLで。

 ちなみにファイル名やディレクトリ名に空白を挟むのは、UNIX では空白がコマンドやパラメータの区切りを意味するので禁じ手のような気がします..(っていうか 空白を許す Windowsの仕様がいやっ!)

参考URL:http://x68000.q-e-d.net/~68user/unix/genre.html
    • good
    • 0
この回答へのお礼

今日やっと原因が分かりました。
Cygwin上のgfortran -o ( ).exe ( ).f90の( )の中身は作ったソースファイルの名前にしないといけなかったんですね。誤って、プログラム文中の
PRINT *, 'Hankeir' の中の「Hankeir」を( )の中に入れてしまっていました(笑)。いや~、今回は僕がプログラミングに疎かっただけに
ほんと色々とご迷惑をおかけしました。が、皆さんのアドバイスなどのおかげで何とかうまくいきました。ありがとうございました。

お礼日時:2009/05/27 23:27

そうなると, 「本当にそのディレクトリにファイルがあるのか」ってことが問題になりますな.


ls とか cat あたりで確認してみました?

この回答への補足

Isとかcatって何ですか?

補足日時:2009/05/27 01:10
    • good
    • 0

こんにちは


Cygwin画面上という環境もよく判らない人ですが、Windows環境なら下記のようにダブルクォーテーションでファイル名をくくってもらっていいですか?
gfortran -o "Hankei r.exe" "Hankei r.f90"
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング