• ベストアンサー

FORTRANでのプログラミングですが…。

FORTRANで素数のプログラミングをしているんですが、 最大値・最小値の取り方がわかりません…。 範囲は100~999で、やっているんですが、 わかる人がいれば、是非教えて欲しいです!!

質問者が選んだベストアンサー

  • ベストアンサー
  • BOY12345
  • ベストアンサー率26% (5/19)
回答No.5

read(5,*) N Cデータの個数を読み込む read(5,*) A C最初のデータを読み込む I=1 AMAX=A C読み込んだデータの個数を1とし、最初のデータを最大値とする 10 read(5,*) A I=I+1 if(A.GT.AMAX) AMAX=A if(I.LT.N) go to 10 write(6,20) AMAX 20 format(1H ,'MAX=',F5.1) stop end 的な感じでやってみては。 データの個数、読み込むデータの組み込みをどうするか考えれば、あとは上記の使ってもらえればだせるのでは・・ がんばって下さい☆

その他の回答 (4)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

たとえば, maxprime, minprime という変数を用意して (最初はどちらも 0 に初期化しておく), 素数が見付かったときに適宜設定する (minprime は 0 のときにのみ更新, maxprime は常に更新) のが簡単かな.

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

「何をやりたいのか」をもっと明確に書いたうえで, 「今どこまでできていて, 何ができていないのか」をプログラムと一緒に出した方が, 的確に回答できるんだけど.... 少なくとも, 普通の人は「素数のプログラミング」が何を意味するかわからない. 推測はできるけど.

atubon
質問者

お礼

説明不足ですいません。 program main integer i, j do i=100, 999 do j=2, i-1 if (mod(i, j) .eq. 0) then goto 10 endif enddo write(*,*) i 10 continue enddo end これで100~999までの素数が出力されるのはわかったんですが、 その出力された素数の最大値、最小値のみを表示する加筆がわからないのですが…。

  • DT200
  • ベストアンサー率38% (63/164)
回答No.2

プログラミング言語が違っても、アルゴリズムは共通。 って、ことでここを参考に... http://itpro.nikkeibp.co.jp/members/ITPro/ITBASIC/20001006/3/

atubon
質問者

お礼

解答ありがとうございます。 参考にしてみます^^

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.1

素数の求め方はわかっているという事でしょうか? 総当りでするのなら、 たとえ「100~999の範囲で・・・」と指定されていても 2、3,5,7,11、という風に、2から順に求めていくしかありません。 そして、100を超えた初めての素数が最小値となります。 そのまま1000を超えるまでの素数を順に求めていき、1000を超えたら、その直前に求めた素数が最大値となります。

atubon
質問者

補足

素数の求めかたはわかっています。 そのプログラムです。 program main integer i, j do i=100, 999 do j=2, i-1 if (mod(i, j) .eq. 0) then goto 10 endif enddo write(*,*) i 10 continue enddo end ここから出力された素数の最大値、最小値のみを出力するプログラムがわからないんですが…。

関連するQ&A

  • FORTRANプログラミングです

    y=xtanx と y=√1-x^2 の式の交点をFORTRANプログラムで書くと どの様になるのか教えていただけないでしょうか? プログラミング初心者です。 よろしくお願いします。

  • FORTRAN77のプログラミングを教えて下さい。

    FORTRAN77のプログラミングを教えて下さい。 九州・沖縄8件の名前kenと面積(km2)menと人口(人)jinが書かれたファイル'kyusyu.txt'がある。これを読み、面積、人口、人口密度(人/km2)mituの大きい順に県名と値を書き出すプログラムを完成させよ。(型宣言も必要) 主プログラムは、数、名前、値を与えるのみで、作業本体はサブルーチン副プログラムjunに任せる事とする。副プログラムは論理型変数を使う手法。

  • Fortran90 プログラミング

    プログラミング初心者です。Fortran90を使って、次の機能を持つプログラムを作成し、ソースと実行結果を示していただけませんか? 「半径rを入力すると、そのrを半径とする円の面積、球の体積、球の表面積を表示する。」

  • Fortranによるオブジェく志向プログラミング

    私は、ずっと、手続き型のプログラミングをやってきて、言語はFortranであり、そのプログラミングの内容は四則計算、ループ、分岐、ファイル入出力みたいなものに限定されていました。 ところが、最近はじめて知ったのですが、Fortranの2003ぐらいになるとオブジェクト指向プログラミングに対応していてクラス、メソッド、インスタンスなどのような概念が出てきたようです(だいぶ前からあったのかもですが、最近まで知りませんでした)。 そこで2つ質問なのですが、従来使っていた手続き型のプログラムはすべて原理的にオブジェクト指向プログラムに移行可能なのでしょうか。無理に移行しなくてもいいとは思いますが、そういう越境のようなことができるのかということですが(手間だけかかって時間の無駄かもしれませんが、訓練という価値はあります)。そして、最終的にはプログラミングというものがすべてオブジェクト指向に収斂してしまうということになるのでしょうか。 もう1つはFortranでオブジェクト指向プログラムができるという場合、バージョンとかそれに応じた仕様とかでその度合いに違いがあるのでしょうか。今までFortranで手続き型のプログラミング(四則計算等)をやっていたのでコンパイラの選択による違いに大差ないという感じでした(あまり方言がないとか)。オブジェクト指向ということになると”これはできるけど、あれはできない”とか際どい問題があるように思います。C++とかJavaの参考書に載っていたようなことがFortranで本当にどこまでできるのかという疑問です。これが明確にならないとただでさえ難しいオブジェクト指向プログラムで私のアルゴリズムにミスがあるのか、アルゴリズムは問題ないけどコンパイラがそれに対応してないという問題の区別がつかなくなると思うのですが。 Fortranのオブジェクト指向の解説本を見たことがないのでお尋ねしました。よろしくお願いします。

  • MacでFortranプログラミングをするには・・・

    当方、Windowsユーザーですが、最近、単なる興味本位でMacに買い換えようと考えています。 通常、WindowsでFortranのプログラミングを行う際は、visial fortranのようなコンパイラで、コンパイルして実行する訳ですが、Macの場合もコンパイラを使うのですか? また、いろいろ複数のソースファイルを結合させて一つの実行ファイルを作る際、リンカーを使って一つの実行ファイルを作るわけですが、そういうこともできますか?

  • MS-FortranとFortran90

    私は研究でFortran90を使っているのですが、研究に使うプログラムはMS-Fortranを用いて書かれているものでした。 そこで質問なんですが、MS-FortranとFortran90の違いについて知っている方がいれば教えてください。 また、MS-FortranでかかれたソースコードをFortranにコピーした時に何か弊害はあるのでしょうか?(人づてに弊害が起こると聞いたことがあるのですが・・・)。 プログラミングを本格的に始めて、まだ3ヶ月ほどで用語の使い方がわかりにくいところがあるかもしれませんがよろしくお願いします。

  • 避難シミュレーションプログラミング(Fortranにて)

    大学の研究で、災害時の避難シミュレーションのプログラミングをVisual Fortranで行っています。 人が一本道を歩いていて、十字路の交差点にさしかかった時に、 交差点を判断して、とりあえず右に曲がるという プログラムを組みたいと考えております。 わかりずらくてすいません、 マニアックな質問かと思いますが、 考え方として良いアイデアがありましたら教えてください。

  • Fortranのプログラミングについて

    Fortranのプログラミングについて分からない事があり、質問させていただきます。ご回答いただければ幸いです。 現在、 R = 1 2 3 4 5 6 ・・・ 30 T = n1 n2 n3 n4 n5 n6 ・・・ n30 n1≦n2≦n3≦n4≦n5≦n6≦・・・≦n30 順位(R)と、順位に対応する値(T)のデータがあるのですが、値が同じ場合には 其々の順位を平均したものを割り振りたいと考えています。 例えば、 3位と4位と5位の値が同じ場合には、全てを4位として扱い、10位と11位の値が同じであればそれぞれを10.5位 とする様なプログラムを組み立てたいのですが、どの様にすればよいのか分かりません。 どなたか、お教えいただけないでしょうか?

  • FORTRAN77でプログラミング

    今年、大学の授業でFORTRAN77を使ったプログラミングを勉強することになりました。 今で3回授業が終わったところなのですが、いきなりつまずいてしまい皆さんの知恵をお借りしたいと思います。。 作るプログラムは 問:摂氏(C)、華氏(F)、絶対温度(K)のいずれかの値を { xx(温度の数値),yy(CかFかK) }のように入力したときに、入力した値以外の単位での温度値が表示されるプログラムを作れ。 自分なりに作ってみたのが下のプログラムです。 全く論外なプログラミングをしているかもしれませんが…。 (自作) c234567 implicit none real n,cx,fx,kx character*1 d,c,f,k c n:入力値 d:入力された温度の値 C:摂氏 F:華氏 K:絶対温度 write(*,*) '温度値、単位を表す文字を入力してください。' read(*,*)n,d if(d.eq.c)then cx=n fx=cx*(9/5)+32 kx=cx+273.15 else if(d.eq.f)then fx=n cx=(fx-32)*(5/9) kx=cx+273.15 else kx=n cx=kx-273.15 fx=cx*(9/5)+32 end if end if write(*,50) cx,'C',fx,'F',kx,'K' 50 format(' ',f7.3,a3,f7.3,a3,f7.3,a3) stop end これをどうしたらいいのでしょうか。 ちなみに、使用しているFORTRAN77は Compaq Visual Fortran Optimizing Compiler Version 6.1 です。 どうぞよろしくお願いします。

  • FORTRANのプログラミング

    FORTRANに関する質問です。 今、実験のデータ解析を行っているのですが、 データの数が多くて困っています。 プログラムで行いたいのは、データが1.txt,2.txt......100.txtとあります。 1.txtなどにはテキスト形式で、 2、4 6、8 ・・・・・・・・ などデータが入っています。 これら2×4+6×8・・・・・・・・・・ と計算を行い、それらの結果をout1.txt,out2.txt.............out100.txt と計算を行いたいのですがどのようにプログラムを組めばいいかよくわかりません。 とくにファイルの入出力に関してです。 ご解答よろしくお願いします。

専門家に質問してみよう