แนวการเขียนCode ในการจัดรูปสมการ ที่ติดตัวแปร ทำไงได้บ้างคะ

พูดคุยแลกเปลี่ยน ปัญหา การเขียน JavaScript เครื่องมือ AJAX Web 2.0 AJAX Framework jQuery และ Node.JS รวมถึง Framework Express ของ Node.JS ทำงานฝั่ง Server

Moderator: mindphp

ภาพประจำตัวสมาชิก
aomsri_002
PHP Newbie
PHP Newbie
โพสต์: 6
ลงทะเบียนเมื่อ: 01/01/1970 7:00 am

แนวการเขียนCode ในการจัดรูปสมการ ที่ติดตัวแปร ทำไงได้บ้างคะ

โพสต์ที่ยังไม่ได้อ่าน โดย aomsri_002 »

จากแต่ละสมการต่อไปนี้นะคะ ต้องการจัดสมการโดยต้องติดตัวแปรไว้ด้วย

สมมติค่าที่รับเข้าไปดังนี้ (เป็น string)

(3*1*5*x^4)+(8*1*2*y) ต้องการให้ออกมาคือ (15*x^4)+(16*y)

1*2*x*2*x^2 ต้องการให้ออกมาคือ 4*x^3

2*x + x ต้องการให้ออกมาคือ 3*x

(1*0-0*x)/(0*0) ต้องการให้ออกมาคือ หาค่าไม่ได้เมื่อส่วนเป็นศูนย์

x + - 3 ต้องการให้ออกมาคือ -3

- x - - 3 ต้องการให้ออกมาคือ -x + 3

2+sin(90)-5 ต้องการให้ออกมาคือ -2

เนื่องจากว่าอาจเกิดกรณี เครื่องหมายติดกัน เช่น 2++3 หรือ 2-+3 ได้แต่ให้คำนวณปกติเป็น 2+3 และ 2-3 ด้วย

กรณี sin 90 จาแยกออกมาหาได้ยังไง จัดสมการกรณีติดตัวแปรได้หรือไม

ลืมบอกว่า สมการที่ต้องการจะจัดรูปมันเป็น string ด้วยอ่า

แล้วก็ตัวแปรเป็นอะไรก็ได้ ไม่จำเป็นต้องเป็น x สมการนึงสามารถมีหลายตัวแปรได้

เขียนให้cover ทุกๆกรณี ยากมากๆ ใครรู้บ้างว่าควรทำอย่างไรดี ช่วยแนะหน่อยนะคะ
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41125
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ต้องการ java หรือ php ครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
aomsri_002
PHP Newbie
PHP Newbie
โพสต์: 6
ลงทะเบียนเมื่อ: 01/01/1970 7:00 am

โพสต์ที่ยังไม่ได้อ่าน โดย aomsri_002 »

ต้องการเขียนโปรแกรมสำหรับคำนวณบนเวปอะค่ะ java script หรือ php ก็ได้ค่ะ
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41125
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ต้องการ เอา สมการ ไปคำนวนต่อหรือเปล่าครับ หรือว่าแค่จัดรูปแบบ เป็นข้อความ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
aomsri_002
PHP Newbie
PHP Newbie
โพสต์: 6
ลงทะเบียนเมื่อ: 01/01/1970 7:00 am

โพสต์ที่ยังไม่ได้อ่าน โดย aomsri_002 »

เมื่อ input ที่เข้ามาเป็น string เช่น (1*2*x^2)+y หรือ 1*x*x+y หรือ ...


ต้องการตอบแบบ จัดรูปเป็นข้อความ
กรณที่ 1 ตอบเป็น x^2+y

และ

ต้องการตอบแบบกรณีที่แทนค่าตัวแปร x=1 และ y=5
กรณีที่ 2 ตอบเป็น 7
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41125
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ลอง ใช้ คำสั่งนี้นะครับ แล้วจะเข้าใจ สำหรับ php
eval("echo 2*(3+5);");
ส่วน javascript ก็ คล้ายกัน เช่น
eval("x=10;y=20;document.write(x*y)");

ส่วนเรื่องการ จัดกลุ่มนี้คงต้องเขียนแยก และ รวมกว่าเอาเองครับ โดยกำหนดรูปแบบขึ้นมา
ลองดู เรื่องนี้ ครับ รับรองช่วยได้เยอะ
https://www.mindphp.com/modules.php?name ... age&pid=78
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
aomsri_002
PHP Newbie
PHP Newbie
โพสต์: 6
ลงทะเบียนเมื่อ: 01/01/1970 7:00 am

โพสต์ที่ยังไม่ได้อ่าน โดย aomsri_002 »

ขอบคุณค่ะ แต่เจอปัญหาบ้างค่าที่คำนวณคำตอบออกมาไม่ถูก ดังนี้

eval("echo (2^2)/4;"); ค่าที่ได้มันไม่เท่ากับ 1 อะค่ะ

นอกจากนี้ยังมีกรณีอื่น ๆ ที่ค่าออกมาผิดด้วยค่ะ

เช่น

eval("echo 1*(1/2)*(1)^((1/2)-1)*2*SQRT(1);");

มันออกมา เท่ากับ -1 ซึ่งจริงๆแล้วคำตอบผิด ที่ถูกต้องได้ 1

eval("echo 2*(1)^((1/2)-1)*2;");

มันออกมา เท่ากับ -3 ซึ่งจริงๆแล้วคำตอบผิด ที่ถูกต้องได้ 4

อย่างนี้แล้วควรทำอย่างไรต่อดีคะ ?????
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41125
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ลอง ตัด eval ออก ดูครับ ว่า เราเขียน เครื่อง หมาย ถูกต้องหรือเปล่า
เช่น
eval("echo 2*(1)^((1/2)-1)*2;");
ลองเขียนแค่
echo 2*(1)^((1/2)-1)*2;
จะรู้ว่า มันผิดตรงไหน (^ ไม่มีในตัวดำเนินการของ php หรือ Programming ใดๆ )
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
aomsri_002
PHP Newbie
PHP Newbie
โพสต์: 6
ลงทะเบียนเมื่อ: 01/01/1970 7:00 am

โพสต์ที่ยังไม่ได้อ่าน โดย aomsri_002 »

อ๋อ เข้าใจแล้วค่ะ ขอบคุณค่ะ

ถ้างั้นก็ต้องเช็คสตริงอีก :cry: :cry: :cry: :cry:

แล้วแปลงให้อยู่ในรูป pow ก่อนใช้มั้ยคะ

ถึงจะคำนวณเลขยกกำลังได้
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41125
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ช่าย แล้วครับ เริ่มสนุก ?
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ตอบกลับโพส

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 39