การเขียนข้นัตอนวิธีและผงังาน(flowchart) ·...

40
การเขียนขั นตอนวิธีและผังงาน(Flowchart)

Upload: others

Post on 30-Jan-2021

13 views

Category:

Documents


0 download

TRANSCRIPT

  • การเขียนขั้นตอนวธีิและผงังาน(Flowchart)

  • การเขียนขั้นตอนวธีิ

    • การเขียนขั้นตอนวิธี เป็นการเขียนอธิบายขั้นตอนการท างาน หรือขั้นตอนของค าสัง่ มีวิธีเขียนไดส้องแบบ – PseudoCode (รหสัล าลอง หรือรหสัเทียม) – Flowchart (ผงังาน)

  • Pseudocode (รหสัเทียม)

    • เป็นการเขียนขั้นตอน จ าลองการเขียนโปรแกรม โดยไม่ค านึงถึงไวยากรณ์ภาษาคอมพิวเตอร์

    • ใชภ้าษาท่ีกระชบั แต่มีโครงสร้างเหมือนโปรแกรมคอมพิวเตอร์ • ไม่ค านึงถึงการประกาศตวัแปร หรือ subroutine • พฒันามาจากการเขียนขั้นตอนวิธีแบบบรรยายความ • ใชภ้าษาองักฤษทัว่ ๆ ไป

  • ขั้นตอนการส่งจดหมาย

  • ขั้นตอนวธีิการส่งจดหมาย

    1. จ่าหนา้ซองจดหมาย 2. ใส่จดหมายลงในซอง 3. ปิดผนึกซองจดหมาย 4. ตรวจสอบแสตมป์ ถา้ไม่มีใหไ้ปซ้ือแสตมป์ 5. ติดแสตมป์

    6. จบการท างาน

  • หุงขา้ว

  • ขั้นตอนวธีิการหุงขา้ว

    1. ใส่ขา้วลงในหมอ้หุงขา้ว 2. เติมน ้าลงในหมอ้ 3. ตรวจสอบปริมาณน ้า

    4. ถา้ระดบัน ้าไม่พอดีให ้ปรับ เพิ่ม-ลด 5. เสียบปลัก๊ไฟ 6. กดปุ่ มเปิดสวิทชไ์ฟหมอ้หุงขา้ว

    7. จบการท างาน

  • pseudocode การตรวจสอบบตัรเครดิต ถา้หมายเลขบตัรเครดิตถูกตอ้ง

    ใหท้ าการหกับญัชีตามจ านวนท่ีระบุ

    ถา้ไม่ถูกตอ้ง

    ใหแ้สดงขอ้ความผิดพลาด

  • if credit card number is valid execute transaction based on number and order else show a generic failure message end if

    pseudocode การตรวจสอบบตัรเครดิต

  • pseudocode การค านวณพ้ืนท่ีส่ีเหล่ียมผนืผา้

    READ height of rectangle

    READ width of rectangle COMPUTE area as height times width

    อ่านค่าความสูงของส่ีเหล่ียมผนืผา้

    อ่านค่าความกวา้งของส่ีเหล่ียมผนืผา้

    ค านวณพ้ืนท่ีส่ีเหล่ียมจากความกวา้งคูณความสูง

  • pseudocode การเคล่ือนท่ีของหุ่นยนต ์ถา้ขา้งหนา้ไม่มีส่ิงกีดขวาง

    ใหเ้คล่ือนท่ีหุ่นยนต ์

    เกบ็ค าสัง่ท่ีเคล่ือนท่ีไว ้

    ส่งค่ากลบัเป็นจริงเพ่ือใหรู้้วา่เคล่ือนท่ีได ้

    ถา้มีส่ิงกีดขวาง

    ใหส่้งค่ากลบัเป็นเทจ็

    ไม่เคล่ือนท่ี

  • ตวัอยา่ง pseudocode การเคล่ือนท่ีของหุ่นยนต ์

    IF robot has no obstacle in front THEN

    Call Move robot

    Add the move command to the command

    history

    RETURN true ELSE

    RETURN false without moving the robot END IF

  • การทดลอง

    • จงเขียนขั้นตอนการท าไข่เจียว • จงเขียนขั้นตอนการเดินทางจากบา้นหรือหอพกั มายงั

    หอ้งเรียน

  • ผงังาน (Flowchart)

    • การเขียนขั้นตอนวิธีในแบบสญัลกัษณ์ ช่วยใหไ้ม่ตอ้งตีความ จุดเร่ิมตน้/ส้ินสุด (Terminator)

    ขอ้มูล น าเขา้/ส่งออก (Input / Output) ประมวลผล (Process)

    ตดัสินใจ (Decision)

    ทิศทาง (Direction)

    จุดต่อเช่ือม (Connector)

  • ชนิดของผงังาน

    1. ผงังานระบบ(System Flowchart) • แสดงภาพการท างานกวา้ง ๆ ของระบบ • แสดงขั้นตอนการท างานอยา่งไรของระบบ แต่ไม่เจาะลึกลงไปวา่ใน

    ระบบวา่ในแต่ละงานนั้นมีการท างานอยา่งไร • แสดงจุดเร่ิมตน้ของงานเร่ิมจากส่วนใด เป็นขอ้มูลแบบใด มีการ

    ประมวลผลอยา่งไร และจะไดผ้ลลพัธ์เป็นอยา่งไรและเกบ็อยูท่ี่ใด

  • ชนิดของผงังาน

    2. ผงังานโปรแกรม (Program Flowchart) • แสดงล าดบัขั้นตอนในการท างานของโปรแกรม ตั้งแต่การรับขอ้มูล

    การประมวลผล ตลอดจนผลลพัธ์ท่ีได ้ • ช่วยท าใหเ้ขียนโปรแกรมสะดวกข้ึน • อาจสร้างมาจากผงังานระบบ โดยดึงเอาจุดท่ีเก่ียวขอ้งกบัคอมพิวเตอร์

    มาวิเคราะห์วา่จะใชท้ างานส่วนใด เพื่อท่ีจะใหไ้ดม้าซ่ึงผลลพัธ์ท่ีตอ้งการ

  • ประโยชน์ของการเขียนผงังาน

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

    ควรท าหลงั • สามารถหาขอ้ผดิพลาดของโปรแกรมไดง่้าย

    • ท าใหผู้อ่ื้นเขา้ใจการท างานไดง่้ายกวา่การดูจาก source code • ไม่ข้ึนกบัภาษาคอมพิวเตอร์ภาษาใดภาษาหน่ึง ผูอ่้านสามารถเรียนรู้

    และเขา้ใจไดง่้าย

  • ขอ้ก าหนดการเขียนผงังาน

    1. ใชส้ัญลกัษณ์ท่ีมีรูปแบบเป็นมาตรฐาน 2. ขนาดของสญัลกัษณ์ข้ึนอยูก่บัความเหมาะสม 3. ควรเขียนทิศทางการไหลของขอ้มูล เร่ิมจากบนลงล่าง หรือจากซา้ย

    ไปขวา และควรท าหวัลูกศรก ากบัทิศทางดว้ย 4. การเขียนค าอธิบายใหเ้ขียนภายในสญัลกัษณ์ ใชข้อ้ความท่ีเขา้ใจง่าย

    สั้นและชดัเจน

  • 5. พยายามใหเ้กิดจุดตดันอ้ยท่ีสุด หรืออาจใชส้ญัลกัษณ์ท่ีเรียกวา่ "ตวัเช่ือม" (Connector) แทนเพื่อหลีกเล่ียงขอ้ผดิพลาดท่ีอาจเกิดข้ึน

    6. หากเป็นไปไดค้วรเขียนผงังานใหจ้บภายในหนา้เดียวกนั 7. ผงังานท่ีดีควรเป็นระเบียบเรียบร้อย สะอาด ชดัเจน เขา้ใจและติดตาม

    ขั้นตอนไดง่้าย

    8. จุดเร่ิมตน้และส้ินสุดของงาน ควรมีเพียงจุดเดียว

    ขอ้ก าหนดการเขียนผงังาน

  • รูปแบบผงังาน

    • Sequence

    • Selection

    • Iteration

  • ล าดบั (sequence)

  • ทางเลือก (selection)

    Y N

  • วงวน(iteration)

  • เร่ิมตน้

    จ่าหนา้ซองจดหมาย

    ใส่จดหมายลงในซอง

    ปิดผนึกซองจดหมาย

    มีแสตมป์ ? ไปซ้ือแสตมป์

    ติดแสตมป์

    จบ

    ไม่มี

    มี

    ตวัอยา่งผงังาน การส่งจดหมาย

  • เร่ิม

    อายมุากกวา่ 7 ปี ?

    อายมุากกวา่ 3 ปี ?

    อายมุากกวา่ 1 ปี ?

    รับประทาน 2 ชอ้นชา

    รับประทาน 1 ชอ้นชา

    รับประทาน ½ ชอ้นชา

    หา้มรับประทาน

    จบ

    y

    y

    y

    N

    N

    N

    ตวัอยา่งผงังาน การรับประทานยา

  • ตวัอยา่งผงังาน การบวกเลขสามจ านวน

    ขั้นตอนการท างาน

    • อ่านค่าตวัเลข 3 จ านวน • น าเลข 3 จ านวนมาบวกกนั • แสดงผลบวก • จบการท างาน

  • ตวัอยา่งผงังาน การบวกเลขสามจ านวน

    Start

    Read Num1, Num2, Num3

    SUM = Num1 + Num2 + Num3

    Display SUM

    End e

  • ตวัอยา่งผงังานการหาค่านอ้ยกวา่ของเลขสองจ านวน

    Start

    Read Num1, Num2

    Display Num1

    End

    Num1 > Num 2

    Display Num2

    y

    n

    Num1 = 10, Num2 = 20

    10 >20 ?

    10

  • ตวัอยา่งผงังานการหาค่านอ้ยกวา่ของเลขสองจ านวน

    Start

    Read Num1, Num2

    Display Num1

    End

    Num1 > Num 2

    Display Num2

    y

    n

    Num1 = 12, Num2 = 5

    12 >5 ?

    5

  • ตวัอยา่งผงังานการหาค่านอ้ยท่ีสุดของเลขสามจ านวน Start

    Read Num1, Num2, Num3

    End

    min > Num2

    Display min

    y

    n

    min > Num3

    min = Num1

    min = Num2

    min = Num3 n

    y

    Num1 = 5, Num2 = 8, Num3 = 2

    min = 5

    min = 5

    min = 2

  • ตวัอยา่งผงังานการหาค่านอ้ยท่ีสุดของเลขสามจ านวน Start

    Read Num1, Num2, Num3

    End

    min > Num2

    Display min

    y

    n

    min > Num3

    min = Num1

    min = Num2

    min = Num3 n

    y

    Num1 = 6, Num2 = 3, Num3 = 5

    min = 6

    min = 3

    min = 3

  • ตวัอยา่งผงังานการหาค่านอ้ยท่ีสุดของเลขสามจ านวน Start

    Read Num1, Num2, Num3

    End

    min > Num2

    Display min

    y

    n

    min > Num3

    min = Num1

    min = Num2

    min = Num3 n

    y

    Num1 = 2, Num2 = 9, Num3 = 7

    min = 2

    min = 2

    min = 2

  • ตวัอยา่งผงังาน การค านวณภาษี

    ขั้นตอนการท างาน • ป้อนเงินเดือน

    • ค านวณภาษีจาก 10% ของเงินเดือน • พิมพ ์เงินเดือน และภาษี

  • Input salary

    START

    Tax = salary * 0.1

    Print salary, tax

    STOP

    ตวัอยา่งผงังาน การค านวณภาษี

  • ตวัอยา่งผงังาน การค านวณภาษี เพ่ิมการวนซ ้ า

    N

    Y

    Input salary

    START

    Tax = salary * 0.1

    Print salary, tax

    Salary = 0.0

    STOP

    Input salary

  • 1

    2

    3

    4

    5

    6

    7

    8

    START

    Input salary

    Bonus = 10000

    Salary = salary + Bonus

    Salary = salary + salary

    Salary = salary + salary

    Salary = 100

    Bonus = Bonus - 3000

    STOP

    Salary = 5000

    Bonus = 10000

    Salary = 5000 + 10000 = 15000

    Salary = 15000 + 15000 = 30000

    Bonus = 10000 – 3000 = 7000

    Salary = 30000 + 30000 = 60000

    Salary = 100

    ค่าของตวัแปรจะเป็นค่าหลงัสุดเสมอ

  • N Y

    Input salary

    START

    Tax = salary * 0.1

    Print salary, tax

    Salary = 0 0

    STOP

    T_sal = T_sal + salary T_tax = T_tax + tax

    Print T_sal, T_tax

    Input salary

    salary Tax T_salary T_tax

    10000 1000 10000 1000

    15000 1500 25000 2500

    12000 1200 37000 3700

    20000 2000 57000 5700

    18000 1800 75000 7500

    การสะสมค่า

  • Y

    START

    X = 1

    TOTAL = 0

    TOTAL = TOTAL + X

    X > 10 ?

    X = X + 1

    N

    Print TOTAL

    STOP

    รูปท่ี 8

    บวกเลข 1 - 10

    x Total

    1 0+1 = 1

    2 1+2=3

    3 3+3=6

    4 6+4=10

    5 10+5=15

    6 15+6=21

    7 21+7=28

    8 28+8=36

    9 36+9=45

    10 45+10=55

  • แบบฝึกหดั

    • จงเขียนขั้นตอนการท างานและผงังาน เพื่อตรวจสอบยอดเงินในธนาคารผา่นตู ้ATM

    • จงเขียนขั้นตอนการท างานและผงังาน เพื่อล าดบัขั้นตอนการลงทะเบียนเรียนของมหาวิทยาลยัราชภฏัร้อยเอด็