如图,溶液C是溶液A与溶液B的混合物。假如我们已经知道A与B的浓度,现在要配制成目标浓度C溶液,需要A,B各多少?
显然,体积C = 体积A + 体积B,
浓度C × 体积C = 浓度A × 体积A + 浓度B × 体积B 。
解这个方程组还是有点繁琐。不方便多次调整各个浓度值与一个体积去计算另外两个体积。
所以还是得制作一个小工具。
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Edit1: TEdit; {溶液A浓度}
Edit2: TEdit; {溶液A体积}
Edit3: TEdit; {溶液B浓度}
Edit4: TEdit; {溶液B体积}
Edit5: TEdit; {溶液C浓度}
Edit6: TEdit; {溶液C体积}
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
function def0(x:string):Double;
begin
if x = '' then def0 := 0.0
else def0 := strtofloat(x);
end;
function round4(x:Double):Double;
begin
round4 := Round(x * 10000) / 10000;
end;
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
var
ca,va,cb,vb,cc,vc:Double;
begin
ca := def0(Edit1.Text);
va := def0(Edit2.Text);
cb := def0(Edit3.Text);
cc := def0(Edit5.Text);
vb := round4((ca - cc) / (cc - cb) * va);
Edit4.Text := FloatToStr(vb);
vc := va + vb;
Edit6.Text := FloatToStr(vc);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
ca,va,cb,vb,cc,vc:Double;
begin
ca := def0(Edit1.Text);
cb := def0(Edit3.Text);
vb := def0(Edit4.Text);
cc := def0(Edit5.Text);
va := round4((cc - cb) / (ca - cc) * vb);
Edit2.Text := FloatToStr(va);
vc := va + vb;
Edit6.Text := FloatToStr(vc);
end;
procedure TForm1.Button3Click(Sender: TObject);
var
ca,va,cb,vb,cc,vc:Double;
begin
ca := def0(Edit1.Text);
cb := def0(Edit3.Text);
cc := def0(Edit5.Text);
vc := def0(Edit6.Text);
va := round4((cc - cb) / (ca - cb) * vc);
Edit2.Text := FloatToStr(va);
vb := vc - va;
Edit4.Text := FloatToStr(vb);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ShowMessage('先填写溶液ABC的浓度,再填入其中一个溶液的体积,点击旁边的按钮,即可求得另外两个溶液的体积。');
end;
end.
如上图,我们有65mg/L 的 溶液 30mL,配制成24mg/L的溶液C需要多少稀释液B呢?点击 计算BC 按钮,得到下图:
需要B液51.25mL,得到溶液C 81.25mL。
假如我们溶液B不足,仅有48mL,又该如何使用呢?
可以将体积B填入48,点击 计算AC 按钮,得到上图体积A与C。
如果我们只需要78mL的溶液C,那就可以输入体积C,点击 计算AB 按钮,就得到溶液A需要33.6mL,溶液B是44.4mL。