บทที่1 ขั้นตอนวิเคราะห์ปัญหาการเขียนโปรแกรม

ขั้นตอนวิธีวิเคราะห์ปัญหาการเขียนโปรแกรม
1.ขั้นตอนการเขียนโปรแกรม
      ขั้นตอนที่สำคัญก่อนการเขียนโปรแกรมคอมพิวเตอร์ ผู้เขียนโปรแกรมหรือเรียกกันว่า “โปรแกรมเมอร์” ควรปฏิบัติขั้นตอนพื้นฐาน ดังนี้
            1.กำหนดขอบเขตของปัญหา
        เป็นขั้นตอนแรกที่สำคัญ ต้องกำหนดว่าสิ่งที่ต้องการคืออะไร อะไรเป็นต้นเหตุของปัญหาเกี่ยวข้องกับอะไร ต้องมีข้อมูลนำเข้าอะไรบ้าง ที่จะทำให้เกิดผลลัพธ์ตามต้องการ
            2.การพัฒนาลำดับขั้นตอนการทำงานเพื่อแก้ปัญหา
        คือ รวบรวมรายละเอียดของปัญหา วิธีที่ใช้สำหรับในการแก้ปัญหา
            3.การออกแบบโปรแกรม
        เป็นขั้นตอนที่โปรแกรมเมอร์จะต้องทำการวางแผนก่อนการเขียนโปรแกรม โดยใช้ผังงาน(Flowchart) ช่วยแสดงลำดับขึ้นตอนการทำงานของโปรแกรม เพื่อช่วยลดเวลาการประมวลผล
            4.เขียนโปรแกรม
     ขั้นตอนนี้คือนำผังงานขั้นตอน มาดำเนินการเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ เรียกว่า “ซอร์สโคด” (Source Code)
                5.การคอมไพล์โปรแกรม
        คือการนำซอร์สโคดที่เขียนด้วยภาษาคอมพิวเตอร์มาทำการแปลหรือการคอมไพล์ ให้เป็นภาษาเครื่องที่คอมพิวเตอร์สามารถเข้าใจได้
            6.การทดสอบโปรแกรม
     หลังจากการคอมไพล์เรียบร้อย นำโปรแกรมไปทดสอบการใช้ หากมีข้อผิดพลาด แก้ไขให้ถูกต้อง ก่อนนำไปใช้งานจริง
            7.การจัดทำเอกสารประกอบโปรแกรม
     เพื่อช่วยอธิบายถึงขึ้นตอนการใช้โปรแกรมบอกแนวทางการแก้ไขหากพบข้อผิดพลาด

2.กระบวนการทำงานในหน่วยความจำคอมพิวเตอร์
         จากโครงสร้างใหญ่ ๆ ของคอมพิวเตอร์ประกอบขึ้นด้วย หน่วย คือ หน่วยรับข้อมูล (Input Unit) หน่วยความจำ (Memory Unit) หน่วยคำนวณ (Arithmetic Unit) หน่วยควบคุม (Control Unit) และ หน่วยแสดงผล (Output Unit) สามารถอธิบายแต่ละหน่วยได้ ดังนี้
       -  หน่วยรับข้อมูล (Input Unit) เป็นหน่วยที่ใช้รับงาน เช่น อ่านโปรแกรมหรือข้อมูลเข้าไปยังคอมพิวเตอร์ หากจะเปรียบเทียบกับมนุษย์ก็คือส่วนที่เป็นตา หรือ หู ตัวอย่างอุปกรณ์ที่ใช้เป็นหน่วยรับข้อมูล คือ คีย์บอร์ด หรือแป้นพิมพ์ เพื่อพิมพ์ข้อความหรือโปรแกรมเข้าเครื่อง เป็นต้น
        - หน่วยความจำ (Memory Unit) เป็นอุปกรณ์ที่ใช้เก็บ จำข้อมูล หรือโปรกรมที่อ่านเข้ามาผ่านทางหน่วยรับข้อมูล ถ้าความจำของคอมพิวเตอร์มีความจุ 32-256 K หรือมากกว่า คำว่า 1 K ในภาษาคอมพิวเตอร์มีค่าเท่ากับ 1,024 ไบต์ ฉะนั้น 32 K = 32,768 ไบต์ ขนาดของหน่วยความจำเรียกว่า “ความจุของหน่วยความจำ”
         ลักษณะโครงสร้างของหน่วยความจำจะมีลักษณะเหมือนหน้ากระดาษที่ใช้เขียน โดยแบ่งเป็นช่องสี่เหลี่ยมเล็ก ๆ เท่า ๆ กัน
    การกำหนดหมายเลข 0,1,2,3,….ตามลำดับจากซ้ายด้านบนลงมา หมายเลขนี้จะแสดงถึงตำแหน่งที่เรียกว่า “แอดเดรส”(Address) ฉะนั้น ถ้าคอมพิวเตอร์มีความจุของหน่วยความจำ 128 K หมายถึงมีหน่วยความจำจาก จนถึงแอดเดรสสุดท้ายหมายเลข128
       - หน่วยคำนวณ เป็นหน่วยที่ทำการคำนวณต่าง ๆ ตามที่โปรแกรมกำหนดในหน่วยความจำข้อมูลที่ใช้ในการคำนวณก็เอามาจากหน่วยความจำ  เปรียบได้กับสมองของมนุษย์ สำหรับมนุษย์นั้น การจำและคำนวณใช้ที่เดียวกัน คือ สมอง แต่ในคอมพิวเตอร์จะแบ่งแยกออกจากกัน
      - หน่วยแสดงผล ทำหน้าที่นำผลลัพธ์ที่ได้จากการคำนวณหรือนำเอาข่าวสารที่เก็บในหน่วยความจำแสดงออกมาภายนอกเปรียบได้กับปาก หรือมือของมนุษย์ ซึ่งทำหน้าที่แสดงสิ่งที่คิดหรือจำไว้ออกมา ตัวอย่าง ของหน่วยแสดงผล คือ “เครื่องพิมพ์” (Printer) จอภาพ(Monitor)
       - หน่วยควบคุม ทำหน้าที่ควบคุมให้การทำงานหน่วยอื่น ๆ ทั้ง หน่วยที่กล่าวมาแล้วเป็นไปโดยถูกต้อง และสัมพันธ์กัน เปรียบได้กับเส้นประสาทส่วนกลางของมนุษย์ซึ่งคอยควบคุมกลไกภายในร่วงกายทุก ๆ ส่วน หากหน่วยควบคุมของคอมพิวเตอร์ขัดข้องการทำงานก็จะผิดพลาดไป
        2.1 โปรแกรมหรือข้อมูลที่จำไว้ในหน่วยความจำ
             โปรแกรมหรือข้อมูลที่นำไปเก็บในหน่วยความจำ สามารถนำออกมาใช้ในการคำนวณ หรือส่งออกไปยังหน่วยรับข้อมูลกี่ครั้งก็ตาม โปรแกรมหรือข้อมูลจะยังคงอยู่ในหน่วยความจำ โดยไม่เปลี่ยนแปลง เปรียบได้กับเทปที่อัดเพลงไว้ จะเปิดกี่ครั้งก็ยังเป็นเพลงเดิมอยู่  จนกว่าจะนำข้อมูลใหม่ใส่เข้าไปในหน่วยความจำ
         2.2 การแสดงถึงตำแหน่งของหน่วยความจำโดยใช้สัญลักษณ์แทนแอดเดรส
              ในระยะเริ่มแรกของคอมพิวเตอร์ การเขียนโปรแกรมจำเป็นต้องรู้แอดเดรสทั้งหมดแต่คอมพิวเตอร์ในปัจจุบันไม่จำเป็น แต่ใช้วิธีการอื่นแทน เช่นตัวอย่าง ดังนี้
            -ต้องกานำเลข ไปเก็บในหน่วยความจำ ทำโดยการคิดชื่ออะไรขึ้นมาหนึ่งชื่อ สมมติให้ชื่อว่า “SIX”  หมายความว่า นำข้อมูล ไปเก็บในหน่วยความจำตำแหน่งที่มีชื่อเรียกว่า SIX ในภาษาคอมไพเลอร์จะเขียนว่า SIX = 6 คือ เก็บเลข ไว้ในตัวแปรชื่อ SIX
           2.3 การนำผลที่ได้จากการคำนวณไปเก็บในตำแหน่งใด ๆ ก็ได้
           ตัวอย่างเช่น การคำนวณ 2+3 ได้ผลลัพธ์คือ เมื่อคำนวณได้ค่าออกมาแล้ว จำเป็นที่จะต้องบอกว่าจะให้เอาไปเก็บในหน่วยความจำชื่ออะไร สามารถกำหนดชื่อตามที่ชอบได้ จากการคำนวณที่มักจะอยู่ตรงส่วนที่เรียกว่า แอคคิวมูเลตอร์(Accumulator) นั่นก็คือ นำข้อมูลในแอคคิวมูเลเตอร์ไปเก็บในหน่วยความจำ

3.ตรรกะกับเซต

          ตรรกะ(Logic) หมายถึง เหตุผลที่ใช้ในการแก้ปัญหาต่าง ๆ เกี่ยวกับการใช้คอมพิวเตอร์ตรรกะเป็นพื้นฐานเพื่อให้เข้าใจเกี่ยวกับการทำงานของคอมพิวเตอร์ เนื่องจากการทำงานของคอมพิวเตอร์จะทำงานสัมพันธ์กับความรู้ทางด้านตรรกะ

           ตัวดำเนินการ เรียกว่า “โอเปอเรเตอร์” (Operator) คือ เครื่องหมายที่ใช้สำหรับบอกการกระทำระหว่างตัวถูกดำเนินการเรียกว่า “โอเปอรเรเตอร์” (Operator) อาจเป็นการกระทำระหว่างตัวถูกดำเนินการ ตัว หรือ ตัว ขึ้นอยู่กับตัวดำเนินการ ซึ่งประกอบด้วยตัวดำเนินการในระบบคอมพิวเตอร์ ดังนี้

    1.ตัวดำเนินการทางคณิตศาสตร์
เป็นเครื่องหมายหรือสัญลักษณ์การคำนวณทางคณิตสาสตร์ +  บวก  -  ลบ    *  คูณ   /  หาร
-DIV การหารโดยคิดเฉพาะจำนวนเต็มที่ได้จากการหาร
- MOD การหารโดยคิดเฉพาะเศษที่ได้จากการหาร
ตัวอย่างตัวดำเนินการหรือนิพจน์ทางคณิศาสตร์                                                                 


               เรียก a,b,c,4,2 เป็นโอเปอแรนด์ สัญลักษณ์ +-*/ เป็นโอเปอเรเตอร์ แสดงการคูณ ลบ หาร

    2.ตัวดำเนินการทางตรรกศาสตร์
          เป็นตัวดำเนินการหรือเครื่องหมายการกระทำทางตรรกศาสตร์ประกอบด้วย โอเปอแรนด์ที่เป็นตัวแปร หรือค่าคงที่ที่เป็นตัวเลข เชื่อมกันก้วยโอเปอเรเตอร์ เช่น สัญลักษณ์แสดงความสัมพันธ์ได้แก่ การเปรียบเทียบมากกว่า น้อยกว่า เท่ากัน หรือสัญลักษณ์ทางตรรกศาสตร์ ได้แก่ AND และ” OR หรือ” NOT นิเสธ”
ตัวอย่าง ตัวดำเนินการทางตรรกศาสตร์

ค่าตัวแปร X
ค่าตัวแปร Y
NOT (X)
X  AND  Y
X   OR  Y
FALSE
FALSE
TRUE
FALSE
FALSE
FALSE
TRUE
TRUE
FALSE
TRUE
TRUE
FALSE
FALSE
FALSE
TRUE
TRUE
TRUE
FALSE
TRUE
TRUE
          
      เซต (Set) ในทางคณิตศาสตร์ ใช้ความหมายของคำว่า กลุ่ม หมู่ เหล่า กอง ฝูง ชุด และ เมื่อกล่าวถึงเซตของสิ่งใด ๆ จะรู้ได้ทันทีว่าในเซตนั้นมีอะไรบ้าง เรียกสิ่งที่อยู่ในเซตว่า “สมาชิก” 

4.ตรรกะกับการแก้โจทย์ปัญหาด้วยคอมพิวเตอร์
    การแก้โจทย์ปัญหาด้วยคอมพิวเตอร์ คือการนำขั้นตอนการเขียนโปรแกรม
ขั้นตอนที่ การกำหนดขอบเขตปัญหา 
ขั้นตอนที่ การพัฒนาลำดับขั้นตอนการทำงานเพื่อแก้ปัญหา 
ขั้นตอนที่ การออกแบบโปรแกรม มาประยุกต์ใช้เพื่อให้นักเรียนได้รับการฝึกฝนให้มีกระบวนการแก้ปัญหาโจทย์ทางคอมพิวเตอร์อย่างมีระบบด้วยการวิเคราะห์และออกแบบเพื่อนำไปพัฒนา หรือเขียนโปรแกรมภาษาต่อไป
       4.1 หลักเกณฑ์การแก้ปัญหาโจทย์ด้วยคอมพิวเตอร์
          การแก้ปัญหาโจทย์ด้วยคอมพิวเตอร์ นับว่าเป็นหัวใจสำคัญของการเขียนโปรแกรม เพื่อสั่งให้คอมพิวเตอร์ทำงาน ซึ่งมีหลักเกณฑ์การแก้ปัญหาโจทย์ด้วยคอมพิวเตอร์ ข้อ ดังต่อไปนี้
           1.สิ่งที่โจทย์ต้องการ
           เป็นขั้นตอนที่จะต้องทำการวิเคราะห์ปัญหาจากโจทย์ของงานนั้น ๆ สิ่งที่โจทย์ต้องการ คือ อะไร ซึ่งความต้องการของโจทย์อาจมีมากกว่าหนึ่งอย่างก็ได้  และควรเขียนให้ชัดเจนเป็นข้อ ๆ ว่างานที่ต้องการให้คอมพิวเตอร์ทำมีอะไรบ้าง เช่น การหาผลรวมของตัวเลขตั้งแต่1 –100 หรือ จากคำนวณหา เกรดเฉลี่ยของคะแนน หรือคำนวณหาเงินเดินของพนักงาน เป็นต้น
         2.รูปแบบของผลลัพธ์ที่ต้องการ
           วิเคราะห์รูปแบบของรวยงานที่ต้องการให้คอมพิวเตอร์แสดงออกมา มีรายละเอียดอย่างไรบ้าง มีรูปแบบอย่างไร จะต้องวางแผนเพื่อที่จะออกรายงานก่อนแล้วนำข้อมูลอะไรเข้าเครื่องคอมพิวเตอร์ จึงจะได้รายงานตามต้องการ ตัวอย่างของผลลัพธ์ที่ต้องการแสดงรายงาน มี  3 ส่วน คือ


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


         5.วิธีการประมวลผล
        เป็นขั้นตอนวิธีการประมวลผลเพื่อแสดงลำดับการทำงานก่อนหลัง เพื่อให้ได้ผลลัพธ์ตามที่ต้องการ ซึ่งผู้เขียนโปรแกรมจะต้องรู้ถึงการทำงานตั้งแต่การรับข้อมูล การประมวลผล และการแสดงผลลัพธ์ออกมาตามที่ออกแบบไว้ ตัวอย่างขึ้นตอนวิธีการประมวลผล หาค่าผลรวมของเลข 1-100 โดยสามารถเขียนลำดับขั้นตอนการทำงานได้ ส่วน ดังนี้
          -เริ่มจากการรับข้อมูล
                ขั้นที่ กำหนดค่าผลรวมให้เป็น เช่น (Sum = 0)
                     ขั้นที่ อ่านค่าตัวแปร X
             -การประมวลผล
                ขั้นที่ คำนวณผลรวม Sum = Sum + X
                     ขึ้นที่ ตรวจสอบเงื่อนไขว่า X = 100 หรือยัง
           -การแสดงผลลัพธ์
                ขั้นที่ ถ้าครบ พิมพ์ค่าผลรวม “Sum of 1-100 =” , Sum
                     ขั้นที่ จบการทำงาน

ตัวอย่าง สำนักงานบัญชีแห่งหนึ่ง ต้องการหาจำนวนเงินเดือนของพนักงานแต่ละคน หลังหักภาษีและเงินรวมทั้งหมดที่บริษัทต้องจ่าย โดยคิดภาษีของพนักงานจากเงื่อนไข ดังต่อไปนี้
                -ถ้าเงินเดือนน้อยกว่าหรือเท่ากัน 8,000 บาท ไม่ต้องเสียภาษี
                -ถ้าเงินเดือน 8,000 – 10,000 บาท คิดภาษี 10 % ของเงินเดือน
                -ถ้าเงินเดือนมากกว่า 10,000 บาท คิดภาษี 15% ของเงินเดือน
วิธีทำ
                1.สิ่งที่โจทย์ต้องการ
                                1.คำนวณเงินเดือนที่พนักงานแต่ละคนหลังหักภาษี
                                2.คำนวณเงินรวมทั้งหมดที่บริษัทต้องจ่าย
                2.รูปแบบของผลลัพธ์ที่ต้องการ
                                1.รหัสพนักงาน ชื่อพนักงาน เงินเดือน ภาษี เงินสุทธิ
                                2.เงินรวมทั้งหมดที่บริษัทจะต้องจ่าย
                3.ข้อมูลนำเข้า
                                1.รหัสพนักงาน
                                2.ชื่อพนักงาน
                                3.เงินเดือน
                 4.ตัวแปรที่ใช้
                                1.Code                  =รหัสพนักงาน
                                2.Neme                   =ชื่อพนักงาน
                                3.Salary                  =เงินเดือน
                                4.Tax                     =ภาษี
                                5.Net                     =เงินสุทธิ
                                6.Total                  =เงินรวม
                 5.วิธีการประมวลผล
                             1.กำหนดค่าของผลรวมให้เป็น 0 (Total=0)
                                2.อ่านค่า Code, Name,Salary
                                3.ถ้า       Salary   ≤ 8,000                                   Tax=0
                                                Salary   ≤ 10,000                                Tax=Salary * .10
                                                Salary  > 10,000                                 Tas=Salary * .15
                                4.Net = Salary –Tax
                                5.Total = Total + Net
                                6.พิมพ์ Name,Salary,Tax,Net
                                7.ย้อนกลับไปทำข้อ 2
                                8.พิมพ์ค่า Total
                                9.จบการทำงาน


ตัวอย่างที่ 3 จงวิเคราะห์โจทย์เพื่อหาผลรวมของเลข 1-50
วิธีทำ
              1.สิ่งที่โจทย์ต้องการ ผลรวมของเลข 1-50
              2.รูปแบบของผลลัพธ์ที่ต้องการ Sum Of 1-50 = XXXX
                   3.ข้อมูลนำเข้า ตัวเลข 1-50
                   4.ตัวแปรที่ใช้
                            1.   X =  ค่าของตัวเลข 1-50
                                      2.  Sum = ผลรวม
                5.วิธีการประมวลผล
                        1.กำหนดค่าของผลรวมให้เป็น 0 (Sum =0)
                                2.กำหนดค่า มีค่าเริ่มต้นเป็น 1 (X=1)
                                3.คำนวณผลรวม SUM = SUM + X
                                4.ตรวจสอบว่า X = 50 ให้ไปทำข้อ พิมพ์ค่าผลรวม
                        5.คำนวณเพิ่มค่า X = X + 1 (เพิ่มค่า ครั้งละ 1)
                                6.กลับไปทำข้อ คำนวณผลรวม Sum = Sum + X
                                7.ให้พิมพ์ค่าผลรวม “Sum Of 1-50=” , Sum
                                8.จบการทำงาน




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

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