ผังงาน
Upcoming SlideShare
Loading in...5
×
 

ผังงาน

on

  • 744 views

 

Statistics

Views

Total Views
744
Slideshare-icon Views on SlideShare
744
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    ผังงาน ผังงาน Presentation Transcript

    • ผังงาน (Flowchart)
    • ความหมายของผังงาน ผังงาน ( Flowchart) คือ รูปภาพ ( Image) หรือสัญลักษณ์ ( Symbol) ที่ใช้เขียนแทนขั้นตอน คำอธิบาย ข้อความ หรือคำพูด ที่ใช้ในอัลกอริทึม ( Algorithm) เพราะการนำเสนอขั้นตอนของงานให้เข้าใจตรงกัน ระหว่างผู้เกี่ยวข้อง ด้วยคำพูด หรือข้อความทำได้ยากกว่า ผังงานแบ่งได้ 2 ประเภท 1. ผังงานระบบ (System Flowchart) คือ ผังงานที่แสดงขั้นตอนการทำงานในระบบอย่างกว้าง ๆ แต่ไม่เจาะลงในระบบงานย่อย 2. ผังงานโปรแกรม ( Program Flowchart) คือ ผังงานที่แสดงถึงขั้นตอนในการทำงานของโปรแกรม ตั้งแต่รับข้อมูล คำนวณ จนถึงแสดงผลลัพธ์
    • ประโยชน์ของผังงาน 1. ทำให้เข้าใจ และแยกแยะปัญหาได้ง่าย ( Problem Define) 2. แสดงลำดับการทำงาน ( Step Flowing) 3. หาข้อผิดพลาดได้ง่าย ( Easy to Debug) 4. ทำความเข้าใจโปรแกรมได้ง่าย (Easy to Read) 5. ไม่ขึ้นกับภาษาใดภาษาหนึ่ง ( Flexible Language
    • ตัวอย่างผังงานระบบไฟแดง
    • การโปรแกรมแบบมีโครงสร้าง หรือ การโปรแกรมโครงสร้าง ประกอบด้วยอะไรบ้าง ทุกภาษาต้องมีหลักการ 3 อย่างนี้คือ การทำงานแบบตามลำดับ ( Sequence) การเลือกกระทำตามเงื่อนไข ( Decision) และ การทำซ้ำ ( Loop) แม้ตำราหลาย ๆ เล่มจะบอกว่า decision แยกเป็น if กับ case หรือ loop นั้นยังแยกเป็น while และ until ซึ่งแตกต่างกัน แต่ผมก็ยังนับว่าการเขียนโปรแกรม แบบมีโครงสร้างนั้น มองให้ออกแค่ 3 อย่างก็พอแล้ว และหลายท่านอาจเถียงผมว่าบางภาษาไม่จำเป็นต้องใช้ Structure Programming แต่เท่าที่ผมศึกษามา ยังไม่มีภาษาใด เลิกใช้หลักการทั้ง 3 นี้อย่างสิ้นเชิง เช่น MS Access ที่หลายคนบอกว่าง่าย ซึ่งก็อาจจะง่ายจริง ถ้าจะศึกษาเพื่อสั่งให้ทำงานตาม wizard หรือตามที่เขาออกแบบมาให้ใช้ แต่ถ้าจะนำมาใช้งานจริง ตามความต้องการของผู้ใช้แล้ว ต้องใช้ประสบการณ์ในการเขียน Structure Programming เพื่อสร้าง Module สำหรับควบคุม Object ทั้งหมดให้ทำงานประสานกัน
    • Process Symbol Input/Output Symbol Decision Symbol Terminal Symbol Document Symbol Connector Symbol
    • 1. การทำงานแบบตามลำดับ ( Sequence) : รูปแบบการเขียนโปรแกรมที่ง่ายที่สุดคือ เขียนให้ทำงานจากบนลงล่าง เขียนคำสั่งเป็นบรรทัด และทำทีละบรรทัดจากบรรทัดบนสุดลงไปจนถึงบรรทัดล่างสุด สมมติให้มีการทำงาน 3 กระบวนการคือ อ่านข้อมูล คำนวณ และพิมพ์
    • 2. การเลือกกระทำตามเงื่อนไข ( Decision or Selection) : การตัดสินใจ หรือเลือกเงื่อนไขคือ เขียนโปรแกรมเพื่อนำค่าไปเลือกกระทำ โดยปกติจะมีเหตุการณ์ให้ทำ 2 กระบวนการ คือเงื่อนไขเป็นจริงจะกระทำกระบวนการหนึ่ง และเป็นเท็จจะกระทำอีกกระบวนการหนึ่ง แต่ถ้าซับซ้อนมากขึ้น จะต้องใช้เงื่อนไขหลายชั้น เช่นการตัดเกรดนักศึกษา เป็นต้น ตัวอย่างผังงานนี้ จะแสดงผลการเลือกอย่างง่าย เพื่อกระทำกระบวนการเพียงกระบวนการเดียว
    • 3. การทำซ้ำ ( Repeation or Loop) : การทำกระบวนการหนึ่งหลายครั้ง โดยมีเงื่อนไขในการควบคุม หมายถึงการทำซ้ำเป็นหลักการที่ทำความเข้าใจได้ยากกว่า 2 รูปแบบแรก เพราะการเขียนโปรแกรมแต่ละภาษา จะไม่แสดงภาพอย่างชัดเจนเหมือนการเขียนผังงาน ผู้เขียนโปรแกรมต้องจินตนาการด้วยตนเอง
    • - พิมพ์เลข 0 ถึง 4 ทางจอภาพ ตัวอย่างผังงาน 1
    • ตัวอย่างผังงาน 2 - รับค่าจากแป้นพิมพ์เก็บลงตัวแปรอาร์เรย์ 5 ตัว - แล้วทำซ้ำอีกครั้ง เพื่อหาค่าสูงสุด
    • อัลกอริทึม 1. กำหนดค่าเริ่มต้นให้ max, i และ ar 2. ทำซ้ำเพื่อรับค่าเก็บใน ar ให้ครบ 5 ครั้ง 3. กำหนดค่าเริ่มต้นให้ i อีกครั้ง 4. ทำซ้ำเพื่อนำค่าที่เก็บไว้ใน ar มาหาค่า max 5. พิมพ์ค่าสูงสุด ที่หาได้
    • คำถามที่ 3 - พิมพ์พีระมิดของตัวเลขดังตัวอย่าง Result 1 12 123 1234 12345 Source Code <? $i = 1; while ($i <= 5){ $j = 1; while ($j <= $i) { echo $j; $j++; } echo &quot;<br>&quot;; $i++; } ?> Source Code #include <iostream.h> #include <conio.h> void main() { for(int i=1;i<=5;i++) { for(int j=1;j<=i;j++) { cout << j; } cout << &quot;end&quot; << 'n'; } getch(); }