วันพฤหัสบดีที่ 20 กันยายน พ.ศ. 2555

อัลกอริทึม


อัลกอริทึมและการเขียนโปรแกรม (Algorithm and Programming)

1 ความหมายของอัลกอริทึม

อัลกอริทึม ( Algorithm ) หมายถึง ขั้นตอนหรือลำดับการประมวลผลในการแก้ปัญหาใด

ปัญหาหนึ่ง ซึ่ง จะช่วยให้โปรแกรมเมอร์เห็นขั้นตอนของการเขียนโปรแกรมง่ายขึ้น

อัลกอริทึม ( Algorithm )หมายถึง แนวคิดอย่างมีเหตุผลที่ผู้เขียนโปรแกรม ( หรือ

โปรแกรมเมอร์ หรือ นักวิเคราะห์ระบบ ) ใช้ในการอธิบายวิธีการอย่างเป็นขั้นตอนตามลำดับในการที่

จะพัฒนาโปรแกรมนั้น ๆ ให้กับผู้ที่สนใจหรือผู้ที่เป็นเจ้าของงานหรือผู้ที่รับผิดชอบได้ทราบถึงขั้นตอน

ต่างๆ ในการเขียนหรือพัฒนาโปรแกรม ขณะเดียวกันก็ช่วยให้ผู้ที่เป็นเจ้าของงานหรือผู้ที่รับผิดชอบนั้น

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

หรือผู้ที่รับผิดชอบนั้น ๆ ไม่จำเป็นต้องเขียนโปรแกรมเป็น

2 หลักการเขียนอัลกอริทึม

1. เรียงลำดับความสำคัญของงานที่จะทำ

2. เขียนออกมาในลักษณะภาษาเขียนสามารถเข้าใจง่าย

3. มีความละเอียดของโครงสร้างพอสมควร

3 ตัวอย่างการเขียนอัลอกริทึม

ในรูปคำสั่งเทียม คือ มีลักษณะเป็นการเขียนคำสั่งต่างๆ ที่ทำให้ผู้เขียนโปรแกรมสามารถเข้าใจ

ง่าย ซึ่งคำสั่งที่ใช้จะเป็นคำพูดธรรมดา ไม่ยึดหลักไวยากรณ์ของภาษาคอมพิวเตอร์

ตัวอย่างที่ 1 การหาผลรวมของตัวเลข N จำนวน

Program : Sum

รับค่าจำนวนตัวเลขทั้งหมดเก็บไว้ที่ตัวแปร N

กำหนดให้ตัวแปรเก็บตัวนับเริ่มต้น I = 1 , เก็บผลรวมเริ่มต้น Sum = 0

Repeat

รับค่าข้อมูลเก็บไว้ที่ X

นำค่าข้อมูลที่อ่านได้บวกสะสมไว้ที่ตัวแปรเก็บผลรวม Sum

เพิ่มค่าตัวนับ I ขึ้นอีก 1

Until เป็นเลขตัวสุดท้ายจริง ( I > N )

แสดงตัวแปรที่เก็บผลรวมสะสม Sum

End Program

ตัวอย่างที่ 2 หาค่าสูงสุด และ ต่ำสุดจากตัวเลขทั้งหมด N จำนวน

Program : Max_Min

รับค่าจำนวนตัวเลขทั้งหมดเก็บไว้ที่ตัวแปร N

กำหนดให้ตัวแปรเก็บตัวนับเริ่มต้น I = 1

อ่านเลขตัวแรกเก็บไว้ที่ตัวแปร X

กำหนดให้ตัวแปร X เป็นทั้งค่ามากที่สุดและน้อยที่สุด เก็บไว้ที่ตัวแปร Max

และ Min

Repeat

อ่านเลขตัวถัดไป เก็บไว้ที่ X และเพิ่มค่าตัวนับ I อีก 1

If X > Max Then

เปลี่ยนค่าใน Max ให้เก็บค่า X แทน

Else

If X < Min Then

เปลี่ยนค่าใน Min ให้เก็บค่า X แทน

End if

End if

ให้ค่า Max = Max , ค่า Min = Min

Until I > n

แสดง ตัวเลขในตัวแปร Max และ Min

End Program

4 ความหมายของโฟลว์ชาร์ต

โฟลว์ชาร์ต ( Flow Chart ) หมายถึง ผังแสดงขั้นตอนและลำดับการทำงานต่าง ๆ ในโปรแกรม

โดยแสดงในรูปแบบของสัญลักษณ์แทนการทำงาน

โฟลว์ชาร์ต ( Flow Chart ) หมายถึง วิธีการออกแบบโปรแกรมอย่างเป็นขั้นตอนและมีเหตุมีผล

โดยการใช้สัญลักษณ์และตัวอักษรประกอบการอธิบายในแต่ละขั้นตอน เพื่อให้ผู้เขียนโปรแกรมและผู้

ที่สนใจทั่วไปสามารถเข้าใจความหมายได้

5 ประเภทของโฟลว์ชาร์ต

โดยทั่วไปแล้วผังงานทางคอมพิวเตอร์สามารถแบ่งออกเป็นประเภทใหญ่ ๆ ได้ 3 ประเภท ได้แก่

1. โฟลว์ชาร์ตระบบ ( System Flow Chart ) เป็นผังงานแสดงขั้นตอนการทำงานทั้งหมด

ในผังงานประเภทนี้จะเห็นระบบงานภายในของระบบหนึ่ง ๆ ที่เกี่ยวข้องกับงานทั้งหมด ทั้งวัสดุ

เครื่องจักร โปรแกรม และ บุคลากร

จุดมุ่งหมายของการใช้ผังงานระบบประเภทนี้เพื่อให้ทราบถึงความสัมพันธ์ของระบบงาน

ทั้งหมดรวมถึงภาพรวมของระบบตั้งแต่เริ่มต้นการทำงานจนถึงสุดท้าย ว่ามีขั้นตอนอะไรบ้างในการ

ทำงานและในการปฏิบัติงานในแต่ละขั้นตอนทำอย่างไร และจะใช้วิธีการอะไรบ้างในการทำงานในแต่

ละขั้นตอน ผังงานระบบประเภทนี้จะเหมาะสำหรับผู้บริหาร ผู้วิเคราะห์ระบบ และผู้เขียนโปรแกรม

ซึ่งจะทำให้ผู้ที่ดูผังงานระบบแบบนี้ได้ทราบถึงความสัมพันธ์คร่าว ๆ ของส่วนต่างๆ ของระบบงาน

ทั้งหมด แต่ผังงานระบบนี้ยังไม่สามารถนำไปใช้ในการเขียนโปรแกรมได้

2. โฟลว์ชาร์ตโปรแกรมโมดูล ( Modular Program Flow chart ) คือ ผังงานที่จัดทำขึ้น

เพื่อแบ่งระบบออกเป็นส่วน ๆ เพื่อให้ง่ายต่อความเข้าใจในแต่ละส่วนของระบบให้มากขึ้นกว่าผังงาน

ระบบ ซึ่งผังงานโปรแกรมโมดูลนี้จะแสดงเพียงส่วนหนึ่ง ๆ หรือ โมดูลนั้นๆ มีขั้นตอนและวิธีการใน

การทำงานอย่างไร แต่จะไม่มีรายละเอียดย่อยในโมดูลนั้น ๆ จึงยังไม่สามารถนำผังงานประเภทนี้ไป

เขียนโปรแกรมได้

3. โฟลว์ชาร์ตการเขียนโปรแกรม ( Programming Flow chart ) หรือที่นิยมเรียกกันสั้น ๆ

ว่า Flow chart ผังงานประเภทนี้เป็นผังงานซึ่งแสดงลำดับขั้นตอนการทำงานอย่างละเอียดในโมดูลนั้น

ๆ โดยจะดึงเอาจุดแต่ละจุดจากผังงานโปรแกรมโมดูลขึ้นมาเขียนเป็นผังงานประเภทนี้ โดยจะแสดง

รายละเอียดของขั้นตอนการทำงานอย่างชัดเจน ไม่ว่าจะเป็นขั้นตอนของการรับข้อมูลเข้า การคำนวณ

การประมวล-ผล และการแสดงผลลัพธ์ เป็นต้น

6 สัญลักษณ์ที่ใช้ในการเขียนโฟลว์ชาร์ต

สัญลักษณ์ ชื่อเรียก หน้าที่

Terminal / interrupt

( เริ่มต้น / สิ้นสุด )

แสดงจุดเริ่มต้นหรือสิ้นสุดของผังงาน

( ในผังงานจะมีจุดเริ่มต้นและสิ้นสุดการทำงานอย่างละ 1

จุดเท่านั้น )

Assignment ( การกำหนดค่า )

Computation ( การคำนวณ )

Process( การประมวลผล )

สัญลักษณ์ที่ใช้สำหรับแสดงการประมวลผล เช่น

การคำนวณ หรือ การกำหนดค่า

Input ( การนำข้อมูลเข้า )

Output ( การนำข้อมูลออก )

การรับหรือแสดงข้อมูลที่ไม่ได้กำหนดอุปกรณ์ในการรับ

หรือแสดงผล

Input ( รับข้อมูลเข้าทางแป้นพิมพ์ )

การรับข้อมูลเข้ามาทางแป้นพิมพ์ ( Keyboard )

Display การแสดงค่าข้อมูลออกทางจอภาพ

Document การแสดงค่าข้อมูลออกทางเครื่องพิมพ์

Decision

สัญลักษณ์ที่ใช้สำหรับการตัดสินใจ

Flowchart Connector จุดเชื่อมต่อผังงานในหน้าเดียวกัน

Flowchart Off- Page Connector

จุดเชื่อมต่อผังงานคนละหน้า

ลูกศร

ลูกศรแสดงทิศทางการไหลของผังงาน

Call Procedure การเรียกใช้โปรแกรมย่อย

7 ตัวอย่างการใช้สัญลักษณ์โฟลว์ชาร์ต

สัญลักษณ์ การใช้งาน คำอธิบาย

แสดงจุดเริ่มต้นหรือสิ้นสุดของผังงาน

( ในผังงานจะมีจุดเริ่มต้นและสิ้นสุดการทำงานอย่างละ 1

จุดเท่านั้น )

การกำหนดค่า A ให้มีค่าเท่ากับ 5 ( ในการกำหนดค่า

ให้กับตัวแปร จะไม่ใช้เครื่องหมาย = เพราะมีไว้สำหรับ

การเปรียบเทียบค่า 2 ค่า จะใช้เครื่องหมาย แทน)

การรับค่าข้อมูลมาเก็บไว้ในตัวแปร A และตัวแปร B

โดยค่าแรกจะถูกนำไปเก็บไว้ในตัวแปร A และ ค่าถัดไป

เก็บไว้ในตัวแปร B

การรับค่าจากแป้นพิมพ์มาเก็บไว้ในตัวแปร A และ

ตัวแปร B โดยค่าแรกที่รับเข้ามาจะถูกนำไปเก็บไว้ใน

ตัวแปร A และค่าถัดไปจะถูกนำไปเก็บไว้ในตัวแปร B

การแสดงค่าในตัวแปร ANS ออกทางจอภาพ

การแสดงค่าในตัวแปร ANS ออกทางเครื่องพิมพ์

จากภาพจะพิจารณาค่าในตัวแปร X ก่อน ถ้าค่าใน

ตัวแปร X ในขณะนั้นมากกว่า 15 จะทำในขั้นตอนการ

ทำงานในทิศทางของ Y ถ้าค่าในตัวแปร X ไม่มากว่า

15 จะทำในขั้นตอนการทำงานในทิศทางของ N

แสดงเครื่องหมายแสดงจุดต่อภายในหน้าเดียวกัน

หมายเลข 1 โดยที่ทั้ง 2 จุดจะต้องอยู่หน้าเดียวกัน โดย

เสมือนว่าสองจุดนี้เชื่อมต่อกัน

แสดงเครื่องหมายจุดต่อระหว่างหน้า หมายเลข 1 โดย

เครื่องหมายแสดงจุดต่อทั้งสองจุดนั้นจะต้องอยู่คนละ

หน้ากัน เสมือนว่าทั้งสองจุดนี้เชื่อมต่อถึงกัน

Start

End

A 5

รับค่า A,B

A , B

ANS

ANS

Y X > 15 N

1

1

1

1

8 หลักในการเขียนโฟลว์ชาร์ต

ในการเขียนผังงานหรือโฟลว์ชาร์ต ต้องรู้จักเลือกใช้รูปภาพหรือสัญลักษณ์ที่เหมาะสม รวมถึง

อุปกรณ์ที่ช่วยในการเขียนผังงานที่เรียกว่า “ Flow Chart Template “ ซึ่งอุปกรณ์นี้จะช่วยให้การเขียน

ผังงานสะดวกและรวดเร็วยิ่งขึ้น

ในการเขียนผังงานนี้จะเขียนตามขั้นตอนและวิธีการประมวลผลที่ได้ทำการวิเคราะห์งานเอาไว้

แล้ว ซึ่งต้องพิจารณาตามลำดับก่อนหลังของการทำงาน เพื่อจัดภาพของผังงานให้เป็นมาตรฐานง่ายต่อ

การเข้าใจ และช่วยให้การเขียนโปรแกรมจากผังงานมีประสิทธิภาพมากยิ่งขึ้น เพื่อให้การเขียนผังงาน

เป็นมาตรฐานเดียวกันจะใช้ลำดับในการเขียนผังงานดังนี้

1. การกำหนดค่าเริ่มต้น เป็นการกำหนดค่าเริ่มต้นให้กับตัวแปรต่างๆ ที่จำเป็นบางตัว ได้แก่

ตัวแปรที่ใช้เป็นตัวนับ หรือตัวแปรที่เป็นตัวคำนวณผลรวมต่างๆ

2. การรับข้อมูลเข้า เป็นการรับข้อมูลนำเข้ามาจากแหล่งข้อมูลต่างๆ เพื่อใช้เป็นส่วนหนึ่ง

ของการประมวลผล แล้วนำค่ามาเก็บไว้ในตัวแปรใด ๆ ที่กำหนดเอาไว้

3. การประมวลผล เป็นการประมวลผลตามที่ได้มีการกำหนด หรือเป็นการคำนวณต่างๆ ซึ่ง

จะต้องทำทีละลำดับขั้นตอนและแยกรูปแต่ละรูปออกจากกันให้ชัดเจนด้วย

4. การแสดงผลลัพธ์ เป็นการแสดงข้อมูลที่ได้จากการคำนวณหรือผลลัพธ์ที่ต้องการหรือค่า

จากตัวแปรต่างๆ ซึ่งการแสดงผลลัพธ์นี้มักจะกระทำหลังจากการประมวลผลหรือหลังจาก

การรับข้อมูลเข้ามาแล้ว

9 ข้อสังเกตในการเขียนโฟลว์ชาร์ต

1. โฟลว์ชาร์ตใด ๆ จะมีจุดเริ่มต้นและจุดสิ้นสุดเพียงอย่างละแห่งเดียวเท่านั้น

2. ทุกสัญลักษณ์ที่ใช้แทนขั้นตอนการทำงาน จะต้องมีทิศทางเข้าเพียง 1 แห่งและทิศทางออก

เพียง 1 แห่งเท่านั้น ยกเว้นสัญลักษณ์ของจุดเริ่มเริ่มต้น จุดสิ้นสุด จุดต่อ และ การ

ตัดสินใจ

3. ทิศทางของลำดับขั้นตอนการทำงานในโฟลว์ชาร์ตนิยมเขียนจากซ้ายไปขวาหรือจากบนลง

ล่าง

4. หลีกเลี่ยงการขีดเส้นโยงไปโยงมาในลักษณะที่ตัดกัน ถ้าจำเป็นต้องโยงเส้นดังกล่าวถึงกัน

ควรใช้เครื่องหมายต่อจุดเพื่อเชื่อมความสัมพันธ์แทน

5. สัญลักษณ์ต่าง ๆ นั้นจะเปลี่ยนรูปเป็นอย่างอื่นไม่ได้ ต้องเป็นไปตามมาตรฐานที่กำหนดไว้

แล้วเท่านั้น

6. ควรมีเครื่องหมายลูกศรกำกับทิศทางทางไหลให้กับแต่ละสัญลักษณ์ ด้วย

7. คำอธิบายการทำงานควรเขียนให้สั้นเข้าใจง่ายและเขียนในสัญลักษณ์ของโฟลว์ชาร์ต

ทั้งหมดหากมีคำอธิบายเพิ่มเติมให้เขียนไว้บนสัญลักษณ์ด้านขวา

8. ในการเขียนโฟลว์ชาร์ตควรเขียนให้เป็นระเบียบ เรียบร้อย และสะอาด

10 ตัวอย่างในการโฟลว์ชาร์ต

ตัวอย่างที่ 1 การหาผลรวมของตัวเลข N จำนวน

N = ข้อมูลตัวสุดท้าย

Start

X

I 1

Sum 0

Sum Sum + X

I I + 1

I > N

Sum

Stop

No

Yes

N

ตัวอย่างที่ 2 หาค่าสูงสุด และ ต่ำสุดจากตัวเลขทั้งหมด N จำนวน

Max X

Min X

Start

N

I 1

Max X , Min X

X

I I + 1

X > Max

X < Min

Max Max , Min Min

No

No

Yes

Yes

No I > N

Yes

Max , Min

Stop

11 หลักการเขียนโปรแกรม

โปรแกรมคำสั่ง ( Programming Language ) โดยทั่วไปหมายถึงชุดของคำสั่งจำนวนหนึ่งที่ถูก

จัดเป็นลำดับขั้นตอนของการปฏิบัติงานเพื่อที่จะได้ผลลัพธ์ที่ต้องการอย่างหนึ่ง คำสั่งเหล่านั้นถูกเขียน

ในรูปแบบตามข้อกำหนดหรือข้อบังคับของภาษาที่ใช้

ในการใช้คอมพิวเตอร์ช่วยในการแก้ไขปัญหาต่างๆ โปรแกรมคำสั่งจะถูกเขียนและป้อนให้แก่

คอมพิวเตอร์เพื่อบอกลำดับขั้นการทำงานให้คอมพิวเตอร์ปฏิบัติ ขั้นตอนที่เกี่ยวข้องกับการเขียน

โปรแกรมได้แก่สิ่งต่อไปนี้

1. ต้องรู้ความต้องการของปัญหา หรือรู้ว่าปัญหาคืออะไร ในขั้นนี้มีส่วนที่เกี่ยวข้องที่สำคัญ

2 ประการคือ

- output ที่ต้องการคืออะไร และ มีรูปแบบอย่างไร

- input เกี่ยวข้องกับข้อมูล และ สิ่งกำหนดให้อะไรบ้าง

2. กำหนดวิธีการที่เหมาะสมเพื่อแก้ปัญหานั้น โดยอาจกำหนดในรูปแบบของ Algorithm

หรือ Flowchart

3. แปลง Algorithm หรือ Flowchart เป็นโปรแกรมภาษาที่เหมาะสมที่สามารถใช้กับ

คอมพิวเตอร์ที่ใช้งานอยู่

4. นำโปรแกรมที่เขียนแล้วไปทดลองกับคอมพิวเตอร์โดยใช้ข้อมูลสมมุติเพื่อตรวจสอบ

เงื่อนไขและความถูกต้อง

5. ใช้ข้อมูลจริงกับโปรแกรมที่ถูกต้องเพื่อผลิตผลลัพธ์ขั้นสุดท้าย

12 สรุปขั้นตอนของการวิเคราะห์งาน 5 ขั้นตอน ได้ดังนี้คือ

1. ระบุสิ่งที่โจทย์ต้องการ

2. ออกแบบหน้าจอผลลัพธ์

3. ระบุข้อมูลนำเข้า

4. กำหนดตัวแปรที่ใช้

5. ขั้นตอนการประมวลผล ( อัลกอริทึม ) หรือ โฟลว์ชาร์ต

หลังจากทำการวิเคราะห์งาน 5 ขั้นตอนเรียบร้อยแล้วค่อย ลงมือเขียนโปรแกรม

ให้หาผลรวมของตัวเลขตั้งแต่ 1 ถึง N

1. สิ่งที่โจทย์ต้องการ

ผลรวมของจำนวนตัวเลขตั้งแต่ 1 – N

2. รูปแบบผลลัพธ์

3. ข้อมูลนำเข้า

จำนวนตัวเลขเริ่มต้นที่ 1 , 2 , 3 ,… ไปเรื่อยๆ จนกระทั่งถึง N

4. ตัวแปรที่ใช้

4.1 Top_number = ตัวแปรเก็บตัวเลขสูงสุด

4.2 Number = ตัวแปรเก็บตัวเลขนำเข้าตั้งแต่ 1 – N

4.3 Total = ตัวแปรเก็บผลรวมของจำนวนตัวเลขตั้งแต่ 1 – N

5. ขั้นตอนหรือวิธีการในการประมวลผล (อัลกอริทึม)

5.1 พิมพ์หัวโปรแกรมการหาผลรวมเลข 1 – N

5.2 ป้อนค่าตัวเลขสุดท้าย เก็บไว้ที่ตัวแปร Top_number

5. 3กำหนดค่าตัวแปรเก็บตัวเลขเริ่มต้น Number = 1 และตัวแปรเก็บผลรวมเริ่มต้น Total = 0

5.4 นำค่าตัวแปร Number บวกสะสมเก็บไว้ที่ตัวแปร Total

5.5 เพิ่มค่าตัวแปร Number ขึ้นอีก 1

Program Sum Number 1 – N

Input Top number of N = ?

Total Of Number 1 – N = x

- Press < any key > To End Program -

5.6 เช็คเงื่อนไขว่า Number > Top_number หรือยัง

- ถ้า เป็นจริง ไปทำขั้นตอนที่ 7

- ถ้าเป็นเท็จ กลับไปทำขั้นตอนที่ 4

5.7 พิมพ์ผลรวมสะสมที่คำนวณได้ในตัวแปร Total

5.8 จบการทำงานของโปรแกรม

6. ผังงาน ( Flow Chart )

Number > Top_number

Stop

Total Total + Number

Start

พิมพ์หัวโปรแกรม

Yes

No

Total

Top_number

Number 1

Total 0

Number Number + 1

7. เขียนโปรแกรม < ด้วยภาษาซี >

#include "stdio.h"

#include "conio.h"

void main()

{

int i,number,total,top_number;

clrscr();

for (i=1; i<80; i++) printf("*");

gotoxy(20,2);printf("program Sum number 1 - N \n");

for (i=1; i<80; i++) printf("*");

total = 1;number = 0;

gotoxy(20,4);printf("Input number of N :=");scanf("%d",&top_number);

do {

total = total + number;

number = number + 1;

} while (number <= top_number);

gotoxy(20,5);printf("Total of number 1 - N = %d",total);printf("\n");

for (i=1; i<80; i++) printf("*");

gotoxy(20,7);printf("- Press < any Key > to end program - \n");

for (i=1; i<80; i++) printf("*");

getch();

}

ตัวอย่างโจทย์ที่ 2

ให้ทำการรับคะแนนของนักศึกษาที่อยู่ในช่วง 0 - 100 จากแป้นพิมพ์มาเก็บไว้ในตัวแปรแล้วทำ

การคำนวณหาเกรดที่ควรจะได้โดยเทียบจาก

0 - 49 ได้ เกรด 0

50 - 59 ได้ เกรด 1

60 - 69 ได้ เกรด 2

70 - 79 ได้ เกรด 3

80 - 100 ได้ เกรด 4

และถ้าหากรับคะแนน เป็นค่า 999 ให้จบการทำงานของโปรแกรม ....

1. สิ่งที่โจทย์ต้องการ

เกรดของนักศึกษาแต่ละคน

2. รูปแบบผลลัพธ์

3. ข้อมูลนำเข้า

คะแนนของนักศึกษาอยู่ในช่วง 0 – 100

4. ตัวแปรที่ใช้

4.1 Score = ตัวแปรเก็บคะแนนนำเข้าตั้งแต่ 0 – 100

4.2 Grade = ตัวแปรเก็บเกรดที่นักศึกษาจะได้รับ

Program Show Grade of Student

Input Score 0 - 100

Input your Score = ? You Get Grade = X

- Press < any key > to End Program -

5. ขั้นตอนหรือวิธีการในการประมวลผล (อัลกอริทึม)

1. พิมพ์หัวโปรแกรมการคิดเกรดนักศึกษา

2. พิมพ์ช่วงคะแนนที่จะป้อนให้กับโปรแกรม ( 0 - 100 )

3. รอรับค่าคะแนนเพื่อนำมาเก็บไว้ในตัวแปร Score

4. นำตัวแปรที่เก็บคะแนนไปเช็คเงื่อนไขเพื่อคำนวณเกรดดังนี้

- หากค่าตัวแปรอยู่ในช่วง 0 - 49 แล้วให้ ตัวแปร Grade เก็บค่า “0” หากไม่ใช่ให้

เช็คเงื่อนไขต่อไป

- หากค่าตัวแปรอยู่ในช่วง 50 - 59 แล้วให้ ตัวแปร Grade เก็บค่า “1” หากไม่ใช่ให้

เช็คเงื่อนไขต่อไป

- หากค่าตัวแปรอยู่ในช่วง 60 - 69 แล้วให้ ตัวแปร Grade เก็บค่า “2” หากไม่ใช่ให้

เช็คเงื่อนไขต่อไป

- หากค่าตัวแปรอยู่ในช่วง 70 - 79 แล้วให้ตัวแปร Grade เก็บค่า “3” หากไม่ใช่ให้

เช็คเงื่อนไขต่อไป

- หากค่าตัวแปรอยู่ในช่วง 80 - 100 แล้วให้ตัวแปร Grade เก็บค่า “4” หากไม่ใช่ให้

เช็คเงื่อนไขต่อไป

- หากค่าตัวแปรเท่ากับ 999 ให้ไปทำข้อที่ 6 หากไม่ใช่ให้กลับไปทำข้อที่ 3

5. แสดงค่าในตัวแปร Grade

6. จบการทำงานของโปรแกรม

6. ผังงาน (Flow Chart)

Start

0<= score<=49

50<=score<=59

60<=score<=69

70<=score<=79

80<=score<=100

score = 999 ?

Stop

Yes

Yes

Yes

Yes

Yes

No

No

No

No

No

Yes

พิมพ์หัวโปรแกรม

คิดเกรด

พิมพ์ช่วงข้อมูลที่

ป้อนได้ ( 0 - 100 )

Score

Grade 0

Grade 1

Grade 2

Grade 3

Grade 4

Grade

A

A

B No

B

7. เขียนโปรแกรม < ด้วยภาษาซี >

#include <stdio.h>

#include <conio.h>

void main()

{

int i,score;

char grade;

while (score != 999){

clrscr();gotoxy(1,4);for(i=1;i<=80;i++) printf("-");

gotoxy(25,5);printf("program Show grade of student\n");

for(i=1;i<=80;i++) printf("-");

gotoxy(25,7);printf("Input score 0 - 100 | 999 = exit\n");

gotoxy(20,9);printf("Input your score : ");clreol();scanf("%d",&score);

if(score == 999) goto exit;

if(score <= 49) grade = '0';

if (score >= 50 && score <= 59 ) grade = '1';

if (score >= 60 && score <= 69 ) grade = '2';

if (score >= 70 && score <= 79 ) grade = '3';

if (score >= 80 && score <= 100 ) grade = '4';

gotoxy(45,9);clreol();

gotoxy(45,9);printf("Your grade is ::%c\n",grade);

for(i=1;i<=80;i++) printf("-");

gotoxy(25,11);printf("Press any key to End Program\n");

for(i=1;i<=80;i++) printf("-");getch();

};

exit : }