「化学教育ジャーナル(CEJ)」第7巻第1号(通巻12号)発行2003年 9月20日/採録番号 7-5/2003年 7月29日受理
URL = http://www.juen.ac.jp/scien/cssj/cejrnl.html



溶液の濃度計算と調製方法のインターネットによる自動サービス
−塩化ナトリウム水溶液−


芦田実*,五十嵐真由美,務台ひろみ,吉田俊久
埼玉大学 教育学部
〒338-8570 埼玉県さいたま市桜区下大久保255
E-mail: ashida@post.saitama-u.ac.jp


Automatic Services of Calculated Data and Preparation of Solutions
by Using Internet - Sodium Chloride Aqueous Solution -


Minoru Ashida*, Mayumi Igarashi, Hiromi Mutai, and Toshihisa Yoshida
Faculty of Education, Saitama University
255 Shimo-ohkubo, Sakura-ku, Saitama, Saitama, 338-8570 Japan

1.はじめに
 本研究室では,インターネットを利用して学外との双方向の交流を目指し,利用者の立場に立ってそのニーズに応えるためのホームページ[文献1]を試作している.その目的の1つとして,ホームページの中に質問箱(掲示板)を開設している.2つ目として,ホームページを載せているサーバーによって自動的に実行させる計算・作図サービス(回帰分析など)[文献2]を開始している.
 小学校では理科離れが進んでいる.以下,本学部の場合を例に述べると,教育学部の理科専修の学生が小学校に教育実習に行き,最後にまとめとして研究授業を公開する.しかし,この授業の内容に理科を選ばない学生が6割を超えている.教育実習生を直接指導している小学校の先生にも,理科離れが進んでいる(あまり理科が得意ではない)ものと思われる.理科以外の科目全ての専修生は,高等学校では理科の科目(物理学,化学,生物学,地学等)を1〜2科目履修するが,大学では理科関係の授業をほんの少し(理科概説,理科指導法と一般教養自然系の1科目の最低6単位)しか受けずに,教育実習に行ったり,小学校の先生になっていく.したがって,理科の中で苦手な科目ができる.理科専修生の人数(40)よりも理科以外の科目全ての専修生の人数の和(370)のほうが圧倒的に多いので,理科離れがますます深刻化する.
 理科(化学)の面白さは実験を通して伝えられることが多いと思われる.そこで,理科離れを少しでも減らすために,小学校で少しでも多く理科(化学)実験を行ってもらうために,本研究室のホームページに載せる目的の3つ目として本報告の自動サービスを考えた.小中学校理科で化学系実験の一番の基礎は,実験に使用する(水)溶液をまず調製することであり,これができなければ何も始まらない.ところが,特に理科以外の専修生は溶液の濃度計算や調製方法を修得していないことが多い.また,小学校の先生の中にも濃度計算や調製方法を完全には修得していない人がいるかもしれない.このような人のために,インターネットを利用して簡単に濃度を計算し,調製方法や注意事項を知らせるプログラム(Java Applet)を開発した.忙しい現場教師やコンピュータに弱い人でも何の予備知識もなしに,計算方法もプログラム中で説明しているので,いつでも(夜中でも)必要なときに使用できる.さらに,このプログラムはパソコンの中だけ(オフライン)でも実行できるので,近いうちにダウンロードサービスも開始する予定である.なお,ここで紹介するような方法は応用範囲が広く,様々な利用方法があると考えられる.
 本研究室のホームページ[文献1]で,このサービスをすでに開始している.本学部の理科以外の専修生には,授業中にURLを知らせて利用を呼びかけている.しかし,あまり知られていないためか,一般の利用者は少ない.そこで,多くの人に知ってもらい,また利用してもらうために,本報告で紹介することにした.なお,インターネットで検索したが,ここで紹介するような自動サービスは他には見つからなかった.

2.利用者の操作方法
 「溶液の作り方(濃度計算と調製方法)」のメニュー(追加・修正する予定なので図は省略する)から「食塩水(塩化ナトリウム水溶液)」をクリックすると,最初の画面(図1)が表示される.一番上の5つのテキストボックスとその真下のボタンが対応している.塩化ナトリウムの質量と水の量から水溶液の濃度を計算する場合や,濃度と水溶液の体積から水溶液を調製するために必要な塩化ナトリウムと水の量を求める場合には,2つのテキストボックスに数値(例えば,百分率濃度と溶液体積)を半角文字で入力する.そして,どれか空のテキストボックスの真下のボタン(例えば,NaCl質量)を押す.このとき,押したボタンの真上のテキストボックスに数値が入力されていても,入力されていないものとして扱われる.プログラムが自動的に空のテキストボックス全ての数値を計算して,緑色の文字で表示する(図2).例えば,5.432E-1や1.234e5のような指数形式での入力も可能である.ただし,半角E(またはe)の後ろに半角空白を入れるとエラーになる.
 3つ以上のテキストボックスに数値を入力してもプログラムは動く.ただし,計算は2つの数値を採用して行う.そのときの優先順位を表1に示す.3つ以上の数値を入力する場合には,採用されなかった数値が計算により変化しない(すなわち,でたらめな数値ではない)ことが望ましい.再び計算する前に,全部の数値または計算値のみを右端のボタンで消去できる.なお,数値を消去せずに,前回の数値の1つを変更してボタンを押しても,変更した値が採用の優先順位によって元に戻ってしまうことがある.
 溶解度(25℃の飽和濃度)を超過した場合には,赤字で警告を表示する(図3).濃度を換算する場合には,百分率濃度かモル濃度のうち,どちらか一方のテキストボックスに数値を入力する.そして,数値を入れなかったほうのテキストボックスの真下のボタンを押す(図4).その他,操作を間違えて計算できないときは,エラーが表示される(図5).計算が終了し5つのテキストボックスに数値が入っている状態で,5つのボタンを適当に押すと,数値がわずかに変化する.これは,表示用に数値を四捨五入したときの誤差と採用の優先順位による計算順序・方法の変化による誤差が原因である.今後できるだけ改善していく予定である.

3.水溶液の調製方法
 塩化ナトリウム水溶液を調製するには,天秤を用いて塩化ナトリウムをはかり取り,蒸留水に溶解する.このとき,溶かす前の水の量をはかるにはメスシリンダーや天秤を使用する.また,溶かした後の溶液の体積を調製するときはメスシリンダーやメスフラスコを使用する.
 天秤は精密機械で壊れやすいので,慎重に取り扱う.はかれる範囲は天秤により異なるので,最大秤量を超過しないように注意する.また,天秤内に薬品をこぼしたらすぐに掃除する.メスフラスコは,はかれる容積が固定されている(例えば,・・,100m,200m,250m,500m,1000m,・・).その他,塩化ナトリウムは安全な薬品なので取り扱う上で特に注意する事項はない.

4.濃度の計算方法
 塩化ナトリウムの質量をM(g),水の量をM(gまたはm),溶液の質量と体積をM(g)とV(m),溶液の密度をd(g/m),質量百分率濃度をW(%),モル濃度をC(mol/),溶液体積/水量の比をR,塩化ナトリウムの式量をF(g/mol)とする.これらの間に,次式のような関係が成立する[文献3,4].

  W=100M/M, M=M+M=Vd, C=1000M/FV, R=V/M, 1=1000m

既知の値から未知の値を求めるには,これらの式を連立させて解く.濃度から密度を求めたり,溶液体積/水量の比から濃度を求めるときは表2文献5]を用いて直線的に内挿・外挿する.

5.プログラムの概要
 以下,Java Appletプログラムを作成するときに,参考になりそうなことを述べる.

5.1 使用したソフトウェア
 使用したOSはMicrosoft社のWindows 98,2000 Professional,ME,XP home editionである.Java Appletは多くの書籍[文献6〜11]を参考にして,Borland社のJBuilder 6 Professionalで作成し,フリーソフトウェアFFFTP 1.88 [文献12]でサーバーにアップロードした.HTMLファイルはIBM社のホームページ・ビルダー2001で編集・作成した[文献13,14].実行形式のバイナリーファイルの編集にはフリーソフトウェアStirling 1.31 [文献15]を使用した.

5.2 ファイルの構成
 作成したプログラム(Java Applet)のディレクトリ(フォルダ)とファイルの構成を表3に示す.apadj001.htmlはJBuilderによって作成されるHTMLファイルで,実行ファイルを呼び出すためのものである(図1).JBuilderで作成した時点では,最上行の文字「この下に図が見えなかったらJava Applet を有効にして下さい」とJava Applet(背景が水色の部分)しか存在しない.その他の部分(計算方法,調製方法,注意事項等)は後からホームページ・ビルダー2001 [文献13,14]で追加・編集した.なお,Java AppletをHTMLファイルから呼び出す部分(表4)はJBuilderが自動的に作成してくれるので,通常は変更する必要がない.
 ajnacl01.jpxはプロジェクト(プログラム)を管理するファイルであり,プログラムに含まれるファイル名やパス,Applet画面のサイズ,その他が記述されている.apadj001.javaはJava Appletの命令を記述したソースファイル(テキスト形式)である.これをJBuilderでコンパイルするとメインの実行ファイルapadj001.classとテキストボックスやボタン用の実行ファイルapadj001$1.class 〜 apadj001$14.classが,プロジェクトディレクトリajnacl01に作成される.テキストボックスとボタンの実行ファイルの名前に半角記号$が含まれている.サーバーによっては,この文字がファイル名として許されない場合がある(アップロード不可能).そのときは,この文字を半角英字(例えばs)に変更する必要がある.さらに,ファイルの内部にも実行ファイルの名前が2ヶ所含まれているので,Stirling [文献15]を用いて変更する(バイナリー編集).また,メインの実行ファイルapadj001.classの内部にもテキストボックスとボタンの数だけ含まれているので,同様に変更する.
 その他,近いうちに溶液の濃度計算と調製方法のプログラムを一括ダウンロードできるようにする予定である.なお,Internet Explorerで一度実行した後はTemporary Internet FilesフォルダにHTMLファイルと実行ファイルが保存されている.そこで,任意名の計算・作図用ディレクトリを作成し,その下にajnacl01(プロジェクトディレクトリ)を作成する.さらに,HTMLファイルと実行ファイルをコピーし,ファイル名に付加する不要な[1]等を削除し,表3と同一に再構成すれば今すぐにでもパソコンの中だけ(オフライン)で使用できる.

5.3 プログラムの開発方法
 計算を開始するためのボタンはjava.awtのButtonを使用して作成した.また,数値を入力するためのテキストボックスはjava.awtのTextFieldを使用して作成した.ボタンが押された(ボタン用のactionPerformed)とき,最初に全ての数値データを半角文字(アスキーコード)として受け取る(getText).次に,Math命令(Double.valueOf( ).doubleValue)を使用して倍精度実数に変換する.なお,テキストボックスに数値を入力した後にEnterキーを押せば,プログラムがその数値を受け取る(テキストボックス用のactionPerformed).しかし,テキストボックスごとにEnterキーを押さなければならないので,このサブルーチンは使用していない.ただし,このサブルーチンがないと,コンパイル時にエラーになる.
 倍精度実数に変換した後に,表1の優先順位の低いほうから,2つずつテキストボックスを組み合わせて,両方に数値が入力されているか調べる.両方に入力されていた組み合わせのうち,最後に見つけたものの数値を使用して他の数値を計算する.したがって,3つ以上のテキストボックスに数値を入力してもプログラムは動く.なお,百分率濃度かモル濃度のうち,どちらか一方のボタンが押されたときには,他方のテキストボックスに数値が入力されているかどうかを最初に調べる(濃度換算の準備).
 倍精度実数は,そのままテキストボックスに表示するには桁数が多すぎる.例えば,M=12.345678901234のときは,Mn>1000の条件を満たす数字n(n=1,10,100,1000,・・)を捜す.この場合はn=100となる.そして,積Mnを四捨五入(round)し,次にそれをnで除す.すると,最初のMを小数点以下第3位で四捨五入したのと同じ結果になる.続いて,実数を文字に変換(String.valueOf)し,テキストボックスに表示する(setText).
 その他,paintサブルーチン中でGraphics命令を使用し,テキストボックスとボタン以外の文字を表示(setFont,setColor,drawString)し,直線を描いた(drawLine).

6.おわりに
 教育学部のサーバーだけでなく,学外のサーバーにも濃度計算と調製方法のプログラムを載せてサービスを開始した[文献1].学校の授業の準備や自由研究等でも利用できると思われる.今後は,計算できる(水)溶液の種類を増やし,少しずつサービスを充実していく予定である.

参考文献など(URLは全て2003年7月15日時点のものです)
[文献1] トップページ http://www.e-sensei.ne.jp/~ashida/index.htm および http://www1.edu.saitama-u.ac.jp/users/ashida/index.htm
[文献2] 芦田実ほか『インターネットを活用した回帰分析と作図の自動サービス −Excel形式−』化学教育ジャーナル(CEJ)(投稿中)
[文献3] 中川徹夫『2成分系溶液の濃度の相互変換公式』理科の教育,通巻599号,51(6),406(2002)
[文献4] 中川徹夫『水溶液の調製に有用な式』理科の教育,通巻603号,51(10),696(2002)
[文献5] 日本化学会編『化学便覧基礎編』丸善(株)
[文献6] 高橋和也ほか『Java逆引き大全500の極意』(株)秀和システム
[文献7] 田中秀治『Jbuilder5で入門!Javaプログラミング』ソーテック社
[文献8] 松浦健一郎,司ゆき『はじめてのJBuilder6』ソフトバンク(株)
[文献9] 赤間世紀『Java2による数値計算』技報堂出版(株)
[文献10] 青野雅樹『Javaで学ぶコンピュータグラフィックス』(株)オーム社
[文献11] 中山茂『Java2グラフィックスプログラミング入門』技報堂出版(株)
[文献12] http://www2.biglobe.ne.jp/~sota/
[文献13] 『ホームページ・ビルダー2001ユーザーズ・ガイド』日本アイ・ビー・エム(株)
[文献14] アンク『HTMLタグ辞典』翔泳社
[文献15] http://www.vector.co.jp/soft/win95/util/se079072.html


トップへ  CEJ, v7n1目次へ