ขั้นตอนการทำงานและรหัสจำลอง 

ขั้นตอนการพัฒนาโปรแกรมภาษาซี

1.ขั้นตอนการพัฒนาโปรแกรมภาษา C

การพัฒนาโปรแกรมภาษา C มีขั้นตอนดังนี้ 1) เขียนโปรแกรมต้นฉบับ (source program) ด้วยภาษา C ใช้โปรแกรม Turbo C/ C++ เพื่อเขียนโปรแกรมต้นฉบับด้วยภาษา C จากนั้นบันทึกโปรแกรมพร้อมกับตั้งชื่อแฟ้มไว้ แฟ้มที่ได้จะมีนามสกุล *.c หรือ *.cpp เช่น simple.c หรือ simple.cpp เป็นต้น นอกจากนี้ยังสามารถใช้โปรแกรม Turbo C/C++ เขียนโปรแกรมภาษา C++ ได้อีกด้วย 2) แปลโปรแกรมภาษา C ไปเป็นโปรแกรมภาษาเครื่อง (object program) ใช้คำสั่ง compile เพื่อแปลโปรแกรมภาษา C ไปเป็นโปรแกรมภาษาเครื่อง แฟ้มที่ได้จะมีนามสกุล *.obj ซึ่งในขั้นตอนนี้โปรแกรมต้นฉบับอาจเกิดความผิดพลาดทางไวยกรณ์ภาษา (syntax error) ขึ้นได้ จึงต้องย้อนกลับไปแก้ไขโปรแกรมต้นฉบับในข้อ 1. ให้ถูกต้องเสียก่อน 3) เชื่อมโยง (link) โปรแกรมภาษาเครื่องเข้ากับ library function ของภาษา C จะได้เป็น execute program โดยใช้คำสั่ง link แฟ้มที่ได้จะมีนามสกุล *.exe 4) สั่งให้ execute program แสดงผลลัพธ์ออกมา โดยใช้คำสั่ง run

ในขั้นตอนนี้ผู้เขียนโปรแกรม ควรตรวจสอบผลลัพธ์ที่ได้จากโปรแกรมว่าตรงกับความต้องการของเราหรือไม่ ถ้าผลลัพธ์ที่ได้ไม่ตรงกับความต้องการให้กลับไปแก้ไขโปรแกรมต้นฉบับในข้อ 1. เสร็จแล้วทำขั้นตอน ข้อ 2. ถึง ข้อ 4. ซ้ำอีก ทำซ้ำเช่นนี้จนกว่าจะได้ผลลัพธ์ที่ต้องการ

หมายเหตุ ในทางปฏิบัติ การ compile/ link/ run ในโปรแกรม Turbo C/C++ สามารถทำให้พร้อมกันทั้ง 3 ขั้นตอน คือใช้คำสั่ง Ctrl + F9 (กดปุ่ม Ctrl และปุ่ม F9 พร้อมกัน) โดยสรุปเราสามารถเขียนผังงานแสดงขั้นตอนการพัฒนาโปรแกรมภาษา C ได้ดังนี้

การเขียน Pseudocode

ซูโดโค้ด (Pseudocode) หรือ ในภาษาไทย เรียกว่า รหัสจำลอง หรือ รหัสเทียม คือ การจำลองการเขียนโปรแกรม โดยเขียนคำสั่งเป็นภาษาอะไรก็ได้ เช่น ไทย หรือ อังกฤษ ฯลฯ ที่ไม่ใช่ภาษาคอมพิวเตอร์ขั้นสูงอย่าง ภาษา C หรือ Java ซูโดโค้ดนี้จะไม่ขึ้นกับภาษาคอมพิวเตอร์ใดๆ โดยเฉพาะ ใช้อธิบายการทำงานของโปรแกรม เนื่องจากสื่อด้วยภาษาง่ายๆ อย่าง ไทย, อังกฤษ ทำให้ผู้อ่านเข้าใจได้ง่าย และตรงกัน โดยปกติแล้วมักใช้ภาษาอังกฤษ เนื่องจากสามารถแปลเป็นภาษาคอมพิวเตอร์ได้ง่าย

หลักในการเขียน Pseudocode

1. คำสั่งที่เขียนใช้ภาษาที่เข้าใจง่าย ไม่ต้องคำนึงถึงภาษาคอมพิวเตอร์ 2. ในหนึ่งบรรทัด ให้มีเพียงหนึ่งคำสั่งเท่านั้น 3. ใช้ย่อหน้าในการแสดงกลุ่มของคำสั่ง ที่เป็นคำสั่งย่อยในคำสั่งพวกเงื่อนไข เช่น if-else, while, for ฯลฯ 4. ในการเขียนแต่ละคำสั่งให้เรียงการทำงานจากบนลงล่าง และมีทางออกหรือจุดสิ้นสุดเพียงจุดเดียว 5. กลุ่มคำสั่งอาจจะเขียนรวมกันเป็นโมดุล และเวลาเรียกใช้ก็เรียกใช้ผ่านชื่อโมดุล (คล้ายกับการเรียกใช้ฟังก์ชัน)

ตัวอย่างที่ 1 จงเขียน Pseudocode จากโปรแกรมหาผลรวมของตัวเลข 2 ค่า แล้วแสดงผลรวมออกมาทางหน้าจอ 1. read x , y 2. calculate sum = x + y 3. print sum

ตัวอย่างที่ 2 จงเขียน Pseudocode จากโปรแกรมรับตัวเลข 1 ค่าแล้วตรวจสอบว่าเป็นเลขคู่หรือเลขคี่ 1. read x 2. if x % 2 = 0 <– ตรวจสอบว่าเศษจากการหาร x ด้วย 2 เท่ากับ 0 หรือไม่ 1. then 1. print “even” 2. else 1. print “odd”

ตัวอย่างที่ 3 จงเขียน Pseudocode จากโปรแกรมหาค่าเฉลี่ยของตัวเลข 10 ค่า แล้วแสดงค่าเฉลี่ยออกมาทางหน้าจอ 1. for i = 1 to 10 <– เป็นคำสั่งวนรอบจำนวน 10 รอบ 1. read num 2. calculate sum = sum + num 2. calculate mean = sum / 10 3. print mean

ตัวอย่างที่ 4 จงเขียน Pseudocode จากโปรแกรมหาค่าเฉลี่ยของตัวเลข n ค่า แล้วแสดงค่าเฉลี่ยออกมาทางหน้าจอ 1. read n 2. for i = 1 to n <– เป็นคำสั่งวนรอบจำนวน n รอบ 1. read num 2. calculate sum = sum + num 3. calculate mean = sum / n 4. print mean

ตัวอย่างที่ 5 จงเขียน Pseudocode จากโปรแกรมเปรียบเทียบตัวเลข 2 ค่า แล้วแสดงความสัมพันธ์ออกมา 1. read x , y 2. if x > y 1. then 1. print “x > y” 2. else if x < y 1. then 1. print “x < y” 2. else 1. print “x = y”

รหัสจำลอง

                      รหัสจำ ลอง (Pseudo code) เป็นเครื่องมือที่ช่วยในการแก้ปัญหาการเขียนจะเป็นคำ อธิบายที่มีโครงสร้างที่ชัด เจน ไม่ขึ้นกับภาษาใดภาษาหนึ่ง แต่สามารถเปลี่ยนเป็นภาษาทางคอมพิวเตอร์ได้ง่าย จะมีการใช้ข้อความที่เป็นภาษาอังกฤษหรือภาษาไทยก็ได้ ในการแสดงขั้นตอนการแก้ ปัญหา แต่จะมีการใช้คำ เฉพาะ(reserve words) ที่มีอยู่ในภาษาโปรแกรมมาช่วยในการ เขียน โครงของรหัสจำ ลองจึงมีส่วนที่คล้ายกับการเขียนโปรแกรมมาก ดังนั้นรหัส จำ ลองจึงเป็นเครื่องมืออีกแบบที่นิยมใช้กันมากในการออกแบบโปรแกรม
ข้อตกลงในการเขียนรหัสจำ ลอง
1. ในการอธิบายการทำ งานใช้คำ สั่งซึ่งเป็นคำ กริยาในภาษาอังกฤษ เช่น MOVE INITIALIZE READ WRITE SUBTRACT ADD DISPLAY COMPUTE เป็นต้น
2. คำ สั่งหลาย ๆ คำ สั่งรวมเรียกว่า มอดูล หรือ กระบวนการ กำ หนดชื่อให้มอดูล นั้น แล้วใช้ do นำ หน้า
3. การทำ งานใด ๆ จะเขียนคำ สั่งเป็นบรรทัด ๆ ไป เรียงเป็นลำ ดับ Statement-1 Statement-2 . . . . Statement-n
4. การทำ งานตามเงื่อนไข เป็นการทำ งานที่ เมื่อทดสอบเงื่อนไขแล้ว จะเลือก ทำ ทางใดทางหนึ่งเท่านั้น เช่น IF Condition      THEN           Statement-1      ELSE           Statement-2      ENDIF
อธิบายคำ สั่งได้ดังนี้ คำ สั่ง IF เป็นการตรวจสอบเงื่อนไข หากเงื่อนไขเป็นจริง จะทำ คำ สั่งที่ 1 แต่ หากเงื่อนไขเป็นเท็จ จะทำ คำ สั่งที่ 2
5. การวนรอบ เป็นการวนรอบซํ้าตามจำ นวนที่ต้องการ ซึ่งการวนรอบมีหลาย ลักษณะดังนี้
- REPEAT FOR วนรอบซํ้า เท่าจำ นวนรอบที่ระบุ คือรู้จำ นวนรอบที่ แน่นอน      REPEAT FOR n TIMES           Statement-1           Statement-2      ENDFOR
อธิบายคำ สั่งได้ดังนี้ คำ สั่ง FOR เป็นการวนรอบซํ้าเป็นจำ นวน n ครั้ง เพื่อทำ คำ สั่งที่ 1 คำ สั่งที่ 2
- REPEAT UNTIL วนรอบซํ้า จนกระทั่ง เงื่อนไขที่กำ หนดเป็นจริง จึง      เสร็จสิ้น           REPEAT                Statement-1                Statement-2           UNTIL condition
อธิบายคำ สั่งได้ดังนี้ คำ สั่ง REPART UNTIL เป็นการวนรอบซํ้าในขณะที่เงื่อนไขเป็นเท็จ เพื่อทำ คำ สั่งที่ 1 คำ สั่งที่ 2 แต่หากเงื่อนไขเป็นจริง ก็จบการวนซํ้า
- REPEAT WHILE วนรอบซํ้าในขณะที่เงื่อนเป็นจริง
REPEAT WHILE condition           Statement-1           Statement-2      END REPEAT
อธิบายคำ สั่งได้ดังนี้ คำ สั่ง REPART WHILE เป็นการวนรอบซํ้าในขณะที่เงื่อนไขเป็นจริงเพื่อทำ คำ สั่งที่ 1 คำ สั่งที่ 2 แต่หากเงื่อนไขเป็นเท็จก็จบการวนซํ้า ตัวอย่างการเขียน รหัสจำ ลอง 1) ให้นับจำ นวนนักศึกษาที่อายุ มากกว่า หรือเท่ากับ 18 ปี และจำ นวนนัก ศึกษาที่อายุ น้อยกว่า 18 ปี
IF student’s age >= 18          THEN AdultCounter = AdultCounter + 1          ELSE JuniorCounter = JuniorCounter + 1 ENDIF
2) ให้นับจำ นวนพนักงานหญิง และพนักงานชาย โดยนับจากข้อมูลรหัสเพศ และ ตรวจ
สอบด้วยว่าข้อมูลรหัสเพศที่ไม่ถูกต้องมีกี่คน
IF employee’s sex is female      THEN FemaleCounter = FemaleCounter + 1   ELSE IF employee’s sex is male      THEN MaleCounter = MaleCounter + 1 ELSE ErrorCounter = ErrorCounter + 1 ENDIF ENDIF
3) ให้นับจำ นวนชั่วโมงการทำ งานที่เกิน 40 ชั่วโมง IF hour worked > 40 THEN OverTimeCounter = OverTimeCounter + 1 ENDIF 4) จงเขียนรหัสจำ ลองหาพื้นที่ของวงกลม กำ หนดให้ สูตรพื้นที่วงกลม = 3.1415 x รัศมี x รัศมี      Area of cycle      Read radius      Compute Area = 3.1415 * radius * radius      Display Area      End
5) ทำ การวนรอบเพื่อพิมพ์รายชื่อลูกค้าจำ นวน 5 คน Print Heading Initialize Counter to 1 Repeat Read CustName Print CustName Increment Counter by 1 Until Counter equals 5 End
6) ทำ การวนรอบเพื่อพิมพ์ชื่อและที่อยู่ของลูกค้าจนหมดแฟ้มข้อมูล Print Heading Read CustRecord Repeat While not EndOfFile Print CustName , CustAddress Read CustRecord EndRepeat

 อ้างอิง

http://nipapon.wordpress.com/2012/08/24/%E0%B8%82%E0%B8%B1%E0%B9%89%E0%B8%99%E0%B8%95%E0%B8%AD%E0%B8%99%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%97%E0%B8%B3%E0%B8%87%E0%B8%B2%E0%B8%99%E0%B9%81%E0%B8%A5%E0%B8%B0%E0%B8%8B%E0%B8%B9%E0%B9%82%E0%B8%94/

About these ads