みけCATのにっき(仮)
つれづれなるまゝに、日くらし、PCにむかひて、心に移りゆくよしなし事を、そこはかとなく書きつくれば、あやしうこそものぐるほしけれ。
(本当か!?)
出典

食酢中の酸の定量

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

食酢中の酸の定量

投稿記事 by みけCAT » 14年前

最近理科総合Aの授業で実験をしてレポートを書かされました。
その時に計算プログラムも付けてみました。
印刷してから気づいたけど、少し間違ってる...return 0;してないとか。
というわけでそのソースコードを晒してみます。
[tabs][tabs:修正版]

CODE:

#include 

/*式量*/
#define CH3COOH 60
#define COOH2_2H2O 126
/*食酢を何倍に薄めるか*/
#define DILUTE_RATIO 10
/*食酢の密度(g/mL)*/
#define VINEGAR_DENSITY 1.00
/*用いるシュウ酸水溶液の濃度(mol/L)
計算によって求める場合は定義しない*/
#define OXALIC_ACID_CON 0.0500
/*滴定を行う回数*/
#define TITRATION_NUM 3
/*滴定時にコニカルビーカーに最初に入れる水溶液の体積(mL)*/
#define FIRST_VOLUME 10

int main(void) {
	double first,last;			/*滴定開始時と終了時の目盛*/
	double mCOOH2;				/*シュウ酸二水和物の質量*/
	double vH2O;				/*シュウ酸水溶液用の水の体積*/
	double cCOOH2;				/*シュウ酸水溶液の濃度*/
	double cNaOH,vNaOH;			/*水酸化ナトリウム水溶液の濃度と体積*/
	double cCH3COOH;			/*酢酸水溶液の濃度*/
	double vinegar_mol_c;		/*食酢のモル濃度*/
	double vinegar_percent_c;	/*食酢の質量パーセント濃度*/
	int i;
	printf("注意:有効数字は手動で修正してください。\n");
	/*シュウ酸水溶液の調製*/
#ifdef OXALIC_ACID_CON
	/*シュウ酸水溶液の濃度が与えられている場合はその値を使う*/
	cCOOH2=OXALIC_ACID_CON;
#else
	printf("シュウ酸水溶液の調製を行います。\n");
	printf("シュウ酸二水和物の質量(g)を入力してください。\n");
	scanf("%lf",&mCOOH2);
	printf("加える水の体積(L)を入力してください。\n");
	scanf("%lf",&vH2O);
	cCOOH2=mCOOH2/COOH2_2H2O/vH2O;
#endif
	printf("シュウ酸水溶液の濃度は%fmol/Lです。\n",cCOOH2);
	/*水酸化ナトリウム水溶液の濃度の測定*/
	printf("水酸化ナトリウム水溶液の濃度の測定を行います。\n");
	printf("%d回滴定を行います。\n",TITRATION_NUM);
	vNaOH=0;
	for(i=1;i

/*式量*/
#define CH3COOH 60
#define COOH2_2H2O 126
/*食酢を何倍に薄めるか*/
#define WEAK_RATIO 10
/*食酢の密度(g/mL)*/
#define VINEGAR_DENSITY 1.00
/*用いるシュウ酸水溶液の濃度(mol/L)
計算によって求める場合は定義しない*/
#define OXALIC_ACID_CON 0.0500
/*滴定を行う回数*/
#define TITRATION_NUM 3
/*滴定時にコニカルビーカーに最初に入れる水溶液の体積(mL)*/
#define FIRST_VOLUME 10

int main(void) {
	double first,last;			/*滴定開始時と終了時の目盛*/
	double mCOOH2;				/*シュウ酸二水和物の質量*/
	double vH2O;				/*シュウ酸水溶液用の水の体積*/
	double cCOOH2;				/*シュウ酸水溶液の濃度*/
	double cNaOH,vNaOH;			/*水酸化ナトリウム水溶液の濃度と体積*/
	double cCH3COOH;			/*酢酸水溶液の濃度*/
	double vinegar_mol_c;		/*食酢のモル濃度*/
	double vinegar_percent_c;	/*食酢の質量パーセント濃度*/
	int i;
	printf("注意:有効数字は手動で修正してください。\n");
	/*シュウ酸水溶液の調製*/
#ifdef OXALIC_ACID_CON
	/*シュウ酸水溶液の濃度が与えられている場合はその値を使う*/
	cCOOH2=OXALIC_ACID_CON;
#else
	printf("シュウ酸水溶液の調製を行います。\n");
	printf("シュウ酸二水和物の質量(g)を入力してください。\n");
	scanf("%lf",&mCOOH2);
	printf("加える水の体積(L)を入力してください。\n");
	scanf("%lf",&vH2O);
	cCOOH2=mCOOH2/COOH2_2H2O/vH2O;
#endif
	printf("シュウ酸水溶液の濃度は%fmol/Lです。\n",cCOOH2);
	/*水酸化ナトリウム水溶液の濃度の測定*/
	printf("水酸化ナトリウム水溶液の濃度の測定を行います。\n");
	printf("%d回滴定を行います。\n",TITRATION_NUM);
	vNaOH=0;
	for(i=1;i<=TITRATION_NUM;i++) {
		printf("%d回目の滴定です。\n",i);
		printf("滴定開始時の目盛:");
		scanf("%lf",&first);
		printf("滴定終了時の目盛:");
		scanf("%lf",&last);
		printf("滴下量は%fmLです。\n",last-first);
		vNaOH+=last-first;
	}
	vNaOH/=TITRATION_NUM;/*平均を求める*/
	printf("滴下量の平均は%fmLです。\n",vNaOH);
	cNaOH=2*cCOOH2*FIRST_VOLUME/vNaOH;
	printf("水酸化ナトリウム水溶液の濃度は%fmol/Lです。\n",cNaOH);
	/*食酢中の酸の定量*/
	printf("食酢中の酸の定量を行います。\n");
	printf("%d回滴定を行います。\n",TITRATION_NUM);
	vNaOH=0;
	for(i=1;i<=TITRATION_NUM;i++) {
		printf("%d回目の滴定です。\n",i);
		printf("滴定開始時の目盛:");
		scanf("%lf",&first);
		printf("滴定終了時の目盛:");
		scanf("%lf",&last);
		printf("滴下量は%fmLです。\n",last-first);
		vNaOH+=last-first;
	}
	vNaOH/=TITRATION_NUM;/*平均を求める*/
	printf("滴下量の平均は%fmLです。\n",vNaOH);
	cCH3COOH=cNaOH*vNaOH/FIRST_VOLUME;
	printf("うすめた食酢の濃度は%fmol/Lです。\n",cCH3COOH);
	/*データ処理*/
	vinegar_mol_c=cCH3COOH*WEAK_RATIO;
	printf("もとの食酢のモル濃度は%fmol/Lです。\n",vinegar_mol_c);
	vinegar_percent_c=CH3COOH*vinegar_mol_c/(1000*VINEGAR_DENSITY)*100;
	printf("もとの食酢の質量パーセント濃度は%f%%です。\n",vinegar_percent_c);
}
[/tabs]
最後に編集したユーザー みけCAT on 2010年12月15日(水) 20:02 [ 編集 1 回目 ]
理由: またカテゴリをつけ忘れたorz

アバター
SAI
記事: 115
登録日時: 14年前

Re: 食酢中の酸の定量

投稿記事 by SAI » 14年前

なつかしいです。私も昔やりました。
確か普通のお酢って酢酸が4%ぐらいだった記憶があります。
意外に少ないなーなんて思いましたね。

アバター
GRAM
記事: 164
登録日時: 14年前

Re: 食酢中の酸の定量

投稿記事 by GRAM » 14年前

今まさにそんな感じのレポート書きました^^;
Na2-EDTA という薬品を使って水道水の硬度を逆滴定するのですがめんどくさかったです。
doubleを使ってるので大丈夫だとは思いますが、パソコンもたまに計算を間違えるので(誤差があるため)できる限り分数の型を使った方がいいかもしれません…。
複数回滴定してるので、もし余力があれば標本標準偏差とそれを基にした変動係数まで求めると実験の精度も調べることができます!