จั่วหัวอาจจะแปลกๆ หน่อย นะครับ
เพราะ ตอนนี้ ในหัวผม เริ่ม blank แล้ว หลังจากอดนอน มาทั้งคืน
คราวนี้ เป็นทีของ PAMDAS ครับ
ผมสร้าง สมการ ที่มีตัวเลข 3 ตัว หรือ ตัวดำเนินการ 2 ตัว ได้แล้ว
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้ List<string> lstOP_1 = new List<string>() { "+_x", "x_+", "-_x", "x_-", "+_÷", "÷_+", "-_÷", "÷_-" };
string GetPEMDAS_1()
{
string op = lstOP_1[RandomNumberGenerator.GetInt32(0, lstOP_1.Count - 1)];
int a = RandomNumberGenerator.GetInt32(1, 10);
int b = RandomNumberGenerator.GetInt32(1, 10);
int c = RandomNumberGenerator.GetInt32(1, 10);
int d = b * c;
string str = "";
if (op == "+_x")
{
str = $"{a} + {b} x {c} = ?";
}
else if (op == "x_+")
{
str = $"{b} x {c} + {a} =? ";
}
else if (op == "-_x")
{
str = $"{a} - {b} x {c} = ? ";
}
else if (op == "x_-")
{
str = $"{b} x {c} - {a} = ? ";
}
else if (op == "+_÷")
{
str = $"{a} + {d} ÷ {c} = ?";
}
else if (op == "÷_+")
{
str = $"{d} ÷ {c} + {a} =? ";
}
else if (op == "-_÷")
{
str = $"{a} - {d} ÷ {c} = ?";
}
else if (op == "÷_-")
{
str = $"{d} ÷ {c} - {a} =? ";
}
str += "\nวิธีทำ ______________________________" +
"\n_________________________________" +
"\n_________________________________" +
"\n_________________________________";
return str;
}
คราวนี้ ผมอยาก เพิ่มเป็น ตัวดำเนินการ + - x ÷ 3 ตัว
ถ้า 2 ตัว จะได้
List<string> lstOP_1 = new List<string>() { "+_x", "x_+", "-_x", "x_-", "+_÷", "÷_+", "-_÷", "÷_-" };
ถ้า 3 ตัว จะได้ ออกมาเป็น ยังไง บ้างครับ
แล้ว อีกอย่าง คือ โค้ด ผมมันไม่ยืดหยุ่น ในส่วนของ if ที่ จะเอาค่าที่สุ่มมาลงด้วย และ ส่วนของ lstOP_1 ที่มันตายตัวด้วย
เช่นอย่าง ตัวดำเนินการ 2 ตัว ผมแก้ด้วยการใช้ if และ int d = b * c; เข้ามาดัก ถ้าเจอ ÷ ก็ให้ดึง ค่า d มาใช้เลย
ถ้ายังเขียนแบบนี้ต่อไป ตัวดำเนินการ เยอะขึ้น ก็ต้องเพิ่ม if ยาวเป็นหางว่าว แน่ๆ เลย ครับ
ผมอยากปรับแก้ ให้สามารถ ใช้ได้กับ สมการ ที่มีจำนวนตัวเลข เพิ่มขึ้น เรื่อยๆ ครับ ควรปรับแก้ยังไง บ้าง
แล้ว การ สุ่ม ตัวแปร เพื่อนำมา ÷ แบบให้ลงตัว เราควร ออกแบบ โค้ดยังไง ดีครับ
แค่นี้ ไม่แน่ใจว่าพอไม๊
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้ List<string> lstOP_2 =
new List<string>
) { "+_+_x", "+_x_+", "x_+_+",
"+_-_x", "+_x_-", "x_+_-",
"-_+_x", "-_x_+", "x_-_+",
"+_+_÷", "+_÷_+", "÷_+_+",
"+_-_÷", "+_÷_-", "÷_+_-",
"-_+_÷", "-_÷_+", "÷_-_+"};
คณิต ตัวดำเนินการ + - x ÷ หลายๆ ตัว ในสมการ มีอะไร บ้างครับ
เพราะ ตอนนี้ ในหัวผม เริ่ม blank แล้ว หลังจากอดนอน มาทั้งคืน
คราวนี้ เป็นทีของ PAMDAS ครับ
ผมสร้าง สมการ ที่มีตัวเลข 3 ตัว หรือ ตัวดำเนินการ 2 ตัว ได้แล้ว
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้
คราวนี้ ผมอยาก เพิ่มเป็น ตัวดำเนินการ + - x ÷ 3 ตัว
ถ้า 2 ตัว จะได้
List<string> lstOP_1 = new List<string>() { "+_x", "x_+", "-_x", "x_-", "+_÷", "÷_+", "-_÷", "÷_-" };
ถ้า 3 ตัว จะได้ ออกมาเป็น ยังไง บ้างครับ
แล้ว อีกอย่าง คือ โค้ด ผมมันไม่ยืดหยุ่น ในส่วนของ if ที่ จะเอาค่าที่สุ่มมาลงด้วย และ ส่วนของ lstOP_1 ที่มันตายตัวด้วย
เช่นอย่าง ตัวดำเนินการ 2 ตัว ผมแก้ด้วยการใช้ if และ int d = b * c; เข้ามาดัก ถ้าเจอ ÷ ก็ให้ดึง ค่า d มาใช้เลย
ถ้ายังเขียนแบบนี้ต่อไป ตัวดำเนินการ เยอะขึ้น ก็ต้องเพิ่ม if ยาวเป็นหางว่าว แน่ๆ เลย ครับ
ผมอยากปรับแก้ ให้สามารถ ใช้ได้กับ สมการ ที่มีจำนวนตัวเลข เพิ่มขึ้น เรื่อยๆ ครับ ควรปรับแก้ยังไง บ้าง
แล้ว การ สุ่ม ตัวแปร เพื่อนำมา ÷ แบบให้ลงตัว เราควร ออกแบบ โค้ดยังไง ดีครับ
แค่นี้ ไม่แน่ใจว่าพอไม๊
[Spoil] คลิกเพื่อดูข้อความที่ซ่อนไว้