มารู้จัก Flow Chart กันดีกว่า

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

มาเกรินนำกันก่อนครับ

[b]แนวคิดการเขียนโปรแกรม[/b]
"การเขียนโปรแกรม ทุกภาษานั้นเหมือนกัน" สิ่งที่แตกต่างกัน ของแต่ละภาษาคือ syntax
แต่สิ่งที่เหมือนกันของทุกภาษาคือ การใช้ประสบการณ์จากภาษาหนึ่ง ไปใช้ในอีกภาษาหนึ่งได้ ด้วยการซึมซับ เรื่องของ Structure Programming จนเข้าใจ เพื่อควบคุมในสิ่งที่คล้าย ๆ กันคือ input, process และ output

ซึ่งหมายความว่า ถ้าท่านเขียนโปรแกรมอะไร ในภาษาหนึ่งได้แล้ว การเขียนโปรแกรมแบบนั้น ในภาษาอื่นย่อมไม่ใช่เรื่องยากอีกต่อไป เพียงแต่ต้องศึกษาถึง syntax หรือ รูปแบบการเขียนของภาษาใหม่นั้นเพิ่มเติม แล้วนำประสบการณ์ที่เคยเขียน ไปสั่งให้ภาษาใหม่ทำงานตามต้องการ

ควรศึกษาภาษาที่ไม่มีตัวช่วยมาก เพื่อให้เข้าใจในหลักการ และขั้นตอนการทำงาน อย่างละเอียดชัดเจน จากการทำงานของตัวแปรภาษาที่มีตัวช่วยน้อย นำไปใช้ได้โดยไม่ยุ่งยาก

[b]Flowchart[/b] แปลเป็นไทยก็ "ผังงาน"
[b]ความหมายของ Flowchart[/b]
    Flowchart คือ รูปภาพ (Image) หรือสัญลักษณ์(Symbol) ที่ใช้เขียนแทนขั้นตอน คำอธิบาย ข้อความ หรือคำพูด ที่ใช้ในอัลกอริทึม (Algorithm) เพราะการนำเสนอขั้นตอนของงานให้เข้าใจตรงกัน ระหว่างผู้เกี่ยวข้อง ด้วยคำพูด หรือข้อความทำได้ยากกว่า

[b]ประโยชน์ของ Flowchart[/b]
[list type=decimal]
[li]ทำให้เข้าใจ และแยกแยะปัญหาได้ง่าย (Problem Define)[/li]
[li]แสดงลำดับการทำงาน (Step Flowing)[/li]
[li]หาข้อผิดพลาดได้ง่าย (Easy to Debug)[/li]
[li]ทำความเข้าใจโปรแกรมได้ง่าย (Easy to Read)[/li]
[li]ไม่ขึ้นกับภาษาใดภาษาหนึ่ง (Flexible Language)[/li]
[/list]

[b]ข้อจำกัดของ Flowchart[/b]
โปรแกรมเมอร์บางคนไม่นิยมเขียนผังงานก่อนการเขียนโปรแกรม เพราะเห็นว่าเสียเวลา นอกจากนี้แล้ว ยังมีข้อจำกัดอื่น ๆ อีก คือ
[list type=decimal]
[li]ผังงานเป็นการสื่อความหมายระหว่างบุคคลกับบุคคลมากกว่าที่สื่อความหมาย ระหว่างบุคคลกับเครื่อง เพราะผังงานไม่ขึ้นกับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง ทำให้เครื่องไม่สามารถรับและเข้าใจได้ว่าในผังงานนั้นต้องการให้ทำอะไร[/li]
[li]ในบางครั้ง เมื่อพิจารณาจากผังงาน จะไม่สามารถทราบได้ว่า ขั้นตอนการทำงานใดสำคัญกว่ากัน เพราะทุก ๆ ขั้นตอนจะใช้รูปภาพหรือสัญลักษณ์ในลักษณะเดียวกัน[/li]
[li]การเขียนผังงานเป็นการสิ้นเปลือง เพราะจะต้องใช้กระดาษและอุปกรณ์อื่น ๆ เพื่อประกอบการเขียนภาพ ซึ่งไม่สามารถเขียนด้วยมืออย่างเดียวได้ และในบางครั้ง การเขียนผังงานอาจจะต้องใช้กระดาษมากกว่า 1 แผ่น หรือ 1 หน้า ซึ่งถ้าเป็นข้อความอธิบายอาจะใช้เพียง 2-3 บรรทัดเท่านั้น[/li]
[/list]

[b]Flow Chart[/b] แบ่งได้ 2 ประเภท
   1. ผังงานระบบ (System Flowchart)
คือ ผังงานที่แสดงขั้นตอนการทำงานในระบบอย่างกว้าง ๆ แต่ไม่เจาะลงในระบบงานย่อย
   2. ผังงานโปรแกรม (Program Flowchart)
คือ ผังงานที่แสดงถึงขั้นตอนในการทำงานของโปรแกรม ตั้งแต่รับข้อมูล คำนวณ จนถึงแสดงผลลัพธ์

[b]การโปรแกรมแบบมีโครงสร้าง หรือ การโปรแกรมโครงสร้าง ประกอบด้วยอะไรบ้าง[/b]
   ทุกภาษาต้องมีหลักการ 3 อย่างนี้คือ
[list]
[li]การทำงานแบบตามลำดับ(Sequence)[/li]
[li]การเลือกกระทำตามเงื่อนไข(Decision)[/li]
[li]การทำซ้ำ(Loop)[/li]
[/list]

ตำราหลายเล่มจะขยายความออกไปว่า Decision แยกเป็น If และ Case ส่วน Loop แยกเป็น While และ Until ถ้าแยกให้ละเอียดก็อาจได้ถึง 5 หลักการ แต่ในที่นี้ขอนำเสนอไว้เพียง 3 หลักการ

   [b]การทำงานแบบตามลำดับ(Sequence)[/b] คือ การเขียนให้ทำงานจากบนลงล่าง เขียนคำสั่งเป็นบรรทัด และทำทีละบรรทัดจากบรรทัดบนสุดลงไปจนถึงบรรทัดล่างสุด สมมติให้มีการทำงาน 3 กระบวนการคือ อ่านข้อมูล คำนวณ และพิมพ์ จะเขียนเป็นผังงาน(Flowchart)
[img]http://forum.ubuntuclub.com/forum/action,dlattach/topic,13564.0/attach,5131/image.html[/img]

   [b]การเลือกกระทำตามเงื่อนไข(Decision)[/b] คือ การเขียนโปรแกรมเพื่อนำค่าไปเลือกกระทำ โดยปกติจะมีเหตุการณ์ให้ทำ 2 กระบวนการ คือเงื่อนไขเป็นจริงจะกระทำกระบวนการหนึ่ง และเป็นเท็จจะกระทำอีกกระบวนการหนึ่ง แต่ถ้าซับซ้อนมากขึ้น จะต้องใช้เงื่อนไขหลายชั้น เช่นการตัดเกรดนักศึกษา เป็นต้น ตัวอย่างผังงานนี้ จะแสดงผลการเลือกอย่างง่าย เพื่อกระทำกระบวนการเพียงกระบวนการเดียว
[img]http://forum.ubuntuclub.com/forum/action,dlattach/topic,13564.0/attach,5134/image.html[/img]

   [b]การทำซ้ำ(Repeation or Loop)[/b] คือ การทำกระบวนการหนึ่งหลายครั้ง โดยมีเงื่อนไขในการควบคุม หมายถึงการทำซ้ำเป็นหลักการที่ทำความเข้าใจได้ยากกว่า 2 รูปแบบแรก เพราะการเขียนโปรแกรมแต่ละภาษา จะไม่แสดงภาพอย่างชัดเจนเหมือนการเขียนผังงาน(Flowchart) ผู้เขียนโปรแกรมต้องจินตนาการ ถึงรูปแบบการทำงาน และใช้คำสั่งควบคุมด้วยตนเอง ตัวอย่างผังงานที่นำมาแสดงนี้เป็นการแสดงคำสั่งทำซ้ำ(do while) ซึ่งหมายถึงการทำซ้ำในขณะที่เป็นจริง และเลิกการทำซ้ำเมื่อเงื่อนไขเป็นเท็จ
[img]http://forum.ubuntuclub.com/forum/action,dlattach/topic,13564.0/attach,5136/image.html[/img]  

คราวหลังมาต่อด้วยเรื่อง สัญลักษณ์ที่เป็นมาตรฐาน ซึ่งจะบ่งบอกถึงหน้าที่ในแต่ละช่วงการทำงาน ไปหาข้อมูลอื่นๆ ประกอบก่อน
เนื้อหาบางส่วนเอามาจาก [url=http://www.thaiall.com/flowchart/]www.thaiall.com/flowchart/[/url], [url=http://en.wikipedia.org/wiki/Flowchart]http://en.wikipedia.org/wiki/Flowchart[/url] และไฟร์ PDF จากพี่กูเกิ้ล
สมาชิก
ผมชอบเขียน UML มากกว่าอะครับ
มีแฟนไม่ได้เพียงเพราะต้องอยู่ตลอดเวลา แต่มีเพื่อทำให้รู้ว่ายังมีอีกคนที่รักเราอยู่
สมาชิก
[b]สัญลักษณและความหมายของFlow Chart[/b]
        กอนที่จะมีการเขียน Flow Chart หรือผังลําดับงาน เราตองมาศึกษา สัญลักษณ และความหมายกอนเปนอันดับแรก
เพราะอยาลืมวา Flow Chart ที่ดีนั้นตองอานงาย เปนสากล ไมตองเขียนอธิบายรายละเอียดมาก ใครก็สามารถอานไดเขาใจ
ดังนั้น ในการเขียนเราตองยึดนิยาม หรือความหมายของสัญลักษณอยางเครงครัด

[img]http://forum.ubuntuclub.com/forum/action,dlattach/topic,13564.0/attach,5144.html[/img]
(terminal)
เริ่มตนและลงทาย แทนจุดเริ่มตนและลงทายของผังงาน

[img]http://forum.ubuntuclub.com/forum/action,dlattach/topic,13564.0/attach,5145.html[/img]
(connector)
จุดเชื่อม แทนจุดเชื่อมตอของผังงานเมื่อใชสัญลักษณเพื่อใหดูงาย

[img]http://forum.ubuntuclub.com/forum/action,dlattach/topic,13564.0/attach,5146.html[/img]
(off page connector)
จุดเชื่อมตอหนากระดาษ แทนจุดเชื่อมตอของผังงานที่อยูคนละหนากระดาษ

[img]http://forum.ubuntuclub.com/forum/action,dlattach/topic,13564.0/attach,5147.html[/img]
(decision)
การตัดสินใจ  แทนจุดที่ตองเลือกปฏิบัติอยางใดอยางหนึ่ง

[img]http://forum.ubuntuclub.com/forum/action,dlattach/topic,13564.0/attach,5148.html[/img]
(process)
การปฏิบัติงานแทนจุดที่มีการปฏิบัติงานอยางใดอยางหนึ่ง




สมาชิก
[img]http://forum.ubuntuclub.com/forum/action,dlattach/topic,13564.0/attach,5149/image.html[/img]
(Input / Output)
ข้อมูล นำเข้า/ส่งออก การรับคาขอมูลหรืออานขอมูลเขามาโดยไมระบุอุปกรณรับ
ขอมูล(Input Device) โดยอาจรับคาขอมูลมาจากคีย์บอรดหรือจากแฟมขอมูลก็ได

[img]http://forum.ubuntuclub.com/forum/action,dlattach/topic,13564.0/attach,5150/image.html[/img]
(Flowline)
ทิศทาง แทนทิศทางของขั้นตอนการดําเนินงานซึ่งจะปฏิบัติตอเนื่องกันตามหัวลูกศรชี้

หลักๆก็มีเท่านี้ละครับ ใครเจอสัญลักษณ์แปลกๆ เอามาโชว์ได้นะครับ วันหลังมาดูตัวอย่างกัน
ผู้ดูแล
อึม...เป็นแนวทางที่ดีครับ +1
ผมคนนึงล่ะที่ไม่ชอบเขียนโฟลชาร์ต(ความมักง่าย) เว้นแต่ต้องทำงานร่วมกับคนอื่นถึงได้เขียน สัญลักษ์ก็ผิดๆถูกๆ เอาแค่พอเข้าใจกันในกลุ่ม 8)
ปัญหาของคุณมีประโยชน์ต่อคนรุ่นหลัง ถ้าแก้ปัญหาได้สำเร็จแล้ว กรุณากลับมาแจ้งให้ทราบด้วย
ว่าแก้ปัญหาด้วยวิธีใดแล้วได้ผล เพื่อประโยชน์กับคนรุ่นหลัง และไว้อ้างอิงสำหรับตัวคุณเองด้วย ขอบคุณครับ
-------------------------------------
ความรู้เพียงเล็กน้อย อาจช่วยคนเป็นร้อยแก้ปัญหา
เพราะฉะนั้น อย่ากลัวที่จะบอกสิ่งที่คุณรู้กับคนอื่น แม้จะเป็นเรื่องพื้นๆ ก็ตาม
-------------------------------------
การแบ่งปันทำให้สังคมน่าอยู่
-------------------------------------
ผู้ดูแล
+1 เช่นกันครับ ดีมากๆเลย เดี๋ยววันหลัง การเรียนการสอนของผมจะได้ทำ  Flow Chart  ด้วย เพราะดู Code หรือ อธิบายเป็นตัวหนังสือเพียงอย่างเดียว มันดูยากครับ ถ้า Code ยาวๆ + อธิบายวนไปวนมา จะพากันออกทะเลครับ
ผู้ดูแล
ปักหมุดให้ครับ 8)
ปัญหาของคุณมีประโยชน์ต่อคนรุ่นหลัง ถ้าแก้ปัญหาได้สำเร็จแล้ว กรุณากลับมาแจ้งให้ทราบด้วย
ว่าแก้ปัญหาด้วยวิธีใดแล้วได้ผล เพื่อประโยชน์กับคนรุ่นหลัง และไว้อ้างอิงสำหรับตัวคุณเองด้วย ขอบคุณครับ
-------------------------------------
ความรู้เพียงเล็กน้อย อาจช่วยคนเป็นร้อยแก้ปัญหา
เพราะฉะนั้น อย่ากลัวที่จะบอกสิ่งที่คุณรู้กับคนอื่น แม้จะเป็นเรื่องพื้นๆ ก็ตาม
-------------------------------------
การแบ่งปันทำให้สังคมน่าอยู่
-------------------------------------
สมาชิก
ใครชอบ ก็บริจาคกันได้ที่ SMS 4567890 พิมพ์คำว่า "เฮติ" ใช้ได้ทั้ง AIS, DTAC และ TROUMOVE ค่าส่งครั้งละ 10 บาท หุหุ สนับสนุนเขาอีกแรงไม่รู้หมดเขตเมื่อไร (หมดเขต 8กพ.นี่ หลังจากนี้ไม่ต้องส่งมาแล้วครับ) มาต่อเรื่องของเราต่อดีก่า

คราวก่อนเรารู้จักรูปแบบของโครงสร้างกันไปแล้ว นั่นคือ
การทำงานแบบตามลำดับ(Sequence), การเลือกกระทำตามเงื่อนไข(Decision) และการทำซ้ำ(Loop) เราจะมาอธิบายให้ละเอียดอีกทีด้วยตัวอย่างประกอบ

อันแรก
การทำงานแบบตามลำดับ(Sequence)
[img]http://forum.ubuntuclub.com/forum/action,dlattach/topic,13564.0/attach,5172/image.html[/img]

1. เริ่มตนทํางาน
2. กําหนดใหตัวแปรชื่อ C มีคาเปน 10 และ z มีคาเปน 0 (จากรูปมันตกค่า z ตามหลักต้องประกาศตัวแปรที่จะใช้)
3. อานขอมูลเขามาเก็บในตัวแปรชื่อ x และ y
4. ทําการคํานวณตามสมการ (10*(x+y)/100)-C แลวนําผลลัพธที่ไดมาเก็บในตัวแปรชื่อ z
5. แสดงผลลัพธนั่นคือ คาขอมูลที่ตัวแปร z เก็บอยู ณ. ขณะนั้นออกมา
6. สิ้นสุดการทํางาน

ถ้าไม่เข้าใจ ก็ดูกันอีกครั้งนะ
ผู้ดูแล
@SuperAEE  แนะนำโปรแกรมที่ใช้เขียนชาร์ต ให้ผู้สนใจบ้างสิครับ สักสองสามโปรแกรม 8)
ปัญหาของคุณมีประโยชน์ต่อคนรุ่นหลัง ถ้าแก้ปัญหาได้สำเร็จแล้ว กรุณากลับมาแจ้งให้ทราบด้วย
ว่าแก้ปัญหาด้วยวิธีใดแล้วได้ผล เพื่อประโยชน์กับคนรุ่นหลัง และไว้อ้างอิงสำหรับตัวคุณเองด้วย ขอบคุณครับ
-------------------------------------
ความรู้เพียงเล็กน้อย อาจช่วยคนเป็นร้อยแก้ปัญหา
เพราะฉะนั้น อย่ากลัวที่จะบอกสิ่งที่คุณรู้กับคนอื่น แม้จะเป็นเรื่องพื้นๆ ก็ตาม
-------------------------------------
การแบ่งปันทำให้สังคมน่าอยู่
-------------------------------------
ผู้ดูแล
[quote author=~Mangmo~ link=topic=13564.msg84359#msg84359 date=1265050632]
@SuperAEE  แนะนำโปรแกรมที่ใช้เขียนชาร์ต ให้ผู้สนใจบ้างสิครับ สักสองสามโปรแกรม 8)
[/quote]
Dia จร้า 
ASUS F81SE Chipset SIS 671MX , Intel Core2@T6500 2.1Ghz,
Seagate 320GB, Kingston DDR2 4GB Dual Chanel bus 800 , ATI HD4570 512MB <br>
เบื่อดราม่า น้ำเน่า สิ้นคิด ปัญญาอ่อนที่สุด
สมาชิก
ูdia อีกเสียงครับ
มีแฟนไม่ได้เพียงเพราะต้องอยู่ตลอดเวลา แต่มีเพื่อทำให้รู้ว่ายังมีอีกคนที่รักเราอยู่
สมาชิก
มี kivio ของค่าย KDE น่าตาจะเหมือน visio นะครับ แต่ถ้าทำใจยอมรับหน้าตาได้ก็ dia พวกนี้เหมาะแก่การทำ FlowChart เป็นแบบลากๆว่างๆ มีสัญลักษณ์ครบครัน หรือใช้ openoffice draw ก็ได้แม้แต่ scribus or gimp ก็ได้น่ะ อิอิ มันทำได้ แต่ไม่เหมาะเท่านั่นเองเอาเป็นว่าใช้ที่ถนัดนะครับ
[size=6][color=green][b]เอาการบ้านกันมะ[/b][/color][/size]

เมื่อมีโปรแกรมกันแล้วลอง ทำ FlowChart "Hello world" กันหน่อยเป็นไง basic ๆ
สมาชิก
มาต่อแบบที่สองกัน
การเลือกกระทำตามเงื่อนไข(Decision) จะทํางานแบบใหเลือกทําอยางใดอยางหนึ่งเทานั้น สามารถพิจารณาได 3 กรณี คือ

การทํางานแบบเลือกทํา 1 ทาง คือ จะทํางานเฉพาะเงื่อนไขที่เปนจริงเทานั้น ดูรูปประกอบ
[img]http://forum.ubuntuclub.com/forum/action,dlattach/topic,13564.0/attach,5233/image.html[/img]

การตรวจสอบชนิดนี้ ใช้แสดงกรณีที่ต้องการทำงานเมื่อมีค่าเงื่อนไขตรงกับที่กำหนดไว้เท่านั่น
มาดูตัวอย่างกันดีก่า
[img]http://forum.ubuntuclub.com/forum/action,dlattach/topic,13564.0/attach,5235/image.html[/img]

1. เริ่มต้นการทำงาน
2. กำหนดตัวแปรชื่อ C มีค่าเป็น 10 และ z มีค่าเป็น 0
3. อ่านข้อมูลมาเก็บไว้ในตัวแปรชื่อ x และ y
4. ถ้าค่าข้อมูลตัวแปร x น้อยกว่าค่าข้อมูลตัวแปร y
    [b]-เป็นจริง[/b] ให้ทำการคำนวณสมการ (10*(x+y)/100)-C แล้วนำผลลัพธ์มาเก็บไว้ในตัวแปรชื่อ z
5. แสดงผลลัพธ์นั่นคือ ค่าข้อมูลที่ตัวแปร z เก็บอยู่ ณ ขณะนั่นออกมา
6. สิ้นสุดการทำงาน

[size=6][color=red][b]คำถาม[/b][/color][/size]  คือ [b]กรณีที่เป็นเท็จ คือ x>=y[/b] จะเป็นอย่างไงละ แล้วค่า z จะเป็นเท่าไร ตอบกันหน่อยดิ
ผู้ดูแล
จะตอบถูกไหมนิ จากโฟลชาร์ต ถ้า X > Y (เท็จ) ทิศทางของโปรแกรมจะออกไปทางขวา คือไม่มีการคำนวนสมการเกิดขึ้น เพราะฉะนั้น Z จึงเท่ากับ 0 จบโปรแกรม

[quote]if x < y then
  z = (10 * (x + y) / 100) - C
endif[/quote]
ปัญหาของคุณมีประโยชน์ต่อคนรุ่นหลัง ถ้าแก้ปัญหาได้สำเร็จแล้ว กรุณากลับมาแจ้งให้ทราบด้วย
ว่าแก้ปัญหาด้วยวิธีใดแล้วได้ผล เพื่อประโยชน์กับคนรุ่นหลัง และไว้อ้างอิงสำหรับตัวคุณเองด้วย ขอบคุณครับ
-------------------------------------
ความรู้เพียงเล็กน้อย อาจช่วยคนเป็นร้อยแก้ปัญหา
เพราะฉะนั้น อย่ากลัวที่จะบอกสิ่งที่คุณรู้กับคนอื่น แม้จะเป็นเรื่องพื้นๆ ก็ตาม
-------------------------------------
การแบ่งปันทำให้สังคมน่าอยู่
-------------------------------------
สมาชิก
^
ตามนั้นเลยครับ มาช้าไปหน่อย อิอิ
มีแฟนไม่ได้เพียงเพราะต้องอยู่ตลอดเวลา แต่มีเพื่อทำให้รู้ว่ายังมีอีกคนที่รักเราอยู่
สมาชิก
ตามหลักครับ ถ้า "[b]x>y or x =y[/b]" จะไม่ตรงเงื่อนไข x< y ตามรูปลูกศรจะไปทางขวาผ่านไปแสดงผลลัพธ์ค่า z เลยโดยไม่ผ่านการ Process ใดๆเลย ดังนั้นมันจะแสดงค่าเดิมของมัน คือค่า 0 ครับ

มาต่อกัน
แบบที่ 2 การทํางานแบบเลือกทํา 2 ทาง
จะทํางานจากการพิจารณาเงื่อนไขที่เปนจริงและเปนเท็จโดย ใหเลือกทําอยางใดอยางหนึ่ง ตามรูป
[img]http://forum.ubuntuclub.com/forum/action,dlattach/topic,13564.0/attach,5267/image.html[/img]

การตรวจสอบแบบนี้ ใช้กรณีที่มีเงื่อนไข 2 เงื่อนไขให้พิจารณาพร้อมๆกัน ตัวอย่าง

[img]http://forum.ubuntuclub.com/forum/action,dlattach/topic,13564.0/attach,5269/image.html[/img]

1. เริ่มต้นการทำงาน
2. กําหนดใหตัวแปรชื่อ C มีคาเปน 10 และ z มีคาเปน 0 (จากรูปมันตกค่า z ตามหลักต้องประกาศตัวแปรที่จะใช้)
3. อานขอมูลเขามาเก็บในตัวแปรชื่อ x และ y
4. ถาคาขอมูลของตัวแปร x มีคานอยกวาคาขอมูลของตัวแปร y
   
    [b]กรณีที่เป็นจริง[/b] ใหทำการคํานวณตามสมการ (10*(x+y) /100)-C แลวนําผลลัพธที่ไดมาเก็บในตัวแปรชื่อ z
    [b]กรณีที่เป็นเท็จ[/b] ใหทำการคํานวณตามสมการ (10*(x-y) /100)-C แลวนําผลลัพธที่ไดมาเก็บในตัวแปรชื่อ z

5. แสดงผลลัพธนั่นคือ คาขอมูลที่ตัวแปร z เก็บอยู ณ. ขณะนั้นออกมา
6. จบการทำงาน

[size=6][color=red][b]คำถาม[/b][/color][/size] ผ่านไปสองแบบแล้วลองมาเดาดูมั๊ย แบบที่สามจะเป็นอย่างไง