ภารกิจของคุณถ้าคุณเลือกที่จะยอมรับมันก็คือการสร้างผู้ประเมินความจริงแบบง่าย ๆ สำหรับผู้ประกอบการเชิงตรรกะดังต่อไปนี้:
----------------------------------------------------------------------------------
Logical Name | Gate Name | Symbol | Symbol Name | Truth Table
----------------------------------------------------------------------------------
Identity | is | | (none) | 10
Negation | not | ~ | tilde | 01
Conjunction | and | & | ampersand | 1000
Disjunction | or | | | pipe | 1110
Negative Conjunction | nand | ^ | caret | 0111
Joint Denial | nor | v | "vee" | 0001
Exclusive Disjunction | xor | x | "ecks" | 0110
Equivalence | equals/xnor | = | equals | 1001
Implication | implies | > | greater than | 1011
ตารางความจริงอยู่ในลำดับต่อไปนี้:
- 1 1
- 1 0
- 0 1
- 0 0
อินพุตจะมาในรูปแบบสตริง 0, 1 และสัญลักษณ์ คุณสามารถยอมรับอินพุตเป็นพารามิเตอร์หรืออ่านจากผู้ใช้บน stdin นี่คือตัวอย่างอินพุต / เอาท์พุตตัวอย่างบางส่วน:
Input: 1
Output: 1
Input: ~1
Output: 0
Input: 0|1
Output: 1
Input: 1>0
Output: 0
ตัวดำเนินการ unary (การปฏิเสธ) จะปรากฏขึ้นเสมอก่อนที่ค่าบูลีนในขณะที่ตัวดำเนินการไบนารีจะปรากฏระหว่างค่าบูลีนสองค่าเสมอ คุณสามารถสันนิษฐานได้ว่าการป้อนข้อมูลทั้งหมดจะถูกต้อง สตริงเป็นสตริง ASCII ปกติ
หากคุณต้องการคุณสามารถใช้ T และ F มากกว่า 1 และ 0. -6กับการนับตัวละครของคุณหากคุณสนับสนุนทั้งสอง
นี่คือ รหัสกอล์ฟ: รหัสที่สั้นที่สุดในทุกภาษาชนะ!
^
ชื่อสัญลักษณ์ควรพูดว่าคาเร็ต