• 締切済み

FORTRAN手助けを・・

摂氏から華氏、華氏から摂氏が出るプログラムを作ろうと思っています。 具体的に言えば100.0C(摂氏)を入力すると...F(華氏)の形で表示したいのです。最後にF,Cをつけ、それによって摂氏、華氏と認識するにはどのようにしたら良いのでしょうか? 答えでなくてもかまいません。何かヒントになるようなことでもいいので教えて下さい。

みんなの回答

noname#21649
noname#21649
回答No.5

> 処理系?FORTRAN77のことでいいんですか? 同じFotran77でもメーカーによって異なるのが入出力ルーチンです。 一応.4がコンソール.6がプリンタとはなっていますが。 ソフト自体は既に回答があるので.入出力書式はご自身で行って下さい。

black314
質問者

お礼

回答をくれた皆さん、ありがとうございました。 試行錯誤の結果、何とかできました。

回答No.4

逆じゃなくて全然違ってましたね。。失礼

回答No.3

ああ、CとFの計算式が逆でしたね。。。

回答No.2

入力を温度(実数変数)と単位(文字変数)で取り込んで、単位で判別してやればいいのでは。。 こんな感じ?    real ondo    character u    write(*,*) 'input ondo unit'    read(*,*) ondo,u    if (u .eq. 'C') then     write(*,'(F7.2A)') (ondo-32.0)*1.8,'F'    else if (u .eq. 'F') then     write(*,'(F7.2A)') ondo/1.8+32.0,'C'    else     write(*,*) 'unit error'    end if    end

black314
質問者

お礼

何度も回答ありがとうございます。 さっそっくコンパイルやってみました。 コンパイルはできたのですが、実行結果がうまくいきません……。ここからは自分で考えます。 でもプログラムの内容はわかりました。characterを使ってそれがCになっている場合とFになっている場合で考えればよかったのですね。

noname#21649
noname#21649
回答No.1

手計算でできますか(計算方法がわからない) 入出力系の取り扱いがわかりますか(formatの書式が処理系によって異なるので.こちら関係では処理系がわからないと答え様が内) 単に数式からプログラムが作れないだけですか(計算式を見つけるのが面倒なので.数式をお知らせください。「かし」にもいくつか種類があったはずです)。

black314
質問者

お礼

回答ありがとうございます! 処理系?FORTRAN77のことでいいんですか? 何しろ素人なもんで、よく分かっていません。 計算式とはこれのこと? F(華氏)=32+C(摂氏)×9÷5 例 20.0C   (入力)   68.0F    (出力) こんな感じにしたいのです。

関連するQ&A

  • FORTRANの課題

    大学の授業の課題で 問 摂氏(C)、華氏(F)、絶対温度(K)の間で温度換算するプログラムを作れ。ただし、入力は「温度値、単位を表す文字」とし、それを換算した2つの温度を出力するようにつくること。例えば「25.0、'F'」と入力したら華氏温度25Fを摂氏温度と絶対温度に換算したものを表示する。 *温度単位の変換式は、摂氏温度をCとしたとき、F=9C/5+32 K=C+273.1 という課題が出されたのですがよく分からないので、アドバイス、回答の方お願いします。

  • プログラム改良 求む

    こんにちは 以下の摂氏を華氏に変換するプログラミングを、摂氏が入力された場合はそのまま出力し、華氏が入力された場合は摂氏に変換してから出力するようなプログラミングに改良したいです。 #include <stdio.h> int main() { printf("摂氏を華氏に変換します。変換したい温度を摂氏で入力してください。\n"); double c, f; scanf("%lf",&c); f = (c * 9 / 5) + 32; printf("%lfºFです。", f);    return 0; }  今のところ、プログラムにどのように摂氏を華氏の違いを認識させればいいかがわかりません。分かりやすくコードを添えていただけるとさらに助かります。お願いします。

  • FORTRAN77

    助けてください~ --------------------------------------- 華氏゜Fが与えられた時、摂氏℃と絶対温度Zを求めよ C=(5/9)(F-32),Z=C+273.16 ここで華氏゜Fは書式カードF1.5でカードに用意されていて、数値999.9のデータを読み込んだら終わりとする。 ただし、華氏゜Fの値は、-50.0゜Fから200.0゜Fまで10.0゜Fごとに変化させる。 --------------------------------------- で、私が頑張って(っていっても教科書を見ながら)書いたのが以下です。 --------------------------------------- * write(6,200) 200 format(1h ,8x,1hf,10x,1hc, 9x,1hz) 10 read(5,100)f 100 format(f5.1) if(f.eq.999.9)stop c=(f-32.0)*5.0/9.0 z=c+273.16 write(6,201)f,c,z 201 format(1h ,3(5x,f5.1)) go to 10 end ------------------------------------- 100 formatの下からdo文を使うのが狙いかと思いますがよくわかりません。 ちなみに参考教科書は入力データが ------------------------------------- 32.5 135.5 68.3 999.9 ------------------------------------- となっていました。多分これは使わないです。 よろしくお願いします(><)

  • 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 です。 どうぞよろしくお願いします。

  • 摂氏の値を計算するプログラム・・?

    摂氏Cと華氏Fの間には C=5/9(F-32)という関係式があり、華氏の上限、下限、きざみを入力して摂氏の値を求めるプログラムを関数を使って作りたいのですが、自分で作ってみたところ関数の部分がよくわかりません。printf("摂氏 華氏\n");までは画面上に出力されます。そのあとの結果が出ないのです。以下に自分で書いたものを書きますので、どこをどう直したらいいか教えてください!お願いします!! #include<stdio.h> double functionC(double F,double F1,double F2,double l) { double temp; for(F=F1; F<=F2; F++){ F = F+l; temp = 5/9*(F-32); } return(temp); } main(void) { double C,F3,F4,i,j; printf("摂氏の値を計算します\n 華氏の下限、上限、きざみを入力してください\n"); printf("華氏の下限:\n"); scanf("%f", &F3); printf("華氏の上限:\n"); scanf("%f", &F4); printf("きざみ:\n"); scanf("%f", &i); printf("摂氏 華氏\n"); for(j=F3; j<=F4; j++) printf("%f %f\n", functionC(j,F3,F4)); }

  • おねがいします

    摂氏と華氏について教えてください。 37度の体温は摂氏ですか? これを華氏にするにはどんな計算式か教えてください。 絶対温度とかー273とかはぜんぜん関係ないですよね? T=-273+t 華氏はF?? お願いします

  • なぜアメリカは気温に華氏を使うのか?

    CNNの天気予報を見ると、気温が摂氏(℃)ではなく華氏(゜F)が使われている。 華氏だと数値が大きくなるために、いまいちピンとこない。 (アメリカ人は普通なのだろうが) なぜアメリカは世界主流の摂氏を使わず、華氏を使うのか?

  • Edgeの天気予報の温度表示がいつも華氏

    Edgeの天気予報の温度表示が華氏になっていて、摂氏に修正してもまた 華氏に戻ります。 ずっと摂氏になるようにはできないですか?

  • プログラミングの宿題

    大学に入って初めてプログラミングを習いましたが、2回目の授業ではやくも関数のプログラムの宿題が出されました。 問題は「摂氏Cを入力し、これを華氏Fと絶対温度Kに換算せよ。ただし換算式はそれぞれ、F = 32.0 + 1.8c、K = 273.16 + cとし、華氏および絶対温度を求める部分は、それぞれ関数化すること。」というものなのですが、一応教科書にのっとって、作ってみましたが、コンパイルエラーが起こってしまいます。解決策が見つからないので質問することにしました。 以下が私が作ったプログラムです。 ------------------------------------------------- #include<stdio.h> float Sessi(float); void main(void) { float c; float kasi, zettaiondo; c = 25; kasi = Sessi(c); zettaiondo = Sessi(c); printf("華氏F = %f\n", kasi); printf("絶対温度K = %f\n", zettaiondo); } float Sessi(float c) { float f; f = 32.0 + 1.8 * c; return(f); float k; k = 273.16 + c; return(k); } ------------------------------------------------- 上はとりあえず、C=25の場合の換算です。 このプログラムですと、実行はできるのですが、C=○のところにどんな数字を入れても華氏F、絶対温度Kともに、77.00000になってしまいます。明らかにおかしいのは自分でも分かりますが、まだはじめたばかりなので分けが分かりません。 慣れている方には馬鹿馬鹿しい質問ですが、ご指摘お願い致します。

  • Javaで計算

    Javaを10月から始めた初心者です。 摂氏から華氏に変えるプログラムを作成したいのですが、結果が合いません。 計算の所のプログラムが間違っているのだと思うのですが、どうすれば良いのか分からないので教えてください。 import java.io.*; class quiz01{ public static void main(String[] args) throws IOException{ System.out.println("摂氏の温度℃を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int num = Integer.parseInt(str); int F = 9/5*num+32; System.out.println("華氏の温度Fは " + F + " です。"); } } よろしくお願いします!

    • ベストアンサー
    • Java

専門家に質問してみよう