ลำดับของการดำเนินการ PEMDAS เป็นกฎพื้นฐานในคณิตศาสตร์ที่บอกเราว่าควรดำเนินการตามคำสั่งอย่างไร:
"วงเล็บเลขชี้กำลังการคูณและการหารและการบวกและลบ"
ปัญหาคือ PEMDAS ไม่หลากหลายมาก! ถ้าคุณต้องการที่จะทำในลำดับอื่น เราจะไม่ยุ่งกับวงเล็บดังนั้นเราจึงเก็บมันไว้ในที่ที่มันอยู่ (อันดับแรก)
สร้างโปรแกรมที่รับสองอาร์กิวเมนต์:
- สตริงที่บอกลำดับการดำเนินการที่ควรปฏิบัติ ตัวอย่างบางส่วน
"DAMES"
,"SAD, ME"
, ,"ME SAD"
"MEADS"
ใช่ช่องว่างและเครื่องหมายจุลภาคก็โอเคเพราะทำให้ง่ายต่อการจดจำคำสั่ง- การติดตามคำแนะนำในการแชท: การสนับสนุนช่องว่างและเครื่องหมายจุลภาคเป็นทางเลือก
- หากตัวอักษรตัวใดตัวหนึ่งหายไปหรือหากมีตัวอักษรเพิ่มเติมที่ไม่ควรอยู่ที่นั่นคุณสามารถพิจารณาอินพุตที่ไม่ถูกต้องและจัดการตามที่คุณต้องการ
- สตริงหรือนิพจน์ที่มีนิพจน์ที่ควรได้รับการประเมิน
ส่งคืนผลลัพธ์ของนิพจน์เป็นตัวเลขทศนิยมหรือจำนวนเต็ม หากคำตอบไม่ใช่จำนวนเต็มจะต้องส่งคืนเป็นเลขทศนิยม
กฎ:
- คุณสามารถรวมอาร์กิวเมนต์ที่ป้อนเข้าสองรายการเข้าเป็นหนึ่งเดียวได้ถ้าหากในภาษาของคุณง่ายขึ้น
- ไม่จำเป็นต้องเป็นสตริง แต่ต้องมีตัวอักษร คุณไม่สามารถทดแทนการเพิ่มด้วย 1, หารด้วย 2, เป็นต้น
- คุณสามารถเลือกอินพุตที่เป็นอันดับแรก
- นิพจน์ได้รับการประเมินจาก
ขวาไปซ้ายจากซ้ายไปขวา (การเปลี่ยนแปลงของกฎโปสเตอร์ที่ส่งใด ๆ ใน 12 ชั่วโมงแรกที่มีวิธีอื่น ๆ ได้รับการยอมรับ) ( ) ^ * / + -
การดำเนินงานของใช้สัญลักษณ์นี้: ตัวอย่างเช่นคุณไม่สามารถใช้¤
แทน+
การเพิ่มได้- ช่องว่างในนิพจน์อินพุตไม่ถูกต้องเป็นอินพุต
- Unary +/- ไม่ถูกต้องเป็นอินพุตถ้ามันตรงตาม + หรือ - พิจารณา
3+-2
ว่าเป็นอินพุตที่ไม่ถูกต้อง สามารถรักษาได้ตามที่คุณต้องการ (ไม่ต้องมีข้อผิดพลาด) หาก+
หรือ-
ติดตามตัวดำเนินการอื่นที่ไม่ใช่บวกหรือลบจะถือว่าเป็นวิธีปกติ:3*-3 = -9
,sin(-2)=-0.909
- โปรแกรมที่จะต้องปฏิบัติตามอย่างเคร่งครัดตัวอักษรเพื่อให้และ
"EMDAS", 1-3+4 => -6
"EMDSA", 1-3+4 => 2
ตัวอย่าง:
Input: "EMDAS", "3+6*2/4-1" // -> 3+12/4-1 -> 3+3-1 -> 6-1 -> 5
Output: 5
Input: "DAMES", "3+6*2/4-1" // -> 3+6*0.5-1 -> 9*0.5-1 -> 4.5-1 -> 3.5
Output: 3.5
Input: "SAD, ME", "3+6*2/4-1" // -> 3+6*2/3 -> 9*2/3 -> 9*0.66667 -> 6
Output: 6
Input: "ME ADS", "3+5^4/2-3*2 // -> 3+5^4/2-6 -> 3+625/2-6 -> 628/2-6 -> 314-6 -> 308
Output: 308
Input: "AM EDS", "4*3-sin(0.5^2)*3+1" // -> 4*3-sin(0.5^2)*4 -> 12-sin(0.5^2)*4 -> 4*3-(4*sin(0.5^2)) -> 12-(4*sin(0.5^2)) -> 12-(4*sin(0.25)) -> 12-(4*0.24740) -> 12-0.98961 -> 11.01038
Output: 11.01038
Input: "DAMES", "4-5-6" // -> (4-5)-6 -> = -7
Output: -7 // NOT: -> 4-(5-6) -> 4-(-1) -> 5
หมายเหตุวงเล็บที่เพิ่มเพื่อแสดงว่าการคูณ4*sin(0.5^2)
จะถูกประเมินก่อนการยกกำลัง
นี่คือรหัสกอล์ฟดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ
BODMAS
หรือBIDMAS
ที่โรงเรียน B
= วงเล็บเหลี่ยมO
หรือI
= คำสั่งซื้อหรือดัชนี
p
จำเป็น? มันไม่ได้อยู่ในตัวอย่าง