ผลต่างระหว่างรุ่นของ "Brainfxxx"
ไปยังการนำทาง
ไปยังการค้นหา
Jittat (คุย | มีส่วนร่วม) |
Jittat (คุย | มีส่วนร่วม) |
||
แถว 5: | แถว 5: | ||
== ภาษา BF == | == ภาษา BF == | ||
− | โมเดลของคอมพิวเตอร์ของภาษานี้จะมีหน่วยความจำที่ในแต่ละช่องเก็บข้อมูลขนาด 8 บิต จำนวน 30,000 ช่อง เมื่อเริ่มทุกช่องมีค่าเป็น 0 และพอยน์เตอร์สำหรับชี้ตำแหน่ง คำสั่งในภาษานี้มีทั้นสิ้น 8 คำสั่ง | + | โมเดลของคอมพิวเตอร์ของภาษานี้จะมีหน่วยความจำที่ในแต่ละช่องเก็บข้อมูลขนาด 8 บิต จำนวน 30,000 ช่อง เมื่อเริ่มทุกช่องมีค่าเป็น 0 และพอยน์เตอร์สำหรับชี้ตำแหน่ง คำสั่งในภาษานี้มีทั้นสิ้น 8 คำสั่ง แต่ละคำสั่งเป็นตัวอักษรหนึ่งตัวดังตารางด้านล่าง: |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! style="text-align:center;"| | + | ! style="text-align:center;"|ตัวอักษร |
− | !align="left"| | + | !align="left"|ความหมาย |
|- | |- | ||
|style="text-align:center"|<code>></code> | |style="text-align:center"|<code>></code> | ||
− | || | + | ||เพิ่มค่าของพอยน์เตอร์ (ขยับไปยังช่องทางขวา) |
|- | |- | ||
|style="text-align:center"|<code><</code> | |style="text-align:center"|<code><</code> | ||
− | || | + | ||ลดค่าของพอยน์เตอร์ (ขยับไปทางซ้าย) |
|- | |- | ||
|style="text-align:center"|<code>+</code> | |style="text-align:center"|<code>+</code> | ||
− | || | + | ||เพิ่มค่าของข้อมูลที่พอยน์เตอร์ชี้อยู่ขึ้นหนึ่ง |
|- | |- | ||
|style="text-align:center"|<code>-</code> | |style="text-align:center"|<code>-</code> | ||
− | || | + | ||ลดค่าของข้อมูลที่พอยน์เตอร์ชี้อยู่ลงหนึ่ง |
|- | |- | ||
|style="text-align:center"|<code>.</code> | |style="text-align:center"|<code>.</code> | ||
− | || | + | ||พิมพ์ข้อมูลที่พอยน์เตอร์ชี้อยู่ (ดูรายละเอียดด้านล่าง) |
|- | |- | ||
|style="text-align:center"|<code>,</code> | |style="text-align:center"|<code>,</code> | ||
− | || | + | ||อ่านข้อมูลหนึ่งตัวอักษรแล้วเก็บที่ตำแหน่งที่พอยน์เตอร์ชี้อยู่ |
|- | |- | ||
|style="text-align:center"|<code>[</code> | |style="text-align:center"|<code>[</code> | ||
− | || | + | ||ถ้าข้อมูลที่พอยน์เตอร์ชี้อยู่มีค่าเป็น 0 ให้กระโดดไปยังคำสั่งที่อยู่ถัดจากวงเล็บ ] ที่จับคู่กับมัน |
|- | |- | ||
|style="text-align:center"|<code>]</code> | |style="text-align:center"|<code>]</code> | ||
− | || | + | ||(จับคู่กับวงเล็บเปิด)ถ้าข้อมูลที่พอยน์เตอร์ชี้อยู่มีค่าไม่เท่ากับ 0 ให้กระโดดกลับไปทำงานที่คำสั่งถัดจากวงเล็บ [ ที่จับคู่กับมัน |
|} | |} | ||
รุ่นแก้ไขเมื่อ 00:01, 17 พฤษภาคม 2556
ภาษา Brainfuck (ต่อไปจะเรียกสั้น ๆ ว่า BF) เป็นภาษาโปรแกรมประหลาดภาษาหนึ่ง ที่ออกแบบในปี 1993 โดย Urban Müller
ในข้อนี้เราจะเขียนโปรแกรมภาษา BF ให้ทำงานต่าง ๆ ก่อนอื่นมารู้จักภาษานี้กันก่อน
ภาษา BF
โมเดลของคอมพิวเตอร์ของภาษานี้จะมีหน่วยความจำที่ในแต่ละช่องเก็บข้อมูลขนาด 8 บิต จำนวน 30,000 ช่อง เมื่อเริ่มทุกช่องมีค่าเป็น 0 และพอยน์เตอร์สำหรับชี้ตำแหน่ง คำสั่งในภาษานี้มีทั้นสิ้น 8 คำสั่ง แต่ละคำสั่งเป็นตัวอักษรหนึ่งตัวดังตารางด้านล่าง:
ตัวอักษร | ความหมาย |
---|---|
>
|
เพิ่มค่าของพอยน์เตอร์ (ขยับไปยังช่องทางขวา) |
<
|
ลดค่าของพอยน์เตอร์ (ขยับไปทางซ้าย) |
+
|
เพิ่มค่าของข้อมูลที่พอยน์เตอร์ชี้อยู่ขึ้นหนึ่ง |
-
|
ลดค่าของข้อมูลที่พอยน์เตอร์ชี้อยู่ลงหนึ่ง |
.
|
พิมพ์ข้อมูลที่พอยน์เตอร์ชี้อยู่ (ดูรายละเอียดด้านล่าง) |
,
|
อ่านข้อมูลหนึ่งตัวอักษรแล้วเก็บที่ตำแหน่งที่พอยน์เตอร์ชี้อยู่ |
[
|
ถ้าข้อมูลที่พอยน์เตอร์ชี้อยู่มีค่าเป็น 0 ให้กระโดดไปยังคำสั่งที่อยู่ถัดจากวงเล็บ ] ที่จับคู่กับมัน |
]
|
(จับคู่กับวงเล็บเปิด)ถ้าข้อมูลที่พอยน์เตอร์ชี้อยู่มีค่าไม่เท่ากับ 0 ให้กระโดดกลับไปทำงานที่คำสั่งถัดจากวงเล็บ [ ที่จับคู่กับมัน |
การทำงานของภาษานี้ประกอบด้วย