|
|
|
WinApp C# ขอความช่วยเหลือเรื่องการออกแบบโด้ด การเตรียม สารละลายหน่อยครับ |
|
|
|
|
|
|
|
อยากเขียนโปรแกรมช่วยในการเตรียมสารละลายครับ
รูปแบบน่าจะเหมือนการแลกเหรียญนะครับ
แต่ยังคิดออกมาเป็นโค้ดไม่ออก
สูตรการคำนวณ
V1 = C2*100/C1
C1 = ความเข้มข้น แรก
V1 = ปริมาตรแรก (1,2,3,4,5,10 ml) *** ต้องใช้ตัวเลขนี้เท่านั้น
C2 = ความเข้มข้น ที่ต้องการเตรียม
ตัวอย่าง
เตรียม สารละลาย Na 100 mg/L จาก 1000 ml/L
step 1 V1 = 100*100/1000 = 10 ml
เตรียม สารละลาย Na 0.01 mg/L จาก 1000 ml/L
step 1 V1 = 100*100/1000 = 10 ml // 100 mg/L
step 2 V1 = 1*100/100 = 1 ml // 1 mg/L
step 3 V1 = 0.01*100/1 = 1 ml // 0.01 mg/L
เตรียม สารละลาย Na 0.001 mg/L จาก 1000 ml/L
step 1 V1 = 100*100/1000 = 10 ml // 100 mg/L
step 2 V1 = 1*100/100 = 1 ml // 1 mg/L
step 3 V1 = 0.1*100/1 = 10 ml // 0.1 mg/L
step 4 V1 = 0.001*100/0.1 = 10 ml // 0.001 mg/L
ประมาณนั้น
จาก V1 = C2*100/C1
ต้องการให้ user กรอกแค่ C2 หรือ ความเข้มข้นที่ต้องการเตรียม
แล้วให้คำนวณหาความน่าจะเป็นว่าจะเตรียมแบบไหนได้บ้าง
โดย V1 = ปริมาตรแรก (1,2,3,4,5,10 ml) *** ต้องใช้ตัวเลขนี้เท่านั้น
เหมือนคณิต แบบบ้านๆอ่าครับแค่ คำนวณหาความน่าจะเป็น
Tag : .NET, Win (Windows App), C#, Windows
|
|
|
|
|
|
Date :
2015-11-03 17:01:01 |
By :
lamaka.tor |
View :
950 |
Reply :
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดัน ๆๆๆ
|
|
|
|
|
Date :
2015-11-04 14:33:35 |
By :
lamaka.tor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อั้ยยะ เห็นแต่คุณ tor ตอบคนอื่น เพิ่งจะเห็นว่ามีถามด้วย
|
|
|
|
|
Date :
2015-11-04 22:30:25 |
By :
deksoke |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เกี่ยวไรกับความน่าจะเป็น มั่วนะครับ
ใบ้ให้นิดนึง
โจทย์แนวนี้ก็แบบเดี๋ยวกับ knight's tour
สามารถคำนวณได้เลยว่า สามารถเตรียมสารได้กี่แบบเลย
|
|
|
|
|
Date :
2015-11-05 10:22:06 |
By :
xxx-xxx-xxx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 4 เขียนโดย : xxx-xxx-xxx เมื่อวันที่ 2015-11-05 10:22:06
รายละเอียดของการตอบ ::
ตอนนี้ปัญหาที่ติดคืออยากดึงออกมาเป็นโค้ดยังไงมากกว่าครับ
แต่ไม่น่าเหมือน knight's tour นะครับ
ตัวนี้รูปแบบค่อนข้างตายตัวครับ
อย่าง
50 mg/L
Step 1 เตรียมความเข้มข้น 50 mg/L ปิเปต 5 ml จาก 1000 mg/L ปรับ 100 ml
0.5 mg/L
Step 1 เตรียมความเข้มข้น 100 mg/L ปิเปต 10 ml จาก 1000 mg/L ปรับ 100 ml
Step 2 เตรียมความเข้มข้น 10 mg/L ปิเปต 10 ml จาก 100 mg/L ปรับ 100 ml
Step 3 เตรียมความเข้มข้น 5 mg/L ปิเปต 10 ml จาก 10 mg/L ปรับ 100 ml
แต่ตอนนี้คิดไม่ออกว่า
จะดึงออกมาเป็น step ยังไง โดยใช้ สูตร กับ ปิเปต ตามที่บอกครับ
|
|
|
|
|
Date :
2015-11-05 11:04:24 |
By :
lamaka.tor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จากข้อ เตรียม สารละลาย Na 0.01 mg/L จาก 1000 ml/L
ลอง blind search แบบ manual ไม่เกิน 5 ครั้ง ก็ได้ทำตอบหมดทั้งกระดานแล้ว
โครตง่ายเลย เอาไปทำเองไป
|
|
|
|
|
Date :
2015-11-05 12:11:13 |
By :
xxx-xxx-xxx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับคนในแล็บใช้ได้ก็พอแก้ขัดได้ซักหน่อย
Code (C#)
int[] pipett = new int[] { 25,10,9,8,7,6 ,5, 4, 3, 2, 1 };
int flask = 100;
#region _Function
string stepcalSTD(double conc)
{
string str = "";
double cri = 1000;
int pp = 0;
int i = 1;
do
{
pp = (cri / conc > 99) ? 0 : _Pipett(cri, conc);
if (pp == 0)
{
str += Environment.NewLine + "Step " + i + " เตรียมความเข้มข้น " + cri / 10 + " mg/L ปิเปต 10 ml จาก " + cri + " mg/L ปรับ 100 ml";
}
else
{
str += Environment.NewLine + "Step " + i + " เตรียมความเข้มข้น " + conc + " mg/L ปิเปต " + pp + " ml จาก " + cri + " mg/L ปรับ 100 ml";
break;
}
System.Threading.Thread.Sleep(10);
cri = cri / 10;
i++;
} while (cri * pp / 100 != conc);
return str;
}
int _Pipett(double _C1 = 0, double _C2 = 0)
{
int p = 0;
foreach(int i in pipett)
{
if (_C1 * i / flask == _C2)
{
p = i;
return p;
}
System.Threading.Thread.Sleep(10);
}
return p;
}
#endregion
private void button1_Click(object sender, EventArgs e)
{
textBox2.Text = "";
double startCounter = DateTime.Now.TimeOfDay.TotalSeconds;
if (double.Parse(textBox1.Text) == 0) return;
this.textBox2.Text = stepcalSTD(double.Parse(textBox1.Text));
this.textBox2.Text += Environment.NewLine;
this.textBox2.Text += Environment.NewLine + string.Format("Total time: {0} seconds", (DateTime.Now.TimeOfDay.TotalSeconds - startCounter).ToString("#,##0.0###"));
}
|
|
|
|
|
Date :
2015-11-06 09:03:00 |
By :
lamaka.tor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|