วันอาทิตย์ที่ 7 กรกฎาคม พ.ศ. 2556

การถ่ายทอดความคิดในการแก้ปัญหาด้วยอัลกอริทึม


  การเขียนรหัสจำลอง  (Pseudo  Code)      
คือการเขียนอัลกอริทึมโดยใช้ประโยคภาษาอังกฤษที่สื่อความหมายง่าย ๆ  สามารถอ่านแล้วเข้าใจได้โดยทันที     แต่ก็สามารถใช้รูปแบบที่เป็นภาษาพูดด้วยภาษาไทยและภาษา
อังกฤษก็ได้
โครงสร้างของรหัสจำลองเริ่มต้นด้วยข้อความ Begin   แล้วอธิบายขั้นตอนการทำงานโดยใช้คำสั่งต่าง ๆ ที่ใกล้เคียงกับภาษาคอมพิวเตอร์ในการเขียนโปรแกรม เช่น
คำสั่ง  read    หมายถึง  การอ่านค่าหรือรับค่าข้อมูลตัวแปรตามที่กำหนดไว้
คำสั่ง  print    หมายถึง  การแสดงผลลัพธ์ที่ได้จากการคำนวณ
และพิมพ์ข้อความ End  เมื่อจบการทำงาน
 
            การเขียนรหัสจำลองจะต้องมีการวางแผนสำหรับการอ้างอิงถึงข้อมูลที่จะต้องนำไปใช้ภายในโปรแกรมด้วย
การสร้างตัวแปร   โดยใช้เครื่องหมายเท่ากับ  (= )  แทนการกำหนดค่าตัวแปร

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

ข้อตกลงในการเขียนรหัสจำ ลอง
1. ในการอธิบายการทำ งานใช้คำ สั่งซึ่งเป็นคำ กริยาในภาษาอังกฤษ เช่น MOVEINITIALIZE READ WRITE SUBTRACT ADD DISPLAY COMPUTEเป็นต้น
2. คำ สั่งหลาย ๆ คำ สั่งรวมเรียกว่า มอดูล หรือ กระบวนการ กำ หนดชื่อให้มอดูลนั้น แล้วใช้ do นำ หน้า
3. การทำ งานใด ๆ จะเขียนคำ สั่งเป็นบรรทัด ๆ ไป เรียงเป็นลำ ดับStatement-1Statement-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 + 1ENDIF
2) ให้นับจำ นวนพนักงานหญิง และพนักงานชาย โดยนับจากข้อมูลรหัสเพศ และ ตรวจ
สอบด้วยว่าข้อมูลรหัสเพศที่ไม่ถูกต้องมีกี่คน
  IF employee’s sex is female     THEN FemaleCounter = FemaleCounter + 1  ELSE IF employee’s sex is male     THEN MaleCounter = MaleCounter + 1ELSE ErrorCounter = ErrorCounter + 1ENDIFENDIF
3) ให้นับจำ นวนชั่วโมงการทำ งานที่เกิน 40 ชั่วโมงIF hour worked > 40THEN OverTimeCounter = OverTimeCounter + 1ENDIF4) จงเขียนรหัสจำ ลองหาพื้นที่ของวงกลมกำ หนดให้ สูตรพื้นที่วงกลม = 3.1415 x รัศมี x รัศมี     Area of cycle     Read radius     Compute Area = 3.1415 * radius * radius     Display Area     End
5) ทำ การวนรอบเพื่อพิมพ์รายชื่อลูกค้าจำ นวน 5 คนPrint HeadingInitialize Counter to 1RepeatRead CustNamePrint CustNameIncrement Counter by 1Until Counter equals 5End

6) ทำ การวนรอบเพื่อพิมพ์ชื่อและที่อยู่ของลูกค้าจนหมดแฟ้มข้อมูลPrint HeadingRead CustRecordRepeat While not EndOfFilePrint CustName , CustAddressRead CustRecordEndRepeat    

ผังงานระบบ (System Flowchart)
            จะแสดงภาพรวมของระบบ เน้นแสดงเฉพาะสื่อที่ทำหน้าที่นำข้อมูลเข้าและออก โดยจะไม่แสดงถึงรายละเอียดวิธีการประมวลผล ซึ่งจะนำไปแสดงไว้ในส่วนของผังงานโปรแกรมแทน


วิธีการเขียนผังงานที่ดี

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



 

 


ไม่มีความคิดเห็น:

แสดงความคิดเห็น