จั่วหัวอาจจะแปลกๆ หน่อย นะครับ
เพราะ ตอนนี้ ในหัวผม เริ่ม 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] คลิกเพื่อดูข้อความที่ซ่อนไว้