- ベストアンサー
Fortranプログラミングでうまくいきません
適量の弱酸とその塩を含んでいる緩衝液の正確な水素イオン濃度を求めるプログラミングを作ったのですがうまくいきません…泣 HC弱酸の濃度 BA塩の濃度 HA強酸の濃度です print*,'弱酸の濃度を入力してください’ read*,HC KW=10E-14 KA=1.85*10E-5 BA=0.6 HA=0.7 H1=10E-7 10 A1=H1-KW/H1+BA-HC H2=(HA+BA=A1)*KA/A1 S=1-H2/H1 if(ABS(S).LE.0.05)then print*,'水素イオン濃度は',H2 else H1=H2 go to 10 endif end コンパイルはできるのですが、数値を入力しても作動しません。どこが間違っているかご指導お願いします。
- 007_007
- お礼率80% (24/30)
- その他(プログラミング・開発)
- 回答数5
- ありがとう数5
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
print*,'弱酸の濃度を入力してください’の右側のシングルクォーテーションが全角だとか、H2=(HA+BA=A1)*KA/A1の真中の=は意味がよく分からないけどたぶんどちらも質問書くときにタイプミスしたんですよね。 ひょっとして変数の型宣言していますか?ちゃんと型宣言しないと、Kで始まる変数は整数型になりますね。となるといつまでも収束しなくて応答なしなんじゃないでしょうか。 計算式があっているかどうかまでは。。。分かりません
その他の回答 (4)
- manda
- ベストアンサー率23% (20/85)
私、Fortran は出来ませんが、一般論として。 「思ったように動かない」 という場合は 「当然こうなる筈」 と思って作った箇所が、じつはその通りでないという 事ではないでしょうか。 今の場合、「作動しません」ということは、なんにも プリントしてくれないという事ですね? ということは、if がぜんぜん成立しなくて、毎回 else の方へ行っている、という事を疑ってみるといいと思います。 え、当たり前すぎますか? でもどなたも指摘しないし、質問者のかたはそういうコツ に不慣れみたいだから、いいですよね。
お礼
そういうコツは知りませんでした。プログラミングを勉強するのは、初めてだったので非常に参考になりました。ご回答ありがとうございます。
- jeee
- ベストアンサー率52% (119/227)
Fortranコンパイライを確認してください。 > KW=10E-14 > KA=1.85*10E-5 > BA=0.6 > HA=0.7 > H1=10E-7 型宣言しない場合、 変数がI~Nで始まる場合のとき(単精度)整数型 変数が上記以外のとき(単精度)実数型 > H2=(HA+BA=A1)*KA/A1 今までの同じ、言語使用がおかしくないのかな。 コンパイルしてエラーがでないのなら、OK?
お礼
型宣言していませんでした。初歩的なミスです。すみません。
- imogasi
- ベストアンサー率27% (4737/17068)
Basicに移植できそうなので、やって見た。 済みませんFortranがないので。 Sub test01() HC = InputBox("弱酸の濃度を入力してください") KW = 0.0000000000001 KA = 1.85 * 0.0001 BA = 0.6 HA = 0.7 H1 = 0.000001 p10: A1 = H1 - KW / H1 + BA - HC H2 = (HA + BA) * KA / A1 S = 1 - H2 / H1 If (Abs(S) < 0.05) Then MsgBox "水素イオン濃度は" & H2 Else H1 = H2 GoTo p10 End If End End Sub HA+BA=A1の部分を上記のようにしたら、動きました。 ロジックミスでなく、他の原因でしょう。そちらを疑ってください。 イコールの左辺が2項、右辺が1項の言語なんて、見たことないです。少なくとも一番旧い歴史のFortranにはないでしょう。 =は+か-のミスタイプでしょうか。
お礼
参考にさせていただきます。=はタイプミスです。すみません。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
(HA+BA=A1) の部分は期待したように動きますか? ほとんどの場合で=が成立しないように思うのですが。 勘違いしてたらすみません。
お礼
すいません。質問文のタイプミスです。正確にはHA+BA-A1です。
関連するQ&A
- 水素イオン濃度の求め方
水溶液の水素イオン濃度について質問です。 ある一塩基酸HAの総濃度をCHA、融解離定数をKa、水のイオン積をKwとしたときのその酸の水素イオン濃度[H+]はどのようにして表わされるのでしょうか?[H+]の求め方がいろいろあってわかりにくいので説明をお願いします。
- ベストアンサー
- 化学
- 水のイオン積について
[HA] + [A^-] = C_HA…(1) [A^-] + [OH^-] = [H^+]…(2) [H^+] [A^-]/[HA] = Ka…(3) [H^+] [OH^-] = Kw…(4) (2)式を変形して、 [A^-] = [H^+] - [OH^-]…(2') これを(1)式に代入して、 [HA] + [H^+] - [OH^-] = C_HA 移項して、 [HA] = C_HA - ( [H^+] - [OH^-] )…(1') ここで、C_HA>>[H^+] - [OH^-] と近似すれば、(1')は、 [HA] = C_HA…(1'') 一方、(2')と(3)を組み合わせれば、 { [H^+]^2 - [H^+] [OH^-] }/[HA] = Ka (1'')と(4)を考慮して、 { [H^+]^2 - Kw }/C_HA = Ka [H^+]^2 - Kw = (Ka) (C_HA) [H^+]^2 = Kw + (Ka) (C_HA) という水素イオンの算出の式を立てたのですが、Kw(水のイオン積)が無視できて、[H^+]={(Ka) (C_HA)}^1/2 という式に変形できるのはどういった場合なのでしょうか。
- 締切済み
- 化学
- 2つの弱酸の電離
電離定数kaの弱酸HAと電離定数kbの弱酸HBの混合水溶液がありモル濃度をそれぞれCa,Cbとするとき、水素イオンの濃度を求めよ、という問題なのですが、HA→(←)H(+)+A(-)(1)、HB→(←)H(+)+B(-)(2) の反応で質量作用の法則を適用するためにモル濃度に関して平衡前後の表を作ろうと思ったのですが、平衡前の(1)式の[H(+)]が初めCbαbにして、(2)式においての平衡前の[H(+)]をCaαaとしてもいいのでしょうか????そうすると(1)が(2)より先に起こっているのに(2)も(1)より先におこっているようで矛盾しているかなぁ~と思うのですが・・・ 長文および乱文失礼しました。
- ベストアンサー
- 化学
- 中和と加水分解
高校化学についてで考え方が納得いきません。 中和の定義ってなんなのでしょうか? 弱酸は中和点でも塩が加水分解してph=7とはならないんですよね。 ある弱酸HAがあったとして電離度α(α<<1)、HAの水溶液の濃度がc(mol/L)とします。 この水溶液を濃度がn(mol/L)の水酸化ナトリウムを加えたときのHイオンの濃度を求めろって問題で、解答では HA+OHイオン→Aイオン+H2Oの式の平衡定数を用いて出しているんですがHAのモル濃度を {(HAの物質量)-(加わったOHイオンの物質量)}×1000/全体積 で出しているのが納得いきません。 これって生成された塩の加水分解を考えてないように思えるんです。 この解答ってあってますか?かなり悩んでます。。。 わかるかたぜひ教えてください。
- ベストアンサー
- 化学
- 多段階で電離する酸の中和滴定
H2CO3とNaOHの中和滴定のグラフを近似式で描いた場合、適切なグラフがかけない理由を知りたいです。 実際に近似式で計算すると、第一当量点、第二当量点とそれ以降(NaOH過多)の数値がグラフから外れた数字となりました。 それで、近似式でない式と比べようと思い、インターネットでしらべたのですが、最後まで理解できませんでした。 物質収支を考慮し、炭酸の全濃度を CAとすると CA=[H2CO3]+[HCO3-]+[CO3 2-] また電気的中性の原理より [H+]+[Na+]=[OH-]+[HCO3-]+2[CO3 2-] これらの式および水の自己解離平衡から水素イオン濃度[H+]に関する四次方程式が得られる。 [H + ]4 + [H + ]3(Ka1 + [Na + ]) + [H + ]2(Ka1Ka2-Ka1CA + Ka1[Na + ] - Kw) -[H + ](2Ka1Ka2CA -Ka1Ka2[Na + ] + Ka1Kw) - Ka1Ka2Kw = 0 酸性領域では第二段階の解離Ka2 および Kw の影響は無視し得るため [H+]^2+ [H+](Ka1+[Na+])ーKa1Ca+Ka1[Na+]=0 ここで、Ka2の影響が無視できるのは、わかるのですが、Kwを無視する理由は何か教えてください。 また、第一当量点付近では、[H+]^4 と定数項の寄与が小さいとあるのですが、定数項(Ka1Ka2Kw)を無視する理由がわかりません。 どうか教えてください。 参考にしたHP http://ja.wikipedia.org/wiki/%E4%B8%AD%E5%92%8C%E6%BB%B4%E5%AE%9A%E6%9B%B2%E7%B7%9A
- ベストアンサー
- 化学
- 化学の質問です。
有機化学の質問です。 1.弱酸水溶液(Cmol/L)の水素イオン濃度は[H^3O+(オキソニウムイオン)]=(C・Ka)^1/2で表わせることを示せ。 この式を使って、Ka=1.00×10^-5mol/Lの弱酸の0.00100mol/L溶液の水素イオン濃度を求めよ。 2.次に示す酸や塩基をその強い順に並べよ。 a) CH3CO2H C6H5OH CH3CH2OH b) Cl2CHCO2H CH3CH(Cl)CO2H CH3CH2CO2H 3.以下の反応での2つの出発物は、それぞれルイス酸であるかルイス塩基であるか答えよ。 (a)BF3 + O(C2H5)2 → F3B^- ─ O^+(C2H6)2 (b)Cu^2+ + 4NH3 →Cu[NH3]4^2+ 4.分子式C5H10のアルケンのすべての構造異性体と幾何異性体の構造式とIUPAC名を書け。 よろしくお願いします 追加 塩基の強弱の決め方を教えていただけたら、幸いです
- ベストアンサー
- 化学
- 塩化アンモニウム水溶液の水素濃度
濃度0.10mol/L アンモニアのKb=2×10の-5乗 NH4Clの水素濃度を求めよ。 酢酸ナトリウムの問題は [H+ ]=√Ka・Kw/cで解いたのですが アンモニアの場合はこのKaをKbにすれば いいのでしょうか???
- 締切済み
- 化学
お礼
型宣言していませんでした(泣)初歩的なミスです。すみません。ご指摘ありがとうございます。