วันจันทร์ที่ 21 กรกฎาคม พ.ศ. 2557

การเขียนโปรแกรมด้วย Casio fx-5800P ตอนที่ 3 - เงื่อนไขและคำสั่งกระโดดข้ามการทำงาน

เงื่อนไขและคำสั่งกระโดดข้ามเป็นสิ่งที่จำเป็นในการเขียนโปรแกรม โดยเฉพาะโปรแกรมที่มีขนาดใหญ่และมีความซับซ้อน คำสั่งเงื่อนไขและคำสั่งกระโดดข้ามจะช่วยแก้ปัญหาการทำงานแบบมีเงื่อนไข ลดการทำงานที่ซ้ำซ้อนทำให้โปรแกรมกระชับและเป็นระเบียบมากขึ้นด้วย




คำสั่งกระโดด Goto - Lbl
โดยปกติการทำงานของโปรแกรมจะกระทำตามคำสั่งแบบเรียงบรรทัด คือเริ่มจากบรรทัดที่ 1 ไป 2, 3, 4, ..... จนบรรทัดสุดท้าย แต่คำสั่ง Goto - Lbl คือคำสั่งที่ใช้ในการกระโดดข้ามการทำงานไปยังที่หมายปลายทางที่ได้กำหนดเอาไว้ก่อนแล้ว การกำหนดที่หมายทำได้โดยใช้คำสั่ง Lbl(ป้ายชื่อ Label) ตามด้วยตัวเลขจำนวนเต็ม 1-9 หรือตัวอักษร A-Z ซึ่งแต่ละที่หมายจะต้องมีชื่อที่ไม่ซ้ำกัน ส่วนคำสั่งกระโดดข้ามจะใช้คำสั่ง Goto ตามด้วยตัวเลขหรือตัวอักษรที่ได้ระบุไว้ที่หลังคำสั่ง Lbl สรุปง่ายๆ Lbl ก็เหมือนกับเลขที่บ้าน ส่วนคำสั่ง Goto ก็คือคำสั่งว่าจะไห้ไปบ้านเลขที่อะไร อาจจะอธิบายยาวไปซักหน่อยแต่คำสั่งไม่ได้มีอะไรซับซ้อน ลองมาดูตัวอย่างโดยแก้ไขโปรแกรมคำนวณพื้นที่สี่เหลี่ยมในบทความตอนที่แล้วให้เป็นดังนี้

// ตัวอย่างโปรแกรม
Lbl 0          // ระบุตำแหน่งที่ 0
"WIDTH"?W
"LENGTH"?L
WxLA
"AREA =":A
Goto 0          // กระโดดไปตำแหน่งที่ 0

จากตัวอย่างจะเห็นว่าเราได้เพิ่ม Lbl 0 เข้าไปในบรรทัดแรกเพื่อระบุป้ายชื่อตำแหน่งที่ 0 เพื่อให้คำสั่ง Goto รู้ว่าตำแหน่ง 0 เริ่มจากบรรทัดนี้ แล้วในบรรทัดสุดท้าย Goto 0 เพื่อให้กระโดดหรือย้อนกลับไปทำงานในตำแหน่ง 0 อีก โปรแกรมนี้จึงเป็นการคำนวณพื้นที่สี่เหลี่ยมแบบไม่รู้จบจนกว่าจะมีคำสั่งปิดการทำงานโปรแกรม(กดปุ่ม AC)


คำสั่งเงื่อนไข Condition
ก่อนจะรู้จักคำสั่งเงื่อนไข เราจะต้องทำความรู้จักกับการเปรียบเทียบซะก่อน การเปรียบเทียบคือเทียบค่าอย่างน้อยสองค่าว่าเป็นไปตามเงื่อนไขหรือไม่โดยจะใช้ตัวดำเนินการเปรียบเทียบคั่นระหว่างค่าทั้งสองค่านั้น

ตัวดำเนินการเปรียบเทียบ(Relational Operators)
ตัวดำเนินการเปรียบเทียบ คือสัญลักษณ์ที่ใช้เปรียบเทียบค่าสองค่าว่าเป็นจริงตามเงื่อนไขหรือไม่ หลังจากที่มีการเปรียบเทียบโปรแกรมจะคืนค่าเป็นค่า จริง(true) หรือ เท็จ(false) เท่านั้น ซึ่งตัวเปรียบเทียบมีดังนี้

    =    เท่ากับ เช่น A=B (ค่าของ A เท่ากับค่าของ B ใช่หรือไม่)
         ไม่เท่ากับ เช่น AB (ค่าของ A ไม่เท่ากับค่าของ B ใช่หรือไม่)
    >    มากกว่า เช่น A>B (ค่าของ A มากกว่าค่าของ B ใช่หรือไม่) 
         มากกว่าหรือเท่ากับ เช่น AB (ค่าของ A มากกว่าหรือเท่ากับค่าของ B ใช่หรือไม่)
    <    น้อยกว่า เช่น A<B (ค่าของ A น้อยกว่าค่าของ B ใช่หรือไม่)
        น้อยกว่าหรือเท่ากับ  เช่น AB (ค่าของ A น้อยกว่าหรือเท่ากับค่าของ B ใช่หรือไม่)

ตัวดำเนินการเชื่อมเงื่อนไขหรือตรรกะ
ใช้ในการเชื่อมเงื่อนไขตั้งแต่สองเงื่อนไขขึ้นไปเพื่อแก้ปัญหาการเขียนโปรแกรมที่มีเงื่อนไขซับซ้อนยิ่งขึ้น มีตัวเชื่อมที่ใช้อยู่ด้วยกัน 3 ตัว คือ And, Or และ Not

    And    และ ใช้เชื่อมการเปรียบเทียบเงื่อนไขตั้งแต่สองเงื่อนไขขึ้นไปและจะมีค่าเป็นจริงก็ต่อเมื่อเขื่อนไขทั้งหมดที่ถูกเชื่อมเป็นจริงทุกเงื่อนไข
    Or      หรือ ใช้เชื่อมเงื่อนไขเช่นเดียวกันกับ And แต่จะมีค่าเป็นเท็จก็ต่อเมื่อเขื่อนไขทั้งหมดที่ถูกเชื่อมเป็นเท็จทุกเงื่อนไข
    Not     นิเสธ หรือคำสั่งกลับค่า จริงให้เป็นเท็จ เท็จให้เป็นจริง




ตัวอย่างการใช้คำสั่ง ให้ X = 5, Y = 9 และ Z = 14

X<7 And Y>Z    เงื่อนไขแรก X<7 เป็นจริงเนื่องจาก X=5, เงื่อนไขที่สอง Y>Z เป็นเท็จเนื่องจาก 9 ไม่ได้มากกว่า 14 และเมื่อเชื่อมสองเงื่อนไขด้วย And คำสั่งเปรียบเทียบชุดนี้จึงเป็นเท็จเนื่องจาก จริง(A) และ(And) เท็จ(B) เป็นเท็จตามตารางด้านบน

Y>X Or Y>Z      เงื่อนไขแรก Y>X เป็นจริงเนื่องจาก 9>5, เงื่อนไขที่สอง Y>Z เป็นเท็จ และเมื่อเชื่อมสองเงื่อนไขด้วย Or คำสั่งเปรียบเทียบชุดนี้จึงเป็นจริงเนื่องจาก จริง(A) หรือ(Or) เท็จ(B) เป็นจริงตามตารางด้านบน

Not(Y>X Or Y>Z)    เงื่อนไขนี้เป็นเท็จ เนื่องจากเงื่อนไขย่อยที่อยู่ในวงเล็บมีค่าเป็นจริง(A=true) แต่เมื่อถูกกระทำด้วยเครื่องหมายนิเสธ(Not กลับค่าของ A) เงื่อนไขนี้จึงเป็นเท็จ


เมื่อได้ทำความรู้จักกับตัวดำเนินการเปรียบเทียบและตัวเชื่อมคำสั่งเปรียบเทียบแล้วทีนี้เราก็จะมาดูคำสั่งเงื่อนไขที่เราจะใช้กัน คำสั่งเงื่อนไขมีหลายคำสั่งให้เลือกใช้ แต่ในบทความนี้จะขออธิบายเพียงคำสั่งเงื่อนไขเดียวคือคำสั่ง If - Then (- Else) - IfEnd ซึ่งส่วนตัวผู้เขียนคิดว่าจำคำสั่งเงื่อนไขนี้คำสั่งเดียวก็สามารถเขียนครอบคลุมหรือใช้แทนได้ทุกคำสั่งเงื่อนไขแล้ว และยังง่ายต่อการจำอีกด้วย

คำสั่ง If - Then (- Else) - IfEnd
มีรูปแบบการใช้คำสั่งอยู่สองรูปแบบ ดังนี้

รูปแบบแรก

                If เงื่อนไข :Then คำสั่ง1,... :IfEnd

คำสั่งขึ้นต้นด้วย If(ถ้า) ตามด้วยเงื่อนไขที่ระบุ 
  • ถ้าเป็นจริง จะทำตาม คำสั่ง1 ที่อยู่หลังคำสั่ง Then(แล้ว) ที่หลัง Then อาจมีหลายคำสั่งเขียนต่อๆ กันได้โดยใช้เครื่องหมาย : คั่น เมื่อทำตามคำสั่งหลัง Then หมดแล้วก็จะกระโดดออกไปทำตามคำสั่งหลังคำสั่ง IfEnd ต่อไป(ถ้ามี) สำหรับคำสั่ง IfEnd เป็นเพียงคำสั่งที่ระบุว่าสิ้นสุดคำสั่ง If ที่ตรงนี้
  • ถ้าเป็นเท็จ โปรแกรมก็จะกระโดดข้ามไปทำที่หลังคำสั่ง IfEnd ทันที(ถ้ามี) โดยไม่สนใจคำสั่งหลัง Then

// ตัวอย่างโปรแกรม
Lbl Z
?A
7B
If A=B:Then "A=B=7":IfEnd
"AB"
Goto Z

// หน้าจอขณะรันโปรแกรม
A?          // ป้อนค่า 2(หรือค่าอื่นที่ไม่ใช่ 7)
AB
A?          // ป้อนค่า 7
A=B=7
AB
A?

จากตัวอย่างจะเห็นว่าถ้าเงื่อนไขเป็นจริง(A=B) โปรแกรมก็จะทำตามคำสั่งหลัง Then จนจบแล้วจึงออกไปทำตามคำสั่งหลัง IfEnd แต่ถ้าเงื่อนไขเป็นเท็จ โปรแกรมก็จะกระโดดไปทำงานหลังคำสั่ง IfEnd ทันที


รูปแบบที่สอง

                If เงื่อนไข :Then คำสั่ง1,... :Else คำสั่ง2,... :IfEnd

คำสั่งขึ้นต้นด้วย If(ถ้า) ตามด้วยเงื่อนไขที่ระบุ 
  • ถ้าเป็นจริง จะทำตาม คำสั่ง1 ที่อยู่หลังคำสั่ง Then เมื่อทำตามคำสั่งหลัง Then หมดแล้วก็จะกระโดดออกไปทำตามคำสั่งหลังคำสั่ง IfEnd ต่อไป(ถ้ามี)
  • ถ้าเป็นเท็จ จะทำตาม คำสั่ง2 ที่อยู่หลังคำสั่ง Else เมื่อทำตามคำสั่งหลัง Else หมดแล้วก็จะกระโดดออกไปทำตามคำสั่งหลังคำสั่ง IfEnd ต่อไป(ถ้ามี)

// ตัวอย่างโปรแกรม
Lbl Z
?A
7B
If A=B:Then "A=B=7":Else "7AB":IfEnd
Goto Z

// หน้าจอขณะรันโปรแกรม
A?          // ป้อนค่าอื่นๆ ที่ไม่ใช่ 7
7AB
A?          // ป้อนค่า 7
A=B=7
A?

จากตัวอย่างจะเห็นว่าถ้าเงื่อนไขเป็นจริง(A=B) โปรแกรมก็จะทำตามคำสั่งหลัง Then จนจบแล้วจึงออกไปทำตามคำสั่งหลัง IfEnd แต่ถ้าเงื่อนไขเป็นเท็จ โปรแกรมก็จะข้ามไปทำงานหลังคำสั่ง Else จนจบแล้วจึงไปทำงานหลังคำสั่ง IfEnd


หลังจากที่ได้เรียนรู้คำสั่งเงื่อนไขและคำสั่งกระโดดข้ามการทำงานแล้วต่อไปเราลองมาสร้างตัวอย่างง่ายๆ เพื่อดูวิธีการทำงานของคำสั่งกัน
จากตัวอย่างในบทความตอนที่แล้วเราได้สร้างโปรแกรม "RECT AREA" เพื่อคำนวณพื้นที่สี่เหลี่ยม ในตอนนี้เราจะแก้ไขโปรแกรมเดิมให้สามารถคำนวณพื้นที่สามเหลี่ยมได้ด้วยในโปรแกรมเดียวกัน

ก่อนอื่นเรามาทำการแก้ไขชื่อโปรแกรมเพื่อให้สอดคล้องกับโปรแกรมใหม่ของเรากันโดยเราจะเปลี่ยนชื่อโปรแกรมจาก "RECT AREA" เป็น "AREA" คำเดียวเนื่องจากโปรแกรมไม่ได้คำนวณพื้นที่สี่เหลี่ยม(Rectangle)อย่างเดียวแล้ว การแก้ไขชื่อโปรแกรมทำดังนี้

การเปลี่ยนชื่อโปรแกรม
MODE --> 5 --> 3 --> เลื่อนลูกศรขึ้นลงเพื่อเลือกโปรแกรมที่ต้องการ --> (ปุ่ม)FUNCTION --> 2:Rename --> ทำการแก้ไขชื่อตามต้องการ --> EXE

หลังจากแก้ไขชื่อโปรแกรมเสร็จแล้วให้แก้ไขโปรแกรมดังนี้


// ตัวอย่างโปรแกรม


หมายเหตุ : ขออนุณาตเขียนคำสั่ง Lbl เยื้องมาข้างหน้าเล็กน้อยเพื่อให้โค้ดโปรแกรมอ่านง่ายขึ้นและต่อไปผู้เขียนจะเขียนแบบนี้ในทุกโปรแกรม


// หน้าจอขณะรันโปรแกรม

// หน้าจอเริ่มต้นเพื่อเลือกการคำนวณ
SELECT :
[1] RECT
[2] TRI?                        // ป้อน 1 เพื่อคำนวณพื้นที่สี่เหลี่ยม

// การทำงานในส่วนคำนวณพื้นที่สี่เหลี่ยม
WIDTH?                        // ป้อน 54.6 กดปุ่ม EXE
LENGTH?                        // ป้อน 35.2 กดปุ่ม EXE
AREA = 1921.92                        // แสดงผลลัพธ์ กดปุ่ม EXE

// กลับมาหน้าจอเริ่มต้นเพื่อเลือกการคำนวณ
SELECT :
[1] RECT
[2] TRI?                        // ป้อน 2 เพื่อคำนวณพื้นที่สามเหลี่ยม

// การทำงานในส่วนคำนวณพื้นที่สี่เหลี่ยม
SIDE A?                        // ป้อน 30 กดปุ่ม EXE
SIDE B?                        // ป้อน 40 กดปุ่ม EXE
SIDE C?                        // ป้อน 50 กดปุ่ม EXE
AREA = 600                        // แสดงผลลัพธ์ กดปุ่ม EXE

// กลับมาหน้าจอเริ่มต้นเพื่อเลือกการคำนวณ
SELECT :
[1] RECT
[2] TRI? 


ลองทำความเข้าใจกับตัวอย่างดูนะครับ ค่อยๆ ดูไปทีละบรรทัดและเมื่อทำความเข้าใจกับโปรแกรมนี้แล้วผู้เขียนเชื่อว่าผู้อ่านจะมีไอเดียในการเขียนโปรแกรมอื่นๆ ต่อไปได้ไม่ยาก หากใครมีข้อสงสัยเกี่ยวกับการเขียนโปรแกรม fx-5800P สามารถสอบถามเข้ามาได้ครับ ผู้เขียนยินดีตอบทุกคำถามเท่าที่จะตอบได้หรือมีข้อเสนอแนะอื่นๆ ก็ยินดีครับ

21 ความคิดเห็น:

  1. ความคิดเห็นนี้ถูกผู้เขียนลบ

    ตอบลบ
  2. คำสั่ง cls ใช้เพื่ออะไรครับ และการใช้?

    ตอบลบ
    คำตอบ
    1. cls = clear screen

      เป็นคำสั่งลบ(ล้าง)ข้อความทั้งหมดบนหน้าจอครับ

      ขอโทษที่ตอบช้าครับ

      ลบ
  3. สมมุติว่าผมจะเขียน Ax+5=26 จะเขียนยังไงครับ

    ตอบลบ
    คำตอบ
    1. รายละเอียดโจทย์ค่อนข้างน้อย ผมไม่ทราบว่าคุณต้องการทราบค่าใด

      แต่เดาว่าคุณคงต้องการหาค่า x จากรูปสมการ ax+b=c โดยทราบค่า a, b, c ถ้าเป็นตามนี้ก็เขียนให้โปรแกรมรับค่า a, b, c แล้วหาค่า x จาก x=(c-b)/a ซึ่งเขียนโปรแกรมได้ประมาณนี้ครับ

      Cls↵
      “AX+B=C” ↵
      “A”?→A↵
      “B”?→B↵
      “C”?→C↵
      (C-B)÷A→X↵
      “X=”:X◢

      ลบ
    2. ความคิดเห็นนี้ถูกผู้เขียนลบ

      ลบ
    3. ผมเจอแล้วครับ แล้วถ้าผมต้องการ 4 เงื่อนไขขึ้นไปล่ะครับ เช่น
      [1] Find I
      [2] Find R
      [3] Find E
      [4] From Watt To Amp

      ลบ
    4. สมมุติว่าเราใช้สูตร

      E=IxR และ Amp=Watt/Volt

      วิธีที่ง่ายในการเขียนโปรแกรมที่มีทางเลือกมากๆ คือแบ่งการทำงานแยกออกเป็นส่วนๆ ชุดคำสั่ง(Routine) เช่นในโปรแกรมนี้จะขอแยกการทำงานออกเป็น 5 ส่วนคือ

      0. เมนู
      1. คำนวณ I
      2. คำนวณ R
      3. คำนวณ E
      4. แปลง Watt เป็น Amp

      เริ่มต้นโปรแกรมที่ "เมนู" เมื่อเลือกเมนูแล้วโปรแกรมจะตัดสินใจว่าจะไปทำงานที่ส่วนไหนจากเมนูที่เลือก เมื่อทำงานในส่วนนั้นๆ เสร็จก็จะกลับมาทำงานที่ "เมนู" อีกครั้ง

      หน้าตาโปรแกรมก็จะประมาณนี้ครับ

      Lbl 0↵
      Cls↵
      “[1] I [2] R”↵
      “[3] E [4] W→A”↵
      “FIND :”?→F↵
      If F=1:Then Goto 1:IfEnd↵
      If F=2:Then Goto 2:IfEnd↵
      If F=3:Then Goto 3:IfEnd↵
      If F=4:Then Goto 4:IfEnd↵

      Lbl 1↵
      Cls↵
      “I=E÷R”↵
      “E”?→E↵
      “R”?→R↵
      “I=”:E÷R◢
      Goto 0↵

      Lbl 2↵
      Cls↵
      “R=E÷I”↵
      “E”?→E↵
      “I”?→I↵
      “R=”:E÷I◢
      Goto 0↵

      Lbl 3↵
      Cls↵
      “E=IxR”↵
      “I”?→I↵
      “R”?→R↵
      “E=”:IR◢
      Goto 0↵

      Lbl 4↵
      Cls↵
      “AMP=WATT÷VOLT”↵
      “WATT”?→W↵
      “VOLT”?→V↵
      “AMP=”:W÷V◢
      Goto 0↵

      ลบ
  4. โอเคครับผม เข้าใจล้ะ ขอบคุณมากๆครับ เดี๋ยวจะไปประยุกต์ใช้เองครับ

    ตอบลบ
  5. ทุกบทความของอาจาร์(ขอเรียกว่าอาจาร เพราะสอนผมได้เยอะมาก)ผมจะอ่านให้หมดเลยครับ มีประโยชน์มากจริงๆ

    ตอบลบ
  6. ผมทดลองเขียนสูตรดูครับ AREA NE หาพื้นที่จากค่า NE
    Lbl 0↵
    "N1="?→A↵
    "E1="?→B↵
    "N2="?→C↵
    "E2="?→D↵
    "N3="?→E↵
    "E3="?→F↵
    "N4="?→G↵
    "E4="?→H↵
    (((AxH)+(CxB)+(ExD)+(GxF))-((BxG)+(DxA)+(FxC)+(HxE)))x0.5→I↵
    “AREA=”:I◢
    ขอคำแนะนำครับ
    แต่ผมมีข้อสงสัยครับ
    1.เวลากลับไปเริ่มโปรแกรมใหม่ มันจะต้องป้อนค่าใหม่ตลอด
    2.สูตรนี้ใช้กับค่า NE 4 จุด ถ้ามีมากกว่า 4 จุด หรือไม่รู้ว่ามีกี่จุด จะทำได้ยังไง
    ถ้าทราบว่ามีกี่จุด จะใช้เงื่อนไข If แล้ว goto Lbl 1-9(จำนวนจุด) แล้วไปใส่ค่าตัวแปรเพิ่มใช่หรือไม่

    ตอบลบ
    คำตอบ
    1. # ตอบข้อ 1 #

      ถ้าไม่ต้องการป้อนใหม่ทุกครั้งให้เอาเครื่องหมาย "→" ในบรรทัดที่มี input ออกครับ เช่น

      "N1="?→A↵ แก้เป็น "N1="?A↵

      -----------------------------------------

      # ตอบข้อ 2 #

      โปรแกรมแบบที่คุณเขียนก็ไม่ถือว่าผิดอะไร คำนวณได้เหมือนกัน เท่าที่เห็นจะมีผิดอยู่นิดหน่อยคือผลต่างคูณขึ้นกับคูณลงอาจจะติดลบทำให้พื้นที่ออกมาเป็นติดลบ แก้ไขโดยใช้คำสั่ง Abs(Absolute:ค่าสัมบูรณ์) คร่อมลงไปอีกที แต่ถ้าคุณไม่มีปัญหากับเครื่องหมายติดลบของพื้นที่ก็ไม่น่าจะเป็นอะไร

      แต่ถ้าต้องการเขียนแบบไม่รู้จำนวนจุดที่แน่นอนก็จะเป็นปัญหาอย่างที่คุณสงสัยนั่นแหละ คุณลองเอาตัวโปรแกรมนี้ไปศึกษาดูก่อนครับ โปรแกรมซับซ้อนนิดหน่อย แต่น่าจะทำความเข้าใจได้ไม่ยาก โปรแกรมทำงานโดยให้เราป้อนค่าพิกัดไปเรื่อยๆ โดยโปรแกรมจะตัดสินใจว่าป้อนครบทุกจุดจากการที่คุณป้อนพิกัดวนเป็นวงจนกลับมาป้อนพิกัดตัวแรกอีกครั้ง เช่นถ้ามีห้าจุดก็ให้ป้อนจุดที่ 1, 2, 3, 4, 5, 1 เมื่อโปรแกรมพบว่าจุดล่าสุดที่ป้อนเป็นจุดเดียวกันกับจุดแรกก็จะทำการคำนวณพื้นที่

      ตัวแปรที่ใช้มีดังนี้

      A, B : เก็บพิกัด N, E ของจุดแรก เพื่อใช้ตรวจสอบการจบการ input (ไม่ถูกใช้ในการคำนวณ)

      Q, R : เก็บพิกัดหมุดก่อนหน้า
      S, T : เก็บพิกัดหมุดถัดมา
      (ค่า Q, R, S, T นี้จะใช้ในการคำนวณ)

      I : เก็บค่าผลรวมคูณขึ้น
      J : เก็บค่าผลรวมคูณลง

      *** ให้สังเกตุการขยับของตัวแปร Q, R และ S, T ให้ดี หลังจากป้อนจุดที่ 1(Q, R) และจุดที่ 2(S, T) โปรแกรมก็จะเริ่มรวมค่าคูณขึ้น(I) คูณลง(J) แล้วขยับค่า Q กับ R มาเก็บค่าพิกัดจุดที่สองแทน S กับ T หลังจากนั้นก็กลับไปป้อนค่าจุดที่ 3(S, T) ตัวแปรสี่ตัวนี้จะขยับยังงี้ไปเรื่อยๆ จนจบการ input ***

      ------------------------
      Area by Coordinates
      ------------------------

      Lbl 0↵
      0→I:0→J↵
      Cls:"N"?A:"E"?B↵
      A→Q:B→R↵

      Lbl 1↵
      Cls:"N"?S:"E"?T↵
      I+SR→I:J+QT→J↵
      If S=A And T=B:Then Goto 2:IfEnd↵
      S→Q:T→R:Goto 1↵

      Lbl 2↵
      Cls:"AREA=":Abs(I-J)÷2◢
      Goto 0↵

      ลบ
    2. ขอบคุณมากๆครับ
      ข้อ 1. ผมเข้าใจแล้วครับลองย้อนไปอ่านบทความที่ 2 อีกที(ข้ามขั้นตอนไปหน่อย)
      ส่วนข้อ 2. ผมไม่ได้คิดถึงค่าติดลบเลยครับ ขอบคุณที่แนะนำ สูตรและที่มา อธิบายรายละเอียดชัดเจนมากครับ ขอทำความเข้าใจก่อนครับ

      ลบ
  7. สูตรที่ 1 ป้อน ค่า AกับB A+B=C
    สูตรที่ 2 ป้อน ค่า DกับE DxE=F
    สูตรที่ 3 ผมสามารถ LINK ค่าของ F กับ C มาใส่ในสูตรนี้ F+C=Z ได้หรือไม่ครับ

    ตอบลบ
    คำตอบ
    1. ทุกโปรแกรมที่เขียนบนเครื่อง 5800(หรือเครื่องรุ่นอื่นๆ) ใช้ตัวแปรร่วมกันหรือชุดเดียวกันครับ ไม่ว่าจะกำหนดค่าที่โปรแกรมไหน

      จากโจทย์ที่คุณถามมานั้นสามารถใช้ตัวแปรร่วมกันได้ครับตราบใดที่ยังไม่มีการแก้ไขค่าตัวแปร F กับ C ซะก่อน

      ลบ
    2. ขอบคุณครับ จะเอาไปประยุกต์ใช้ต่อครับ

      ลบ
  8. อยากได้โปรเเกรม ครอสเวกเตอร์ครับ ต้องเขียนยังไง

    ตอบลบ
  9. ไม่ระบุชื่อ7 เมษายน 2562 เวลา 21:50

    คำสั่งifสามารถใช้ซ่อนกันได้ไหมครับ

    ตอบลบ
    คำตอบ
    1. สามารถใช้คำสั่ง if ซ้อนกันได้เหมือนภาษาคอมพิวเตอร์ทั่วไปครับ

      ลบ