SlideShare une entreprise Scribd logo
1  sur  27
1
หลักการเขียนโปรแกรม
     ในการเขียนโปรแกรมหรือพัฒนาโปรแกรมนั้น โปรแกรมเมอร์ต้องมี
การเตรียมงานเกี่ยวกับการเขียนโปรแกรมอย่างเป็นขั้นเป็นตอน วงจรการ
พัฒนาโปรแกรม (Program Development Life Cycle:PDLC) ประกอบ
ด้วย 6 ขั้นตอนดังนี้




      1. ทำาความเข้าใจและวิเคราะห์ปัญหา
      2. กำาหนดแผนการแก้ไขปัญหา
      3. เขียนโปรแกรมตามแผนที่กำาหนด
      4. ทดสอบและตรวจสอบความถูกต้อง
      5. นำาโปรแกรมทีผ่านการตรวจสอบไปใช้งาน
      6. บำารุงรักษา
1.ขั้นวิเคราะห์ความต้องการ
      การวิเคราะห์ความต้องการ เป็นการทำาความเข้าใจกับปัญหาและ
ค้นหาสิ่งที่ต้องการ นั้นคือการศึกษาวิเคราะห์โดยละเอียดว่า ต้องการ
ผลลัพธ์อะไร ต้องใช้ข้อมูลอะไรเพื่อให้ได้ผลลัพธ์ตามต้องการ และมีขั้น
ตอนการประมวลผลอย่างไรบ้าง บ้างครั้งเรียนขั้นตอนนี้ว่า กานวิเคราะห์
ปัญหาหรือการวิเคราะห์งาน เป็นขั้นตอนแรกก่อนที่จะเริมต้นเขียน
                                                     ่
โปรแกรมและถือเป็นขั้นตอนที่สำาคัญที่สุด
โดยทัวไปนิยมแบ่งวิธีวิเคราะห์งานเป็น 5 หัวข้อได้แก่
      ่
      1.1 สิ่งที่ต้องการ     เป็นการบอกให้ทราบว่างานที่ต้องการมีอะไร
บ้าง
      1.2 รูปแบบผลลัพธ์ เป็นการศึกษาถึงรูปแบบหรือลักษณะการ
แสดงผลของข้อมูล
      1.3 ข้อมูลนำาเข้า      ข้อมูลทีใช้ในการประมวลผลมีอะไรบ้าง
                                     ่
      1.4 ตัวแปรที่ใช้       บอกว่าใช้ตัวแปรอะไรแทนข้อมูลนำาเข้า หรือ
แทนค่าที่อยูระหว่างการ
              ่
                         ประมวลผล ตลอดจนตัวแปรที่ใช้แสดงผล
2
      1.5 วิธีการประมวลผล เป็นขั้นตอนของคำาสั่งที่ผู้เขียนโปรแกรมจะ
ต้องเรียงลำาดับ การทำางานของ
                      โปรแกรม และการนำาตัวแปรมาแทนค่าเพื่อให้ได้
ผลลัพธ์ทถูกต้อง
           ี่
ตัวอย่างการวิเคราะห์ความต้องการ
ตัวอย่างที่ 1 จงแก้ปัญหาเพื่อหาพื้นที่ของรูปสามเหลียมด้านเท่า โดยรับ
                                                   ่
ค่าความกว้างและความสูงจากผู้ใช้ทางแป้นพิมพ์
      สิ่งที่ต้องการ
      - พื้นที่ของรูปสามเหลี่ยม
     - รับค่าความกว้างและความสูงของรูปสามเหลียมทางแป้นพิมพ์
                                             ่
     รูปแบบของผลลัพธ์
     - แสดงผลลัพธ์ของพื้นที่รปสามเหลี่ยมเป็นตัวเลข
                             ู
     ข้อมูลนำาเข้า
     - ค่าความกว้างของรูปสามเหลี่ยม(ฐาน)

     - ค่าความสูงของรูปสามเหลียม
                              ่
     ตัวแปรที่ใช้
     - B แทนความกว้างของรูปสามเหลียม(ฐาน)
                                  ่
     -   H แทนความสูงของรูปสามเหลี่ยม
     วิธีการประมวลผล
     1. เริ่มต้น
     2. รับค่า B
     3. รับค่า H
     4. คำานวณค่าของพื้นที่สามเหลียมจากสูตร 0.5 x B x H
                                  ่
     5. แสดงค่าตอบ จบการทำางาน

2. กำาหนดแผนในการแก้ไขปัญหา เมื่อทำาความเข้าใจและวิเคราะห์
ปัญหาโจทย์จนได้ข้อสรุปว่าโจทย์ต้องการอะไรแล้ว ก็ทำาการกำาหนดแผน
ในการแก้ไขปัญหาโดยการเขียนผังงาน (Flowchart) การเขียนผังงานคือ
การเขียนแผนภาพที่เป็นลำาดับ เพื่อแสดงขั้นตอนการทำางานทำาความ
เข้าใจการเขียนผังงานมี 3 แบบ คือ แบบเรียงลำาดับ (Sequential) แบบ
กำาหนดเงื่อนไข (Condition) และมีแบบการทำางานวนรอบ (Looping)
สัญลักษณ์ของผังงาน (Flowchart Symbol) มีดังนี้
3

                            จุดเริ่มต้นหรือจุดสิ้นสุด
ทิศทางการทำางาน


                                  รับข้อมูลเข้าจากคีย์บอร์ด           จุ   ด
เชื่อมต่อภายในหน้าเดียวกัน


                                  การคำานวณหรือประมวลผล         จุดเชื่อมต่อ
ไปหน้าอื่น


                                  การรับข้อมูลและแสดงผล


                            การตัดสินใจหรือทางเลือก


                            ใช้แสดงผลข้อมูลออกทางเอกสาร




                            แสดงผลข้อมูลออกทางจอภาพ

ประเภทของผังงาน
1. ก า ร เ ขี ย น ผั ง ง า น แ บ บ เ รี ย ง ลำา ดั บ (Sequential Connection)
กิจกรรมต่างๆจะวางลำาดับโดยยึดหลักจากบนลงล่างหรือ จากซ้ายไปขวา

   กิ จ ก ร ร ม ที่ 1              ใ ส่ ข้ อ มู ล . . . . . .



   กิ จ ก ร ร ม ที่ 2              ป ระม วล ผ ล



   กิ จ ก ร ร ม ที่ 3             แ ส ด ง ผ ล ลั พ ธ์




                        รูปแสดงความสัมพันธ์แบบตามลำาดับ
4
2.การเขียนผังงานแบบมีเงื่อนไข
      2.1 แบบเงื่อนไขเดียว (Single Selection) จะตรวจสอยเงื่อนไข ถ้า
เงื่อนไขเป็นจริง (true) ก็จะไปทำากิจกรรมแล้วออกจากโครงสร้าง ถ้า
เงื่อนไขเป็นเท็จ(False) ก็จะออกจากโครงสร้าง



                         จ ริ ง
     เ งื่ อ น ไ ข                      กิ จ ก ร ร ม

  เ ท็ จ


       2.2 แบบสองเงื่อนไข (Double Selection) จะตรวจสองเงื่อนไขถ้า
เงื่อ นไขเป็น จริง ก็จ ะทำา กิ จกรรมที่ 1 แล้ว ออกจากโครงสร้า ง ถ้า เงื่ อนไข
เป็นเท็จก็จะทำากิจกรรมที่ 2 แล้วออกจากโครงสร้าง



                     จ ริ ง                            เ ท็ จ
                                  เ งื่ อ น ไ ข

     กิ จ ก ร ร ม                                               กิ จ ก ร ร ม




       2.3 การเขียนผังงานแบบหลายทางเลือก (Multi – Selection)
              2.3.1 แบบใช้ ใ ช้ โ ครงสร้ าง If / else if / else เป็น แบบตรวจ
สอยเงื่อนไขหลายชั้น การตรวจสอบแต่ละชั้นจะได้ผลการตรวจสอบเช่น
เดี ย วกั บ แบบสองเงื่ อ นไข ทำา ให้ ผ ลโดยรวมของโครงสร้ า งนี้ มี ท างออก
หลายทาง(มากกว่า 2 ทาง)ตัวอย่าง




          2.3.2 แบบโครงสร้ า ง case or switch เป็ น โครงสร้ า งตรวจ
สอบเงื่อนไขว่าตัวแปรตรวจสอบค่าตรงกับค่า (Value) ใด ซึ่งค่าดังกล่าว
5
จะเป็นตัวบ่งชี้กรณีที่ต้องการผังงานดังกล่าวสามารถเสนอได้ 2 รูปแบบ
คือ

                                       จ ริ ง
                    C ase1                            กิ จ ก ร ร ม                 กิ จ ก ร ร ม
                              เ ท็ จ
                                       จ ริ ง
                    C ase2                            กิ จ ก ร ร ม                 กิ จ ก ร ร ม

                           เ ท็ จ



                                       จ ริ ง
                   C a s e ..n                        กิ จ ก ร ร ม                 กิ จ ก ร ร ม
                           เ ท็ จ

                   กิ จ ก ร ร ม



  ผังงาน Multi Select แบบ case หรือ switch ที่แยกสัญลักษณ์
                          เงื่อนไข



                                                              C ase?
                                                                        o th e r

              1                                   2                                3                             4

    กิ จ ก ร ร ม                       กิ จ ก ร ร ม                    กิ จ ก ร ร ม               กิ จ ก ร ร ม




         ผังงานแบบ case หรือ switch ที่รวมสัญลักษณ์เงื่อนไข
3. การเขียนผังงานแบบวนรอบหรือทำา ซำ้า คือการวนเป็นรอบๆโดยทำา
กิจกรรมเดิมซำ้า อีก อาจจะเรียกว่าการวนลูปซึ่งมีโครงสร้างการควบคุมได้
หลายรูปแบบดังนี้
        3.1 While..Structure ลั ก ษณะโครงสร้ า งการควบคุ ม จะตรวจสอบ
เงื่ อ นไขสิ้ น สุ ด การวนซำ้า ก่ อ น ถ้ า ผลการตรวจสอบยั ง ไม่ สิ้ น สุ ด ก็ จ ะทำา
กิจกรรมนั้นซำ้าต่อไปเรื่อยๆ
6


                                 จ ริ ง
       เ งื่ อ น ไ ข                              กิ จ ก ร ร ม

   เ ท็ จ

     3.2 do / while...Structure ลักษณะโครงสร้างการควบคุมจะกระทำา
กิจกรรมครั้งแรกก่อนเสมอ แล้วจึงตรวจสอบเงื่อนไขสิ้นสุดการทำา ซำ้า ถ้า
ผลการตรวจสอบยังไม่สิ้นสุดก็จะกลับไปทำากิจกรรมเดิมซำ้าอีก
      กิ จ ก ร ร ม



                                จ ริ ง
        C ase?

  เ ท็ จ

     3.3 for... Structure ลักษณะโครงสร้างการควบคุมเป็นการวนซำ้าที่รู้
จำานวนรอบแน่นอน โดยมีการกำา หนดค่าเริ่มต้นค่าสิ้นสุดของตัวแรนับรอบ
และตรวจสอบเงื่อนไขการวนซำ้า และกำาหนดค่าการเปลี่ยนแปลงแต่ละรอบ


        ค่ า เ ริ่ ม ต้ น
  ข อ ง ตั ว แ ป ร นั บ ร อ บ




                                   จ ริ ง   กิ จ ก ร ร ม ต่ า ง ๆ ภ า ย ใ น
       เ งื่ อ น ไ ข                                 ก า ร ว น ซำ้า

     เ ท็ จ
                                            เ พิ่ ม ค่ า ห รื อ ล ด ค่ า ตั ว
                                                    แ ป ร นั บ ร อ บ




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

ตัวอย่างผังงานของภาษาซี
                       s ta rt            .........................................................
                                          .........................................................
                                          .........................................................
                    S o u rce C o d e
                                          .........................................................
                 * .c p p                 .........................................................
    A lt + F 9         C o m p ile        .........................................................
                                          .........................................................
                 * .o b j
                                          .........................................................
                           L in k         .........................................................
                                          .........................................................
                                      Yes .........................................................
                          E rro r         .........................................................
                                          .........................................................
                 * .e x e
                                          .........................................................
    C t r l+ F 9            Run           .........................................................
                                          .........................................................
                                      Yes .........................................................
                           E rro r        .........................................................
                                          .........................................................
                                          .........................................................
                            End           .........................................................
                                          .........................................................
ตัวอย่างการเขียนผังงานการหาพื้นที.........................................................
                                          ่สามเหลียม   ่
                                          .........................................................
8
           s ta rt                       1. เริ่มต้นการทำางาน
                                         2. รับค่าฐาน
                                         3. รับค่าสูง
         รั บ ค่ า ฐ า น
                                         ٤. ประมวลผลจากสูตรหา
                                         พื้นที่
         รั บ ค่ า สู ง                  ٥. แสดงคำาตอบ
                                         ٦. จบการทำางาน
   1 / 2 * ฐ า น * สู ง



     แ ส ด ง คำา ต อ บ



            End

ตัวอย่างการเขียนผังงานแบบมีเงื่อนไขโดยถ้าอายุ 1 – 30 ปีแสดงผลว่า
อยู่ในวัยหนุ่มสาว ถ้าเกินแสดงว่ามีอายุมาก
           s ta rt                  1. เริ่มต้นการทำางาน
                                    2. รับค่าตัวแปร Old มาเก็บไว้
                                    3. ตรวจสอบเงื่อนไขว่าอายอยูใน ่
            O ld                    ช่วง 1- 30 ปีหรือไม่
                                    4. ถ้าใช้แสดงผลว่า You are young
                                    5. ถ้าไม่แสดงผลว่า You are old
      O ld < = 3 0
                   No               6. แสดงข้อความ thank you
                                    7. จบการทำางาน
                  Yes

     Y o u a re Y o u n g   Y o u a r e o ld




       Thank You




           End



แบบฝึกหัด
1. เขียนผังงานของการตัดเกรดโดยมีคะแนนดังนี้
100 - 80 เกรด A
9
79 - 70 เกรด B
69 - 60 เกรด C
50 – 59 เกรด D
49 – 0 เกรด F
มากกว่า 100 น้อยกว่า 0 แสดงผลว่า Error
2. เขียนผังงานการทอดไข่เจียว

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

4. ขั้นทดสอบและแก้ไขโปรแกรม
      เป็นการตรวจสอบจุดผิดพลาดของโปรแกรม(Bugs) ทีเขียนขึ้น และ
                                                          ่
ดำาเนินการแก้ไขข้อผิดพลาดนั้น(Debugs) โปรแกรมที่ทำางานไม่ได้ตาม
วัตถุประสงค์ เราเรียกว่า โปรแกรมมีการ Error เกิดขึ้น Error การ Error มี
2 สาเหตุหลัก คือ
      4.1 ข้อผิดพลาดทางไวยากรณ์ของภาษา (Syntax Error) คือ ข้อ
ผิดพลาดทีเกิดจากการเขียนโค้ดคำาสั่ง (Source Code) ไม่ตรงกับ
ไวยากรณ์ของภาษานั้นๆ โดยส่วนใหญ่แล้วตัวแปลภาษาจะเป็นตัวแสดง
ผลแจ้งให้รู้
      4.2 ข้อผิดพลาดที่เกิดจากการตีความหมายของปัญหาผิด (Logical
Error) เป็นข้อผิดพลาดที่เกิดจากการวิเคราะห์งานหรือเขียนผังงานที่ผิด
เช่น ต้องการนำาค่า A บวก B แต่เขียนเครื่องหมายเป็นลบ ทำาให้ค่าที่
คำานวณออกมาไม่ถูกต้อง วิธีการแก้ไขคือทำาการไล่โปรแกรมที่ละคำาสั่ง

5.ขั้นตอนการเขียนเอกสารประกอบ
      หลักการทดสอบโปรแกรมผ่านแล้ว ควรทำาเอกสารประกอบการใช้
งานโปรแกรมด้วย โดยรวมเป็นการอธิบายรายละเอียดของโปรแกรมว่าจุด
ประสงค์ของโปรแกรมคืออะไร มีขั้นตอนการทำางานของโปรแกรมอย่าไร
เอกสารประกอบการใช้งานโดยทั่วไปจะมี 2 รูปแบบ คือ
      5.1 คู่มือผู้ใช้(Users Manual) คู่มือนี้เน้นเรื่องการใช้งานโปรแกรม
เป็นหลัก เช่น โปรแกรมนี้ใช้ทำาอะไร วิธีเปิดโปรแกรม วิธีป้อนข้อมูล
      5.2 คู่มือโปรแกรมเมอร์ (Programmers Manual) คู่มือนี้จะอธิบาย
รายละเอียดต่างๆเกี่ยวกับชื่อโปรแกรมส่วนหลัก โปรแกรมแกรมย่อย แต่ละ
10
โปรแกรมย่อมมีหน้าที่อย่างไร คู่มือนี้จะมีประโยชน์ต่อการปรับปรุงแก้ไข
โปรแกรมในอนาคต

                     ความรู้เบื้องต้นเกี่ยวกับภาษาซี
      การที่จะใช้คอมพิวเตอร์ช่วยงานให้ได้ประสิทธิภาพเพียงใดนั้น ย่อม
ขึ้นอยู่กับปัจจัยหลัก ได้แก่ ความเหมาะสมทางด้านคอมพิวเตอร์ฮาร์ดแวร์
กับคอมพิวเตอร์ซอฟท์แวร์ วิทยาการทั้งสองด้านได้มีการพัฒนาอย่างต่อ
เนื่องทั้งทางด้านฮาร์ดแวร์ได้แก่เครื่องคอมพิวเตอร์และอุปกรณ์ในระบบ ที่
ต้องอาศัยค่าใช้จ่ายค่อนข้างสูงและระยะเวลาในการวิจัยพัฒนา ส่วนทาง
ด้านซอฟแวร์ได้แก่ ภาษาคอมพิวเตอร์ ซึ่งก็เป็นเครื่องมืออีกอย่างหนึ่งใน
การพัฒนาระบบคอมพิวเตอร์ให้ทำางานอย่างมีประสิทธิภาพด้วยเหมือนกัน
      ภาษาคอมพิวเตอร์เป็นผลจากการพัฒนาทางด้านคอมพิวเตอร์ที่
กระทำามาอย่างต่อเนื่อง ภาษาซี(C Language) เป็นอีกภาษาหนึ่งทีได้่
พัฒนาขึ้นครังแรกเพื่อใช้เป็นภาษาในการพัฒนาระบบยูนิกส์ (UNIX
              ้
Operating system) แทนที่ภาษาแอสเซมบลี ซึ่งเป็นภาษาระดับตำ่าที่
สามารถกระทำากับระบบฮาร์ดแวร์ได้ด้วยความรวดเร็ว แต่จุดอ่อนของภาษา
แอสเซมบลี้ก็คือมีความยุงยากในการใช้งานและมีความแตกต่างกันไป
                          ่
เฉพาะแต่ละเครื่อง เดนนิส ริตชี (Dennis Ritchie) จึงได้คิดค้นพัฒนา
ภาษาใหม่ขึ้นมา โดยการรวบรวมเอาจุดเด่นของภาษาระดับสูงมาผนวกเข้า
กับภาษาระดับตำ่า โดยเรียกชื่อว่า ภาษาซี
      ปัจจุบันภาษาซี ได้รับความนิยมอย่างแพร่หลาย เนื่องจากความ
สามารถ ความกะทัดรัดและคุณสมบัติอื่นๆอีกหลายประการซึงพิสูจน์ให้
                                                         ่
เห็นว่าภาษาซีเหมาะสำาหรับการเขียนโปรแกรมประยุกต์กับงานต่างๆ

พัฒนาการของภาษาซี
     เดนนิส ริตชี แห่งศูนย์วิจัยเบลล์ (Bell Laboratory) มลรัฐนิวเจอร์ซี
สหรัฐอเมริกา พัฒนาภาษาซีขึ้นในปี พ.ศ. 2515 โดยได้รับแนวความคิด
มาจากภาษาบี (B Language) ีีีพัฒนาโดย เคน ทอมสัน (Ken
                                 ่
Thomson) ในปี พ.ศ. 2513 ลำาดับขั้นของการพัฒนาภาษาซีมีดังนี้
                       Algol 60
     คิดค้นโดยองค์การ International Committee ปี

        CPL (Comined Programming Language)
     พัฒนาโดยมหาวิทยาลัย Cambridge ปี พ.ศ. 2
          BCPL(Basic Comined Programming
                     Language)
                         B
           พัฒนาโดย Ken Thomson แห่ง Bell
11


                         C
     พัฒนาโดย Dennis Richie แห่ง Bell Laboratory



คุณสมบัติเด่นของภาษาซี
         เนื่องจากภาษาซีเป็นภาษาคอมพิวเตอร์ที่ไม่ขึ้นอยู่กับโปรแกรมจัด
ระบบงาน (OS – Operating System) หรือขึ้นอยู่กับตัวเครื่อง แต่ภาษาซี
สามารถกระทำาโดยตรงกับตัวเครื่อง โดยมีรูปแบบของภาษาเหมือนกับ
ภาษาระดับสูงทั่วไป จึงจัดภาษาซีไว้เป็นภาษาระดับกลาง (Middel –
Level Language)
         รูปแบบของภาษาซีจะอาศัยหลักการของโปรแกรมโมดูล (Module)
ซึ่งมีรปแบบของไวยกรณ์ภาษา (Syntex) ทีแน่นอน สามารถนำามา
       ู                                    ่
ประยุกต์เข้ากับงานต่างๆได้ง่าย จึงจัดว่าเป็นภาษาที่มีโครงสร้าง
(Structured Language) เช่นเดียวกับภาษา Pascal ซึ่งแตกต่างจาก
ภาษาระดับสูงอื่นที่ไม่เป็นโครงสร้าง เช่น BASIC, FORTRAN
         หลักเกณฑ์พื้นฐานที่สำาคัญของภาษาโครงสร้าง ประกอบด้วย 3 ส่วน
ได้แก่การทำาตามลำาดับคำาสั่ง (Sequencing) การกำาหนดทางเลือก
(Selection) และการทำาซำ้า (Iteration) ความแตกต่างระหว่างภาษาที่เป็น
โครงสร้างกับภาษาที่ไม่เป็นโครงสร้างจะอยู่ที่ส่วนที่ 2 และ 3 ในส่วนแรก
นั้นการเขียนโปรแกรมทุกๆภาษาจะยึดหลักทำาตามลำาดับคำาสั่งเช่นเดียวกัน
ส่วนที่ 2 และส่วนที่ 3 ภาษาที่เป็นโครงสร้างจะมีคำาสั่งให้เลือกใช้มากกว่า
ในรูปแบบที่เฉพาะตัวตามแต่เงือนไขและสถานการณ์ โดยจะหลีกเลียงการ     ่
ใช้คำาสั่ง GOTO ทีทำาให้โปรแกรมเข้าใจยาก สับสนและไม่เป็นระเบียบใน
                    ่
ลักษณะของภาษาที่ไม่เป็นโครงสร้าง
         ภาษาซีจัดเป็นภาษาที่เป็นโครงสร้าง ทีมีคำาสั่งในส่วนของการ
                                              ่
กำาหนดทางเลือกและคำาสั่งของการทำาซำ้าให้เลือกใช้หลายคำาสั่งตาม
ลักษณะงาน จึงทำาให้ภาษาซีมีความอ่อนตัว (Flexible) คือ ความสามารถ
ในการเขียนโปรแกรมได้หลายรูปแบบในการทำางานแบบเดียวกัน นอกจาก
นั้นยังมีคุณสมบัติเด่นหลายประการ เป็นต้นว่าประสิทธิภาพการทำางานของ
โปรแกรมที่ได้หลังจากการคอมไพล์ (Compile) หรือขนาดของโปรแกรม
รวมทั้งความรวดเร็วในการทำางาน จุดเด่นที่สำาคัญอีกประการหนึงได้แก
                                                               ่
ทางด้าน portability ของโปรแกรมซึ่งหมายถึง ความคล่องตัวในการโยก
ย้ายที่จะนำาโปรแกรมที่เขียนขึ้น ไปทำางานบนเครื่องคอมพิวเตอร์ระบบใดๆ
ก็ได้ โดยการแก้ไขโปรแกรมเพียงเล็กน้อยหรือไม่ต้องเปลี่ยนแปลงแก้ไข
เลย เนื่องจากโครงสร้างภาษาถูกออกแบบให้มลักษณะเป็นมาตรฐาน มี
                                                ี
ความยืดหยุ่นไม่ขึ้นอยู่กับชนิดของคอมพิวเตอร์ เนื่องจากภาษาซีได้รับ
12
ความนิยมอย่างแพร่หลายจึงมีมาตรฐานที่กำาหนดขึ้นเพื่อควบคุมชื่อว่า
ANSI (American national Standard Institute)

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

ภายในภาษาซี ได้รวบรวมโปรแกรมต่างๆเพื่ออำานวยความสะดวก
สำาหรับผูใช้ประกอบด้วย
          ้
      1. โปรแกรม Editor สำาหรับเขียน สร้างหรือแก้ไขโปรแกรมภาษาซี
ให้เป็น Source File
      2. โปรแกรม Compile สำาหรับแปลงภาษาซีจาก Source File ให้
เป็น Object File ซึ่งเป็นรหัสภาษาเครื่อง
      3. โปรแกรม Linker สำาหรับ Link ตัว Object File กับ Library Files
ให้เป็น Executable File (.EXE File) ทีสามารถใช้งานกับดอส
                                       ่

พิจารณาจากโปรแกรมภาษาซี
#include <stdio.h>
main()
{
     printf(“C Language”);
}
     เมื่อ Run โปรแกรม โดยการกด Ctrl F9 เครื่ องจะทำา การ Compile
โปรแกรมจาก Source File ให้ เ ป็ น Object File จากนั้ น ทำา การ Link กั บ
ไฟล์ Libary โดยอัตโนมัติ ผลลัพธ์จะเป็น Executable File สามารถเรียก
ดูผลลัพธ์ได้โดยการกด Alt F5

#include <stdio.h> เป็นส่วนประมวลผลก่อนของโปรแกรม ในที่นี้
เ ป็ น ก า ร สั่ ง ใ ห้ C Compile นำา ไ พ ล์ อิ น พุ ท แ ล ะ เ อ า ท์ พุ ท ม า ต ร ฐ า น
(Standard Input Output) นำา มารวมกับฟังก์ชันหรือคำา สั่งในโปรแกรมที่
เขียนขึ้น
main()                      เป็นฟังก์ชันแรกของภาษาที่ต้องเริ่มต้นด้วยฟังก์ชัน
main() ทุกโปรแกรม
13
printf(“C Language”); เป็ น คำา สั่ ง ในภาษาซี ที่ เ ขี ย นอยู่ ใ นบล็ อ ค
โดยมีวงเล็บปีกกา { } เป็นตัวกำา หนดขนาดของบล็อก ส่วน printf หมาย
ถึงให้พิมพ์ ข้อความที่กำาหนดภายในวงเล็บ
จากโปรแกรม จะเห็นว่าโปรแกรมประกอบด้วย 3 ส่วนด้วยกัน คือ
#include <stdio.h>                             #Header
main()                                    main()
{
      printf(“C Language”);                    Function()
}

1. #Header ไพล์ เ ฮดเดอร์ (#Header) เป็ น ส่ ว นแรกของโปรแกรม
ภาษาซีที่กำาหนดไว้ก่อนที่จะมีการประมวลผลในโปรแกรมเพื่ออ้างถึงไฟล์
บางไฟล์ที่ไม่มีอยู่ใยโปรแกรมที่เขียนขึ้น โดยที่จะต้องนำา เฮดเดอร์ไฟล์ที่
เขียนขึ้นในโปรแกรมในการคอมไพล์ ดังนั้น โปรแกรมภาษาซีจึงประกอบ
ด้ วยคำา สั่ งหรือไฟล์ที่ เขี ยนขึ้น เองส่ วนหนึ่ง และอีก ส่ว นหนึ่ง ได้ แก่ ไ ฟล์ ที่
เขียนขึ้นจากไดเร็กทอรีอื่นๆซึ่งในโปรแกรมภาษาซีที่ใช้งานจริง จะมีการ
เรียกไฟล์เฮดเดอร์ไฟล์มากกว่า 1 ไฟล์ ส่วนใหญ่ไฟล์เฮดเดอร์จะประกอบ
ด้วยข้อมูลเกี่ยวกับการจัดการ เช่น Input, Output หรืออื่นๆ คำา สั่งที่เรียก
ไฟล์เฮดเดอร์ก็คือ #include เมื่อเรียกไฟล์ stdio.h ซึ่งเป็นไฟล์มาตรฐาน
อิ น พุ ท แ ล ะ เ อ า ท์ พุ ท #include <stdio.h> คำา สั่ ง #include เ รี ย ก
Compile Directive เป็นคำา สั่งพิเศษสำา หรับช่วยในการคอมไพล์โปรแกรม
ภาษาซี คำา สั่งนี้เรียกมาจากส่วนอื่น จึงไม่ต้องลงท้ายด้วยเครื่อ งหมาย ;
(Semicolon) เหมือนกับประโยคภาษาซี แต่ต้องเขียนติดกันห้ามเว้นวรรค
ระหว่าง # กับคำาสั่ง
2. main() เป็ น ฟั ง ก์ ชั น ในภาษาซี ที่ กำา หนดไว้ ตั้ ง แต่ ต้ น ของโปรแกรม
หลังจากไฟล์ เฮดเดอร์ เพื่อบอกการเริ่มต้นของโปรแกรม โดยมีวงเล็บที่
จะส่งผ่านค่าพารามิเตอร์ไปยังฟังก์ชันอื่นๆในโปรแกรม เนื่องจากภาษาซี
จะประกอบด้ ว ยฟั ง ก์ ชั น ดั ง นั้ น main() จึ ง ถื อ เป็ น ฟั ง ก์ ชั น หนึ่ ง และเป็ น
ฟังก์ชันแรกเสมอของโปรแกรม
3. Function() หมายถึง โปรแกรมย่อยที่ทำางานอย่างใดอย่างหนึ่งและ
จะทำางานเมื่อชื่อของฟังก์ชันถูกเรียกใช้ ฟังก์ชันในภาษาซีก็มีความหมาย
เช่นเดียวกัน ประกอบด้วยคำา สั่ง นิพจน์ ข้อมูลหรือฟังก์ชันย่อยรวมกันเข้า
เป็ น ฟั ง ก์ ชั น โดยมี เ ครื่ อ งหมายวงเล็ บ ปี ก กา { } เป็ น ตั ว กำา หนดขนาด
เรียกว่าบล็อค (Block) ภายในวงเล็บปีกกาซึ่งเป็นฟังก์ชันหนึ่งๆ อาจจะมี
ฟั ง ก์ ชั น ย่ อ ยซ่ อ นอยู่ ก็ ไ ด้ ลั ก ษณะของฟั ง ก์ ชั น ภาษาซี จ ะเหมื อ นกั บ
โพรซีเดอร์ในภาษาปาสคาล
        ฟังก์ชันที่เขียนขึ้นในบล็อค จะประกอบด้วย
        1. คำาสั่ง (Key Word ) ในภาษาซี
14
     2. ตัวแปรและข้อมูล (Variable and Data)
     3. ตัวกระทำาและนิพจน์ (Operrator and Express)
     4. ฟังก์ชันย่อย




รายละเอียดของเมนู
    เมนูหลัก (Main Menu) ประกอบด้วย File Edit Search Run
Compile Debug Project Options Window และ Help
  File   เป็นเมนูที่ใช้ในการเก็บหรือ save โปรแกรม และเรียกโปรแกรมที่
         เก็บเอาไว้ขึ้นมา การเข้าสู่เมนู File ทำาได้โดยคลิกเมาส์ที่ file หรือ
         กดคียื <ALT> แล้วตามด้วยตัว <F> จากนั้นจะเกิดเมนูย่อยขึ้นมา
         ซึ่งผู้ใช้สามารถเลือกเมนูต่าง ๆ ได้โดยกดคีย์ลูกศรขึ้นลง หรือกด
         คีย์ลัด (Hot Key) ตามที่เขียนเอาไว้หลังเมนู สำาหรับเมนูย่อยที่นิยม
         ใช้กันทั่วไปได้แก่
15
   New
ใช้
สำาหรับ
สร้าง
ไฟล์
โปรแกร
มใหม่

  Open
ใช้
สำาหรับ
เปิดไฟล์
ที่มีอยู่
แล้วขึน้
มาแก้ไข
หรือมา
แสดงบน
หน้าจอ

  Save
ใช้
สำาหรับ
จัดเก็บ
ไฟล์ที่
สร้างเอา
ไว้

Save as
ใช้
สำาหรับ
จัดเก็บ
โดย
สามารถ
ตั้งชื่อ
ไฟล์ใหม่
ได้

   Quit
ใช้
สำาหรับ
ออกจาก
โปรแกร
ม
16
            เป็นเมนูที่ใช้ในการแก้ไขโปรแกรม การสำาเนาหรือการย้าย
  Edit
            ข้อความที่ปรากฏ บนเอดิเตอร์
            เป็นเมนูที่ใช้ในการค้นหาคำาหรือข้อความที่เขียนในโปรแกรม
 Search
            ตลอดจนการแทนที่คำา
   Run      เป็นเมนูที่ใช้ในการรันโปรแกรมที่เขียนด้วยคำาสั่งแบบต่างๆ
            เป็นเมนูที่ใช้ในการแปลข้อมูลของโปรแกรมที่เป็น Source file ให้
Compile
            เป็น Object file
 Debug      เป็นเมนูที่ใช้ในการตรวจสอบข้อผิดพลาดของโปรแกรม
            เป็นเมนูที่ใช้ในการใช้ในการระบุไฟล์ต่างๆ ที่จำาเป็นต้องนำามาใช้
Project
            ในตัวโปรแกรมและ Project ที่ทำางานอยู่
            เป็นเมนูที่ใช้ในการกำาหนดรายละเอียดต่างๆ ของคอมไพเลอร์ เช่น
Options
            Directories Compiler เป็นต้น
            เป็นเมนูที่ใช้ในการจัดการเกี่ยวกับหน้าต่างที่ใช้ในการเขียน
Window
            โปรแกรม
            เป็นเมนูที่ใช้ในการขอความช่วยเหลือหรือรายละเอียดเกี่ยวกับ
  Help
            โปรแกรมในลักษณะต่างๆ
ฟังก์ชั่นพื้นฐานในภาษาซี
clrscr( );       เป็ น ฟั ง ก์ ชั่ น ที่ ใ ช้ สำา หรั บ ล้ า งหน้ า จอ ถู ก นิ ย ามไว้ ใ น
conio.h
     รูปแบบ
           clrscr();


printf ( );      เป็นฟังก์ชั่นที่ใช้พิมพ์หรือแสดงข้อความออกทางจอภาพ
ถูกนิยามไว้ใน stdio.h
      รูปแบบที่ 1
           printf(“ข้อความที่ต้องการแสดงผล”);
      เช่น printf(“THAILAND”);
           ผลของการรันโปรแกรม แสดงข้อความ THAILAND ออกทาง
      หน้าจอ
      รูปแบบที่ 2
           printf(“ตัวกำาหนดชนิดข้อมูล”,ตัวแปร);
      เช่น ถ้ากำาหนด A=10
           printf(“%d”,A);หมายถึงการนำา ค่าของตัวแปร A มาแสดงผล
บนจอภาพในรูปจำานวนเต็ม
           ผลของการรั น โปรแกรม แสดงตั ว เลขจำา นวน 10 ออกทาง
จอภาพ
      รูปแบบที่ 3
17
            printf(“ข้อความ ตัวกำาหนดชนิดข้อมูล”,ตัวแปร);
      เช่น ถ้ากำาหนด A=20
            printf(“Data A = %d”,A);
            ผลของการรับโปรแกรม จะแสดงค่าของ A ซึ่งมี่ค่าเท่ากับ 20
      ว่า Data A = 20

getch();      เป็นฟังก์ชั่นรอรับการกดแป้นพิมพ์ 1 ครั้งและไม่แสดงผล
บนจอภาพ ถูกนิยามไว้ใน conio.h
    รูปแบบ
         getch();


textcolor(); เป็นฟังก์ชั่นที่ใช้กำา หนดสีของตัวอักษรจะต้องใช้ร่วมกับ
ฟังก์ชั่น cprintf(); ถูกนิยามไว้ใน conio.h รูปแบบ
            textcolor(ค่าสี);*ค่ า สี ส ามารถพิ ม พ์ ตั ว อั ก ษรหรื อ ใช้ เ ป็ น
หมายเลขค่าสีก็ได้
      เช่น textcolor (RED|BLINK); *ก่ อ น ห น้ า คำา สั่ ง BLINK ใ ช้
เครื่องหมาย or ในภาษาซี(กด shift + )
            cprintf(“ELECREONIC”);
            ผลของการรั บ โปรแกรม จะแสดงคำา ว่ า ELECTRONIC สี แ ดง
และกระพริบ
ตารางแสดงค่าสีในฟังก์ชั่น textcolor
      ค่าสี             สีที่แสดง
0 BLACK            ดำา
1 BLUE             นำ้าเงิน
2 GREEN            เขียว
3 CYAN             นำ้าเงินเขียว
4 RED              แดง
5 MAGENTA          ม่วง
6 BROWN            นำ้าตาล
7 LIGHTGRAY เทาอ่อน
8 DARKGRAY เทาเข้ม
9 LIGHTBLUE นำ้าเงินอ่อน
10                 เขียวอ่อน
LIGHTGREEN
11                 นำ้าเงินเขียวอ่อน
LIGHTCYAN
12 LIGHTRED แดงอ่อน
18
13                    ม่วงอ่อน
LIGHTMAGEN
TA
14 YELLOW             เหลือง
15 WHITE              ขาว
128 BLINK             กระพริบ

cprintf();         เป็ น ฟั ง ก์ ชั่ น ที่ ใ ช้ แ สดงข้ อ ความหรื อ ตั ว อั ก ษรเป็ น สี อ อก
              ทางจอภาพตามค่าสีที่กำา หนดไว้ในฟังก์ชั่น textcolor(); มีรูป
              แบบการใช้งานเหมื อนกับ ฟัง ก์ชั่น printf(); ต่างกั นตรงที่ การ
              แสดงออกมาเป็นสี
              การใช้ฟังก์ชั่น cprintf(); ต้องกำาหนดสีของตัวอักษรก่อนเสมอ
ฟังก์ชั่นนี้ถูกนิยามไว้ใน conio.h

textbackground();          เป็ น ฟั ง ก์ ชั่ น ที่ ใ ช้ กำา หนดพื้ น สี ข องการแสดง
                ข้อความหรือตัวอักษร ใช้ร่วมกับฟังก์ชั่น cprintf(); และ
                textcolor(); ถูกนิยามไว้ใน conio.h
      รูปแบบ         textbackground(ค่าสี);
      เช่น      textbackground(WHITE);
                teaxcolor(RED);
                cprintf(“THAILAND”);
                ผลของการรันโปรแกรม                    แสดงข้ อ ความ THAILAND
เป็นสีแดงบนพื้นสีขาว

gotoxy();       เป็นฟังก์ชั่นที่ใชกำา หนดตำา แหน่งที่จะแสดงข้อความ ถูก
นิยามไว้ใน conio.h
       รูปแบบ        gotoxy(คอลัมน์,บรรทัด);
       เช่น     gotoxy(33,13);
                กำาหนดตำาแหน่งที่จะแสดงข้อความที่คอลัมน์ 33 บรรทัด
ที่ 13

getchar();  เป็นฟังก์ชั่นรอรับการกดแป้นพิมพ์ 1 ตัวอักษรและแสดง
ผลบนจอภาพถูกนิยามไว้ใน conio.h
    รูปแบบ       ตัวแปร = getchar();
    หมายถึง หยุดรอรับการกดแป้นพิมพ์ 1 ตัวอักษรมาเก็บไว้ที่ตัวแปร
และจะแสดงผลบนจอภาพ
19
getcs();        เป็ น ฟั ง ก์ ชั น ที่ ใ ช้ ใ นการรั บ ข้ อ มู ล ที่ เ ป็ น ข้ อ ความจาก
แป้นพิมพ์เข้ามาเก็บไว้ในตัวแปรแบบอาเรย์
           และกำาหนดจำานวนตัวอักษรที่ต้องการจะป้อน โดยคอมพิวเตอร์
           จะจองพื้ น ที่ ไ ว้ ต ามจำา นวนตั ว อั ก ษร แต่ จ ะป้ อ นได้ น้ อ ยกว่ า ที่
           จองไว้ 1 ตัว
     รูปแบบ            char ตัวแปร[จำานวนตัวอักษร];
                getcs(ตัวแปร);


scanf(); เป็นฟังก์ชันที่ใช้รอรับค่าข้อมูลจากแป้นพิมพ์มาเก็บไว้ที่ตัวแปร
เพื่อใช้ในการประมวลผลและการ
           คำานวณ นิยามไว้ใน stdio.h
      รูปแบบ         scanf(“ตัวกำาหนดชนิดข้อมูล”,ตัวแปร)
      เช่น      scanf(“%d”,&A);
      หมายถึง รอรับค่าข้อมูลเป็นตัวเลขจำานวนเต็มมาเก็บไว้ที่ตัวแปร A
                & A หมายถึง ทีอยู่ของตัวแปร A (Addres A)
                                ่

sizeof         เป็นคำา สั่งภายในของภาษาซีที่ใช้เรียกดูขนาดของพื้นที่
ในการเก็บข้อมูลของตัวแปร
     รูปแบบ         sizeo(ตัวแปร)




ตัวอย่างโปรแกรมภาษาซี textcolor ,gotoxy ,cprintf
#include <stdio.h>
#include <conio.h>
main()
{
clrscr();
gotoxy(32,10);
textcolor(4|128); หมายเหตุ หลังหมายเลข 4 กด Shift +
20
cprintf("**************************");                                หมายเหตุ
เครื่องหมาย * ให้กด Alt + 178
gotoxy(32,11);
textcolor(15|128);
cprintf("**************************");
gotoxy(32,12);
textcolor(1|128);
cprintf("**************************");
gotoxy(32,13);
textcolor(15|128);
cprintf("**************************");
gotoxy(32,14);
textcolor(4|128);
cprintf("**************************");
getch();
}




ตัวแปร (Variable)
       การเขียนโปรแกรมไม่ได้มีเฉพาะส่วนที่แสดงผลเท่านั้นแต่ยังมีการ
คำานวณรวมอยู่ด้วย การที่เราจะเขียนโปรแกรมให้สามารถคำา นวณผลนั้นก็
ต้ อ งมี ก ารกำา หนดตั ว แปรขึ้ น มาด้ ว ย ทำา ให้ เ ราต้ อ งมี ก ารเรี ย นรู้ เ กี่ ย วกั บ
ตัวแปร ในภาษาซี ตัวแปร หมายถึง ตัวอักษร กลุ่มของตัวอักษร ที่ใช้เป็น
ตัวแทนค่าของข้อมูล หรือค่าที่เปลี่ยนแปลงไปตามเงื่อนไขของโปรแกรม
เพื่อใช้เก็บค่าที่ต้องการทำาการประมวลผลข้อมูล
การตั้งชื่อตัวแปร
       1. ต้องขึ้นต้นด้วยตัวอักษร ตัวต่อไปอาจจะเป็นตัวอักษรหรือตัวเลข
ก็ได้
       2. ห้ า มใช้ สั ญ ลั ก ษณ์ อื่ น ใด ยกเว้ น เครื่ อ งหมายสตริ ง ก์ ($) และขี ด
ล่าง (_)
       3.ตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กและตัวพิมพ์ใหญ่มีความหมาย
แตกต่างกัน เช่น NUMBER, Number
21
      4. ห้ามเว้นวรรคระหว่างตัวแปร
      5. ห้ามตั้งชื่อซำ้ากับคำาสงวนในภาษาซี
      ก่อนที่จะนำา ตัวแปรไปใช้งานในภาษาซีจะต้องมีการประกาศตัวแปร
ให้สอดคล้องกับข้อมูลที่จะนำาไปใช้โดยมีรูปแบบดังนี้
      รูปแบบ              type variable name;
      type        ชนิดของตัวแปร
      variable name ชื่อของตัวแปร โดยส่วนใหญ่การตั้งชื่อตัวแปรจะตั้ง
ให้สอดคล้องกับข้อมูลที่ต้องการจะเก็บ เช่น ต้อ งการเก็บ ค่า ชื่อ ก็ ตั้ง ชื่อ
ตัวแปรว่า NAME เพื่อเวลากลับมาแก้ไขข้อมูลจะได้
ตัวอย่างการประกาศตัวแปร
      char a;             ประกาศค่ า ตั ว แปรชื่ อ a เป็ น ข้ อ มู ล ชนิ ด characte
r(ตัวอักษร)
      float x,y,z;        ประกาศค่าตัวแปรชื่อ x,y,z เป็นข้อมูลชนิดตัวเลข
จำานวนทศนิยม
      int count=1; ป ร ะ ก า ศ ค่ า ตั ว แ ป ร ชื่ อ count เ ป็ น ข้ อ มู ล ช นิ ด
integer และกำาหนดค่าตัวแปร count มีค่า=1
      char name[15] ประกาศค่ า ตั ว แปรชื่ อ name เป็ นลั ก ษณะตั ว แปร
ชุดเก็บชื่อยาวไม่เกิน 15 ตัวอักษร

คำา สงวน (Reseerved Words) คื อ คำา ที่ กำา หนดขึ้ น ในภาษาซี เ พื่ อ ให้ มี
ความหมายอย่ า งใดอย่ า งหนึ่ ง และนำา ไปใช้ ง านแตกต่ า งกั น การที่ จ ะ
ประกาศตัวแปรจะต้องไม่ซำ้ากับคำาสงวน เช่น
Auto       break          case        char      Const
      default
do         double         else        enum             short
      signed
sizeof          extern          float       or         goto         if
int        long      return           register         continue
      while
static          struct          switch          void         unsigned
      Union



ชนิดของข้อมูล
     1. ชนิ ด ข้ อ มู ล ตั ว อั ก ษร (Character) คื อ ข้ อ มู ล ที่ เ ป็ น รหั ส แทนตั ว
อักษรหรือค่าจำานวนเต็ม ได้แก่ ตัวเลข ตัวอักษร และกลุ่มอักขระพิเศษ
22
     2. ข้ อ มู ล ชนิ ด ตั ว เลขจำา นวนเต็ ม (Integer) คื อ ข้ อ มู ล ที่ เป็ น
ตัวเลขจำานวนเต็ม ได้แก่จำานวนเต็มบวก จำานวนเต็มลบ
     3. ข้อมูลชนิดเลขทศนิยม (Float) คือข้อมูลชนิดตัวเลขทศนิยม

ลักษณะข้อมูล            ขนาด              ช่วงข้อมูล
                        (ไบต์)
char          1                    -128 ถึง 127
unsigned char 1                    0 ถึง 255
int           2                    -32768 ถึง 32767
unsigned int  2                    0 ถึง 65535
long int      4                    -2147483648 ถึ ง
                                   2147483649
unsigned long 4                    0 ถึง 4294967296
int
float         4                    3.4 x 10-38 ถึ ง 3.4
                                   x 1038
double              8              1.7 x 10-308 ถึง 1.7
                                   x 10308
long double         10             3.4 x 10-4932 ถึ ง
                                   3.4 x104932

การแปลงชนิดข้อมูล (Type conversion)
       ภาษาซี สามารถใช้ตัวแปรต่างชนิดกัน มากระทำากัน เช่น นำาเอา int
+ float คอมไพเลอร์ จ ะทำา หน้ า ที่ แ ปลงเลขจำา นวนเต็ ม (int) ให้ เ ป็ น เลข
ทศนิยม (float) เสียก่อนโดยการเติม .0 แล้วจึงนำามาบวกกัน ในส่วนของ
ตัวอักษรก็สามารถกระทำา ได้เช่นกัน เนื่องจากข้อมูลไม่ว่าจะเป็นตัวอักษร
หรื อ ตั ว เลขก็ ตาม การเก็ บ ค่ า ไว้ ใ นหน่ ว ยความจำา จะเก็ บ ด้ ว ยรหั ส ซึ่ ง เป็ น
ตัวเลข ดังนั้นจึงสามารถนำา เอาข้อมูลเหล่านี้มากระทำา ร่วมกันได้ โดยการ
แปลงชนิดข้อมูลก่อน ซึ่งการแลงชนิดข้อมูลนี้ C Compiler จะกระทำาโดย
อัตโนมัติ โดยยึดกฎเกณฑ์ว่าเมื่อนำาตัวแปลต่างชนิดมากระทำากัน คอมไพ
เลอร์จะแปลงข้อมูลชนิดนั้นๆให้สูงขึ้น ก่อนที่จะนำามากระทำากัน เช่น
       char กระทำากับ int จะแปลงเป็น int
       float        กระทำากับ double           จะแปลงเป็น double
       int กระทำากับ long จะแปลงเป็น long
23
ตัวกำาหนดชนิดข้อมูลหรือรหัสรูปแบบ (Format Code) เมื่อเลือกใช้
ตัวแปรแบบใดแล้วต้องเลือกชนิดของตัวกำาหนดชนิดข้อมูลให้ตรงกันด้วย
   รหัสรูป   ใช้กับตัวแปรที่เก็บค่า
    แบบ
    %c     ตัวอักษรเพียงตัวเดียว
    %s     ข้อความที่เก็บอยูในอาเรย์
                               ่
    %d     เลขจำานวนเต็ม
     %f    เลขทศนิยม
    %e     เ ล ข ท ศ นิ ย ม ใ น รู ป e ย ก
           กำาลัง
    %x     เลขฐานสิบหก
    %o     เลขฐานแปด

ตัวอย่างโปรแกรมภาษาซีเกี่ยวกับรหัสรูปแบบ

#include            …………………………………………………
<conio.h>           ……………………………
#include            …………………………………………………
                    ……………………………
<stdio.h>
                    …………………………………………………
main()              ……………………………
{                   …………………………………………………
clrscr();           ……………………………
float a=100.2;      …………………………………………………
double b=100.2;     ……………………………
int c=10;           …………………………………………………
int d=11;           ……………………………
                    …………………………………………………
char e='x';
                    ……………………………
char                …………………………………………………
f[]="thailand";     ……………………………
char g;             …………………………………………………
printf("%fn",a);   ……………………………
printf("%fn",b);   …………………………………………………
printf("%en",a);   ……………………………
printf("%d          …………………………………………………
                    ……………………………
%dn",c,d);
                    …………………………………………………
24
printf("%on",c);    ……………………………
printf("%xn",d);    …………………………………………………
printf("%cn",e);    ……………………………
                     …………………………………………………
printf("%sn",f);
                     ……………………………
printf("%.4sn",f)   …………………………………………………
;                    ……………………………
g=getchar();         …………………………………………………
getch();             ……………………………
}                    …………………………………………………
                     ……………………………
                     …………………………………………………
                     ……………………………
                     …………………………………………………
                     ……………………………
                     …………………………………………………
                     ……………………………
                     …………………………………………………
                     ……………………………
                     …………………………………………………
                     ……………………………
                     …………………………………………………
                     ……………………………
                     …………………………………………………
                     ……………………………
                     …………………………………………………
                     ……………………………
                     …………………………………………………
                     ……………………………

ตัวอย่างโปรแกรมภาษาซีเกี่ยวกับคำาสั่ง sizeof

#include <stdio.h>          …………………………………………
#include <conio.h>          ………………
main()                      …………………………………………
                            ………………
{
                            …………………………………………
char a;                     ………………
25
int b;                      …………………………………………
float c;                    ………………
double d;                   …………………………………………
                            ………………
long double e;
                            …………………………………………
clrscr();                   ………………
printf("Size of char :      …………………………………………
%d n",sizeof(a));          ………………
printf("Size of int :       …………………………………………
%dn",sizeof(b));           ………………
printf("Size of float :     …………………………………………
%dn",sizeof(c));           ………………
                            …………………………………………
printf("Size of double :
                            ………………
%dn",sizeof(d));           …………………………………………
printf("Size of long        ………………
double :                    …………………………………………
%dn",sizeof(e));           ………………
getch();                    …………………………………………
}                           ………………
                            …………………………………………
                            ………………
                            …………………………………………
                            ………………
                            …………………………………………
                            ………………
                            …………………………………………
                            ………………
                            …………………………………………
                            ………………
                            …………………………………………
                            ………………




ตัวอย่างโปรแกรมภาษาซีเกี่ยวกับคำาสั่ง gets
26
#include <stdio.h>            ..................................................
#include <conio.h>            ....................................
main()                        ..................................................
{                             ....................................
char                          ..................................................
name[20],surname[15];         ....................................
clrscr();                     ..................................................
printf("Enter name : ");      ....................................
gets(name);                   ..................................................
printf("Enter surname : ");   ....................................
gets(surname);                ..................................................
printf("Your name is %s       ....................................
%s",name,surname);            ..................................................
getch();                      ....................................
}                             ..................................................
                              ....................................
                              ..................................................
                              ....................................
                              ..................................................
                              ....................................
                              ..................................................
                              ....................................
                              ..................................................
                              ....................................
                              ..................................................
                              ....................................
โปรแกรมหาพื้นที่สามเหลี่ยม
#include <conio.h>            ..................................................
 #include <stdio.h>           ....................................
 main()                       ..................................................
 {                            ....................................
 float base,high,area;        ..................................................
 clrscr();                    ....................................
 printf("This is program      ..................................................
Triangle Arean");            ....................................
 printf("Enter Baes:");       ..................................................
 scanf("%f",&base);           ....................................
 printf("Enter High:");       ..................................................
27
scanf("%f",&high);              ....................................
area=0.5*base*high;             ..................................................
printf("Area of Triangle is :   ....................................
%.2f",area);                    ..................................................
getch();                        ....................................
}                               ..................................................
                                ....................................
                                ..................................................
                                ....................................
                                ..................................................
                                ....................................
                                ..................................................
                                ....................................
                                ..................................................
                                ....................................
                                ..................................................
                                ....................................
                                ..................................................
                                ....................................

Contenu connexe

Tendances

ความรู้เบื้องต้นเกี่ยวกับโครงสร้างข้อมูลและอัลกอริทึม
ความรู้เบื้องต้นเกี่ยวกับโครงสร้างข้อมูลและอัลกอริทึมความรู้เบื้องต้นเกี่ยวกับโครงสร้างข้อมูลและอัลกอริทึม
ความรู้เบื้องต้นเกี่ยวกับโครงสร้างข้อมูลและอัลกอริทึมwaradakhantee
 
ใบความรู้ที่ 3 การเขียนโปรแกรมภาษา
ใบความรู้ที่ 3 การเขียนโปรแกรมภาษาใบความรู้ที่ 3 การเขียนโปรแกรมภาษา
ใบความรู้ที่ 3 การเขียนโปรแกรมภาษาNattapon
 
ขั้นตอนการเขียนโปรแกรม
ขั้นตอนการเขียนโปรแกรมขั้นตอนการเขียนโปรแกรม
ขั้นตอนการเขียนโปรแกรมbpatra
 
บทที่4การกำหนดและวิเคราะห์ปัญหา
บทที่4การกำหนดและวิเคราะห์ปัญหาบทที่4การกำหนดและวิเคราะห์ปัญหา
บทที่4การกำหนดและวิเคราะห์ปัญหาjack4212
 
การเขียนผังงาน (Flowchart)
การเขียนผังงาน (Flowchart)การเขียนผังงาน (Flowchart)
การเขียนผังงาน (Flowchart)Fair Kung Nattaput
 
สัญลักษณ์ผังงาน
สัญลักษณ์ผังงานสัญลักษณ์ผังงาน
สัญลักษณ์ผังงานPannathat Champakul
 
คำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรมคำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรมJK133
 
โครงสร้างผังงาน
โครงสร้างผังงานโครงสร้างผังงาน
โครงสร้างผังงานChittraporn Phalao
 
งาน อ.ทรงศักดิ์
งาน อ.ทรงศักดิ์งาน อ.ทรงศักดิ์
งาน อ.ทรงศักดิ์Oraphan4
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3KEk YourJust'one
 
ใบความรู้ที่ 1.4
ใบความรู้ที่ 1.4 ใบความรู้ที่ 1.4
ใบความรู้ที่ 1.4 Orapan Chamnan
 
การสร้างแบบสอบถาม
 การสร้างแบบสอบถาม การสร้างแบบสอบถาม
การสร้างแบบสอบถามkruthanyaporn
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1Thank Chiro
 

Tendances (20)

ความรู้เบื้องต้นเกี่ยวกับโครงสร้างข้อมูลและอัลกอริทึม
ความรู้เบื้องต้นเกี่ยวกับโครงสร้างข้อมูลและอัลกอริทึมความรู้เบื้องต้นเกี่ยวกับโครงสร้างข้อมูลและอัลกอริทึม
ความรู้เบื้องต้นเกี่ยวกับโครงสร้างข้อมูลและอัลกอริทึม
 
Programmer1
Programmer1Programmer1
Programmer1
 
ใบความรู้ที่ 3 การเขียนโปรแกรมภาษา
ใบความรู้ที่ 3 การเขียนโปรแกรมภาษาใบความรู้ที่ 3 การเขียนโปรแกรมภาษา
ใบความรู้ที่ 3 การเขียนโปรแกรมภาษา
 
ขั้นตอนการเขียนโปรแกรม
ขั้นตอนการเขียนโปรแกรมขั้นตอนการเขียนโปรแกรม
ขั้นตอนการเขียนโปรแกรม
 
บทที่4การกำหนดและวิเคราะห์ปัญหา
บทที่4การกำหนดและวิเคราะห์ปัญหาบทที่4การกำหนดและวิเคราะห์ปัญหา
บทที่4การกำหนดและวิเคราะห์ปัญหา
 
การเขียนผังงาน (Flowchart)
การเขียนผังงาน (Flowchart)การเขียนผังงาน (Flowchart)
การเขียนผังงาน (Flowchart)
 
สัญลักษณ์ผังงาน
สัญลักษณ์ผังงานสัญลักษณ์ผังงาน
สัญลักษณ์ผังงาน
 
คำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรมคำสั่งควบคุมโปรแกรม
คำสั่งควบคุมโปรแกรม
 
โครงสร้างผังงาน
โครงสร้างผังงานโครงสร้างผังงาน
โครงสร้างผังงาน
 
1
11
1
 
งาน อ.ทรงศักดิ์
งาน อ.ทรงศักดิ์งาน อ.ทรงศักดิ์
งาน อ.ทรงศักดิ์
 
ผังงาน
ผังงานผังงาน
ผังงาน
 
Epi info unit07
Epi info unit07Epi info unit07
Epi info unit07
 
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
การเขียนคำสั่งควบคุมแบบมีทางเลือก กลุ่ม 3
 
ใบความรู้ที่ 1.4
ใบความรู้ที่ 1.4 ใบความรู้ที่ 1.4
ใบความรู้ที่ 1.4
 
การสร้างแบบสอบถาม
 การสร้างแบบสอบถาม การสร้างแบบสอบถาม
การสร้างแบบสอบถาม
 
หลักการเขียนผังงาน(Flow chart)
หลักการเขียนผังงาน(Flow chart)หลักการเขียนผังงาน(Flow chart)
หลักการเขียนผังงาน(Flow chart)
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
บทที่ 2
บทที่ 2บทที่ 2
บทที่ 2
 
Epi info unit06
Epi info unit06Epi info unit06
Epi info unit06
 

Similaire à 11

งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอมnuknook
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอมPassawan' Koohar
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอมnuknook
 
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศการแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศMeaw Sukee
 
Flowchart
FlowchartFlowchart
FlowchartKo Kung
 
ความหมายของผังงาน
ความหมายของผังงานความหมายของผังงาน
ความหมายของผังงาน9inglobin
 
ความหมายของผังงาน
ความหมายของผังงานความหมายของผังงาน
ความหมายของผังงาน9inglobin
 
การจำลองความคิด
การจำลองความคิดการจำลองความคิด
การจำลองความคิดStrisuksa Roi-Et
 
ความหมายของเทคโนโลยีสารสนเทศ
ความหมายของเทคโนโลยีสารสนเทศความหมายของเทคโนโลยีสารสนเทศ
ความหมายของเทคโนโลยีสารสนเทศPaweena Kittitongchaikul
 
ความหมายของเทคโนโลยีสารสนเทศ
ความหมายของเทคโนโลยีสารสนเทศความหมายของเทคโนโลยีสารสนเทศ
ความหมายของเทคโนโลยีสารสนเทศPaweena Kittitongchaikul
 
Pbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นPbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นDararat Worasut
 
ผังงาน
ผังงานผังงาน
ผังงานjutamat
 
ผังงาน
ผังงานผังงาน
ผังงานjutamat
 
ผังงาน
ผังงานผังงาน
ผังงานpumpuiza
 
ผังงาน
ผังงานผังงาน
ผังงานjutamat
 

Similaire à 11 (20)

งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
 
ผังงาน
ผังงานผังงาน
ผังงาน
 
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศการแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
 
Flowchart credit :
Flowchart credit : Flowchart credit :
Flowchart credit :
 
Flowchart
FlowchartFlowchart
Flowchart
 
ความหมายของผังงาน
ความหมายของผังงานความหมายของผังงาน
ความหมายของผังงาน
 
ความหมายของผังงาน
ความหมายของผังงานความหมายของผังงาน
ความหมายของผังงาน
 
การจำลองความคิด
การจำลองความคิดการจำลองความคิด
การจำลองความคิด
 
ความหมายของเทคโนโลยีสารสนเทศ
ความหมายของเทคโนโลยีสารสนเทศความหมายของเทคโนโลยีสารสนเทศ
ความหมายของเทคโนโลยีสารสนเทศ
 
ความหมายของเทคโนโลยีสารสนเทศ
ความหมายของเทคโนโลยีสารสนเทศความหมายของเทคโนโลยีสารสนเทศ
ความหมายของเทคโนโลยีสารสนเทศ
 
Pbl2 docx
Pbl2 docxPbl2 docx
Pbl2 docx
 
Pbl2 docx
Pbl2 docxPbl2 docx
Pbl2 docx
 
Pbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นPbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้น
 
1122
11221122
1122
 
ผังงาน
ผังงานผังงาน
ผังงาน
 
ผังงาน
ผังงานผังงาน
ผังงาน
 
ผังงาน
ผังงานผังงาน
ผังงาน
 
ผังงาน
ผังงานผังงาน
ผังงาน
 

11

  • 1. 1 หลักการเขียนโปรแกรม ในการเขียนโปรแกรมหรือพัฒนาโปรแกรมนั้น โปรแกรมเมอร์ต้องมี การเตรียมงานเกี่ยวกับการเขียนโปรแกรมอย่างเป็นขั้นเป็นตอน วงจรการ พัฒนาโปรแกรม (Program Development Life Cycle:PDLC) ประกอบ ด้วย 6 ขั้นตอนดังนี้ 1. ทำาความเข้าใจและวิเคราะห์ปัญหา 2. กำาหนดแผนการแก้ไขปัญหา 3. เขียนโปรแกรมตามแผนที่กำาหนด 4. ทดสอบและตรวจสอบความถูกต้อง 5. นำาโปรแกรมทีผ่านการตรวจสอบไปใช้งาน 6. บำารุงรักษา 1.ขั้นวิเคราะห์ความต้องการ การวิเคราะห์ความต้องการ เป็นการทำาความเข้าใจกับปัญหาและ ค้นหาสิ่งที่ต้องการ นั้นคือการศึกษาวิเคราะห์โดยละเอียดว่า ต้องการ ผลลัพธ์อะไร ต้องใช้ข้อมูลอะไรเพื่อให้ได้ผลลัพธ์ตามต้องการ และมีขั้น ตอนการประมวลผลอย่างไรบ้าง บ้างครั้งเรียนขั้นตอนนี้ว่า กานวิเคราะห์ ปัญหาหรือการวิเคราะห์งาน เป็นขั้นตอนแรกก่อนที่จะเริมต้นเขียน ่ โปรแกรมและถือเป็นขั้นตอนที่สำาคัญที่สุด โดยทัวไปนิยมแบ่งวิธีวิเคราะห์งานเป็น 5 หัวข้อได้แก่ ่ 1.1 สิ่งที่ต้องการ เป็นการบอกให้ทราบว่างานที่ต้องการมีอะไร บ้าง 1.2 รูปแบบผลลัพธ์ เป็นการศึกษาถึงรูปแบบหรือลักษณะการ แสดงผลของข้อมูล 1.3 ข้อมูลนำาเข้า ข้อมูลทีใช้ในการประมวลผลมีอะไรบ้าง ่ 1.4 ตัวแปรที่ใช้ บอกว่าใช้ตัวแปรอะไรแทนข้อมูลนำาเข้า หรือ แทนค่าที่อยูระหว่างการ ่ ประมวลผล ตลอดจนตัวแปรที่ใช้แสดงผล
  • 2. 2 1.5 วิธีการประมวลผล เป็นขั้นตอนของคำาสั่งที่ผู้เขียนโปรแกรมจะ ต้องเรียงลำาดับ การทำางานของ โปรแกรม และการนำาตัวแปรมาแทนค่าเพื่อให้ได้ ผลลัพธ์ทถูกต้อง ี่ ตัวอย่างการวิเคราะห์ความต้องการ ตัวอย่างที่ 1 จงแก้ปัญหาเพื่อหาพื้นที่ของรูปสามเหลียมด้านเท่า โดยรับ ่ ค่าความกว้างและความสูงจากผู้ใช้ทางแป้นพิมพ์ สิ่งที่ต้องการ - พื้นที่ของรูปสามเหลี่ยม - รับค่าความกว้างและความสูงของรูปสามเหลียมทางแป้นพิมพ์ ่ รูปแบบของผลลัพธ์ - แสดงผลลัพธ์ของพื้นที่รปสามเหลี่ยมเป็นตัวเลข ู ข้อมูลนำาเข้า - ค่าความกว้างของรูปสามเหลี่ยม(ฐาน) - ค่าความสูงของรูปสามเหลียม ่ ตัวแปรที่ใช้ - B แทนความกว้างของรูปสามเหลียม(ฐาน) ่ - H แทนความสูงของรูปสามเหลี่ยม วิธีการประมวลผล 1. เริ่มต้น 2. รับค่า B 3. รับค่า H 4. คำานวณค่าของพื้นที่สามเหลียมจากสูตร 0.5 x B x H ่ 5. แสดงค่าตอบ จบการทำางาน 2. กำาหนดแผนในการแก้ไขปัญหา เมื่อทำาความเข้าใจและวิเคราะห์ ปัญหาโจทย์จนได้ข้อสรุปว่าโจทย์ต้องการอะไรแล้ว ก็ทำาการกำาหนดแผน ในการแก้ไขปัญหาโดยการเขียนผังงาน (Flowchart) การเขียนผังงานคือ การเขียนแผนภาพที่เป็นลำาดับ เพื่อแสดงขั้นตอนการทำางานทำาความ เข้าใจการเขียนผังงานมี 3 แบบ คือ แบบเรียงลำาดับ (Sequential) แบบ กำาหนดเงื่อนไข (Condition) และมีแบบการทำางานวนรอบ (Looping) สัญลักษณ์ของผังงาน (Flowchart Symbol) มีดังนี้
  • 3. 3 จุดเริ่มต้นหรือจุดสิ้นสุด ทิศทางการทำางาน รับข้อมูลเข้าจากคีย์บอร์ด จุ ด เชื่อมต่อภายในหน้าเดียวกัน การคำานวณหรือประมวลผล จุดเชื่อมต่อ ไปหน้าอื่น การรับข้อมูลและแสดงผล การตัดสินใจหรือทางเลือก ใช้แสดงผลข้อมูลออกทางเอกสาร แสดงผลข้อมูลออกทางจอภาพ ประเภทของผังงาน 1. ก า ร เ ขี ย น ผั ง ง า น แ บ บ เ รี ย ง ลำา ดั บ (Sequential Connection) กิจกรรมต่างๆจะวางลำาดับโดยยึดหลักจากบนลงล่างหรือ จากซ้ายไปขวา กิ จ ก ร ร ม ที่ 1 ใ ส่ ข้ อ มู ล . . . . . . กิ จ ก ร ร ม ที่ 2 ป ระม วล ผ ล กิ จ ก ร ร ม ที่ 3 แ ส ด ง ผ ล ลั พ ธ์ รูปแสดงความสัมพันธ์แบบตามลำาดับ
  • 4. 4 2.การเขียนผังงานแบบมีเงื่อนไข 2.1 แบบเงื่อนไขเดียว (Single Selection) จะตรวจสอยเงื่อนไข ถ้า เงื่อนไขเป็นจริง (true) ก็จะไปทำากิจกรรมแล้วออกจากโครงสร้าง ถ้า เงื่อนไขเป็นเท็จ(False) ก็จะออกจากโครงสร้าง จ ริ ง เ งื่ อ น ไ ข กิ จ ก ร ร ม เ ท็ จ 2.2 แบบสองเงื่อนไข (Double Selection) จะตรวจสองเงื่อนไขถ้า เงื่อ นไขเป็น จริง ก็จ ะทำา กิ จกรรมที่ 1 แล้ว ออกจากโครงสร้า ง ถ้า เงื่ อนไข เป็นเท็จก็จะทำากิจกรรมที่ 2 แล้วออกจากโครงสร้าง จ ริ ง เ ท็ จ เ งื่ อ น ไ ข กิ จ ก ร ร ม กิ จ ก ร ร ม 2.3 การเขียนผังงานแบบหลายทางเลือก (Multi – Selection) 2.3.1 แบบใช้ ใ ช้ โ ครงสร้ าง If / else if / else เป็น แบบตรวจ สอยเงื่อนไขหลายชั้น การตรวจสอบแต่ละชั้นจะได้ผลการตรวจสอบเช่น เดี ย วกั บ แบบสองเงื่ อ นไข ทำา ให้ ผ ลโดยรวมของโครงสร้ า งนี้ มี ท างออก หลายทาง(มากกว่า 2 ทาง)ตัวอย่าง 2.3.2 แบบโครงสร้ า ง case or switch เป็ น โครงสร้ า งตรวจ สอบเงื่อนไขว่าตัวแปรตรวจสอบค่าตรงกับค่า (Value) ใด ซึ่งค่าดังกล่าว
  • 5. 5 จะเป็นตัวบ่งชี้กรณีที่ต้องการผังงานดังกล่าวสามารถเสนอได้ 2 รูปแบบ คือ จ ริ ง C ase1 กิ จ ก ร ร ม กิ จ ก ร ร ม เ ท็ จ จ ริ ง C ase2 กิ จ ก ร ร ม กิ จ ก ร ร ม เ ท็ จ จ ริ ง C a s e ..n กิ จ ก ร ร ม กิ จ ก ร ร ม เ ท็ จ กิ จ ก ร ร ม ผังงาน Multi Select แบบ case หรือ switch ที่แยกสัญลักษณ์ เงื่อนไข C ase? o th e r 1 2 3 4 กิ จ ก ร ร ม กิ จ ก ร ร ม กิ จ ก ร ร ม กิ จ ก ร ร ม ผังงานแบบ case หรือ switch ที่รวมสัญลักษณ์เงื่อนไข 3. การเขียนผังงานแบบวนรอบหรือทำา ซำ้า คือการวนเป็นรอบๆโดยทำา กิจกรรมเดิมซำ้า อีก อาจจะเรียกว่าการวนลูปซึ่งมีโครงสร้างการควบคุมได้ หลายรูปแบบดังนี้ 3.1 While..Structure ลั ก ษณะโครงสร้ า งการควบคุ ม จะตรวจสอบ เงื่ อ นไขสิ้ น สุ ด การวนซำ้า ก่ อ น ถ้ า ผลการตรวจสอบยั ง ไม่ สิ้ น สุ ด ก็ จ ะทำา กิจกรรมนั้นซำ้าต่อไปเรื่อยๆ
  • 6. 6 จ ริ ง เ งื่ อ น ไ ข กิ จ ก ร ร ม เ ท็ จ 3.2 do / while...Structure ลักษณะโครงสร้างการควบคุมจะกระทำา กิจกรรมครั้งแรกก่อนเสมอ แล้วจึงตรวจสอบเงื่อนไขสิ้นสุดการทำา ซำ้า ถ้า ผลการตรวจสอบยังไม่สิ้นสุดก็จะกลับไปทำากิจกรรมเดิมซำ้าอีก กิ จ ก ร ร ม จ ริ ง C ase? เ ท็ จ 3.3 for... Structure ลักษณะโครงสร้างการควบคุมเป็นการวนซำ้าที่รู้ จำานวนรอบแน่นอน โดยมีการกำา หนดค่าเริ่มต้นค่าสิ้นสุดของตัวแรนับรอบ และตรวจสอบเงื่อนไขการวนซำ้า และกำาหนดค่าการเปลี่ยนแปลงแต่ละรอบ ค่ า เ ริ่ ม ต้ น ข อ ง ตั ว แ ป ร นั บ ร อ บ จ ริ ง กิ จ ก ร ร ม ต่ า ง ๆ ภ า ย ใ น เ งื่ อ น ไ ข ก า ร ว น ซำ้า เ ท็ จ เ พิ่ ม ค่ า ห รื อ ล ด ค่ า ตั ว แ ป ร นั บ ร อ บ ประโยชน์ของการเขียนผังงาน (Flowchart) 1 .ทำาให้เข้าใจและแยกแยะปัญหาต่างๆได้ง่ายขึ้น 2. ผู้เขียนโปรแกรมมองเป็นลำาดับการทำางานว่าสิ่งใดควรทำาก่อนหลัง 3. สามารถมองหาจุดผิดพลาดได้ง่ายขึ้น 4. ไม่ขึ้นอยู่กับภาษาใดภาษาหนึ่ง ผู้อื่นสามารถเรียนรู้ได้โดยง่าย 5. ผู้อื่นเข้าใจง่ายกว่าการดู Source Code การเขียนผังงานที่ดี 1. ใช้สัญลักษณ์แบบมาตรฐาน 2. ขนาดของสัญลักษณ์มีความเหมาะสม 3. เขียนทิศทางการทำางานที่ชัดเจน
  • 7. 7 4. เขียนคำาอธิบายสัญลักษณ์ที่สั้นและเข้าใจง่าย 5. พยายามหลีกเลียงจุดตัดหรือใช้จุดเชื่อมต่อเฉพาะที่จำาเป็น ่ 6. หากเป็นไปได้ควรจบในหน้าเดียว 7. เขียนอย่างเป็นระเบียบ 8. จุดเริ่มต้นและจุดจบควรมีจุดเดียว ตัวอย่างผังงานของภาษาซี s ta rt ......................................................... ......................................................... ......................................................... S o u rce C o d e ......................................................... * .c p p ......................................................... A lt + F 9 C o m p ile ......................................................... ......................................................... * .o b j ......................................................... L in k ......................................................... ......................................................... Yes ......................................................... E rro r ......................................................... ......................................................... * .e x e ......................................................... C t r l+ F 9 Run ......................................................... ......................................................... Yes ......................................................... E rro r ......................................................... ......................................................... ......................................................... End ......................................................... ......................................................... ตัวอย่างการเขียนผังงานการหาพื้นที......................................................... ่สามเหลียม ่ .........................................................
  • 8. 8 s ta rt 1. เริ่มต้นการทำางาน 2. รับค่าฐาน 3. รับค่าสูง รั บ ค่ า ฐ า น ٤. ประมวลผลจากสูตรหา พื้นที่ รั บ ค่ า สู ง ٥. แสดงคำาตอบ ٦. จบการทำางาน 1 / 2 * ฐ า น * สู ง แ ส ด ง คำา ต อ บ End ตัวอย่างการเขียนผังงานแบบมีเงื่อนไขโดยถ้าอายุ 1 – 30 ปีแสดงผลว่า อยู่ในวัยหนุ่มสาว ถ้าเกินแสดงว่ามีอายุมาก s ta rt 1. เริ่มต้นการทำางาน 2. รับค่าตัวแปร Old มาเก็บไว้ 3. ตรวจสอบเงื่อนไขว่าอายอยูใน ่ O ld ช่วง 1- 30 ปีหรือไม่ 4. ถ้าใช้แสดงผลว่า You are young 5. ถ้าไม่แสดงผลว่า You are old O ld < = 3 0 No 6. แสดงข้อความ thank you 7. จบการทำางาน Yes Y o u a re Y o u n g Y o u a r e o ld Thank You End แบบฝึกหัด 1. เขียนผังงานของการตัดเกรดโดยมีคะแนนดังนี้ 100 - 80 เกรด A
  • 9. 9 79 - 70 เกรด B 69 - 60 เกรด C 50 – 59 เกรด D 49 – 0 เกรด F มากกว่า 100 น้อยกว่า 0 แสดงผลว่า Error 2. เขียนผังงานการทอดไข่เจียว 3.ขั้นดำาเนินการเขียนโปรแกรม ขั้นการเขียนโปรแกรม เป็นการเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ภาษาใดภาษาหนึ่งโดยเลือกภาษาที่เหมาะสมกับลักษณะและประเภทของ งานและความถนัดของผู้เขียน ขั้นตอนนี้ผู้เขียนโปรแกรมควรต้องคำานึงถึง การใช้งานของผู้ใช้โปรแกรมด้วยควรออกแบบโปรแกรมให้ผู้ใช้งานได้ สะดวก ใช้งานง่าย 4. ขั้นทดสอบและแก้ไขโปรแกรม เป็นการตรวจสอบจุดผิดพลาดของโปรแกรม(Bugs) ทีเขียนขึ้น และ ่ ดำาเนินการแก้ไขข้อผิดพลาดนั้น(Debugs) โปรแกรมที่ทำางานไม่ได้ตาม วัตถุประสงค์ เราเรียกว่า โปรแกรมมีการ Error เกิดขึ้น Error การ Error มี 2 สาเหตุหลัก คือ 4.1 ข้อผิดพลาดทางไวยากรณ์ของภาษา (Syntax Error) คือ ข้อ ผิดพลาดทีเกิดจากการเขียนโค้ดคำาสั่ง (Source Code) ไม่ตรงกับ ไวยากรณ์ของภาษานั้นๆ โดยส่วนใหญ่แล้วตัวแปลภาษาจะเป็นตัวแสดง ผลแจ้งให้รู้ 4.2 ข้อผิดพลาดที่เกิดจากการตีความหมายของปัญหาผิด (Logical Error) เป็นข้อผิดพลาดที่เกิดจากการวิเคราะห์งานหรือเขียนผังงานที่ผิด เช่น ต้องการนำาค่า A บวก B แต่เขียนเครื่องหมายเป็นลบ ทำาให้ค่าที่ คำานวณออกมาไม่ถูกต้อง วิธีการแก้ไขคือทำาการไล่โปรแกรมที่ละคำาสั่ง 5.ขั้นตอนการเขียนเอกสารประกอบ หลักการทดสอบโปรแกรมผ่านแล้ว ควรทำาเอกสารประกอบการใช้ งานโปรแกรมด้วย โดยรวมเป็นการอธิบายรายละเอียดของโปรแกรมว่าจุด ประสงค์ของโปรแกรมคืออะไร มีขั้นตอนการทำางานของโปรแกรมอย่าไร เอกสารประกอบการใช้งานโดยทั่วไปจะมี 2 รูปแบบ คือ 5.1 คู่มือผู้ใช้(Users Manual) คู่มือนี้เน้นเรื่องการใช้งานโปรแกรม เป็นหลัก เช่น โปรแกรมนี้ใช้ทำาอะไร วิธีเปิดโปรแกรม วิธีป้อนข้อมูล 5.2 คู่มือโปรแกรมเมอร์ (Programmers Manual) คู่มือนี้จะอธิบาย รายละเอียดต่างๆเกี่ยวกับชื่อโปรแกรมส่วนหลัก โปรแกรมแกรมย่อย แต่ละ
  • 10. 10 โปรแกรมย่อมมีหน้าที่อย่างไร คู่มือนี้จะมีประโยชน์ต่อการปรับปรุงแก้ไข โปรแกรมในอนาคต ความรู้เบื้องต้นเกี่ยวกับภาษาซี การที่จะใช้คอมพิวเตอร์ช่วยงานให้ได้ประสิทธิภาพเพียงใดนั้น ย่อม ขึ้นอยู่กับปัจจัยหลัก ได้แก่ ความเหมาะสมทางด้านคอมพิวเตอร์ฮาร์ดแวร์ กับคอมพิวเตอร์ซอฟท์แวร์ วิทยาการทั้งสองด้านได้มีการพัฒนาอย่างต่อ เนื่องทั้งทางด้านฮาร์ดแวร์ได้แก่เครื่องคอมพิวเตอร์และอุปกรณ์ในระบบ ที่ ต้องอาศัยค่าใช้จ่ายค่อนข้างสูงและระยะเวลาในการวิจัยพัฒนา ส่วนทาง ด้านซอฟแวร์ได้แก่ ภาษาคอมพิวเตอร์ ซึ่งก็เป็นเครื่องมืออีกอย่างหนึ่งใน การพัฒนาระบบคอมพิวเตอร์ให้ทำางานอย่างมีประสิทธิภาพด้วยเหมือนกัน ภาษาคอมพิวเตอร์เป็นผลจากการพัฒนาทางด้านคอมพิวเตอร์ที่ กระทำามาอย่างต่อเนื่อง ภาษาซี(C Language) เป็นอีกภาษาหนึ่งทีได้่ พัฒนาขึ้นครังแรกเพื่อใช้เป็นภาษาในการพัฒนาระบบยูนิกส์ (UNIX ้ Operating system) แทนที่ภาษาแอสเซมบลี ซึ่งเป็นภาษาระดับตำ่าที่ สามารถกระทำากับระบบฮาร์ดแวร์ได้ด้วยความรวดเร็ว แต่จุดอ่อนของภาษา แอสเซมบลี้ก็คือมีความยุงยากในการใช้งานและมีความแตกต่างกันไป ่ เฉพาะแต่ละเครื่อง เดนนิส ริตชี (Dennis Ritchie) จึงได้คิดค้นพัฒนา ภาษาใหม่ขึ้นมา โดยการรวบรวมเอาจุดเด่นของภาษาระดับสูงมาผนวกเข้า กับภาษาระดับตำ่า โดยเรียกชื่อว่า ภาษาซี ปัจจุบันภาษาซี ได้รับความนิยมอย่างแพร่หลาย เนื่องจากความ สามารถ ความกะทัดรัดและคุณสมบัติอื่นๆอีกหลายประการซึงพิสูจน์ให้ ่ เห็นว่าภาษาซีเหมาะสำาหรับการเขียนโปรแกรมประยุกต์กับงานต่างๆ พัฒนาการของภาษาซี เดนนิส ริตชี แห่งศูนย์วิจัยเบลล์ (Bell Laboratory) มลรัฐนิวเจอร์ซี สหรัฐอเมริกา พัฒนาภาษาซีขึ้นในปี พ.ศ. 2515 โดยได้รับแนวความคิด มาจากภาษาบี (B Language) ีีีพัฒนาโดย เคน ทอมสัน (Ken ่ Thomson) ในปี พ.ศ. 2513 ลำาดับขั้นของการพัฒนาภาษาซีมีดังนี้ Algol 60 คิดค้นโดยองค์การ International Committee ปี CPL (Comined Programming Language) พัฒนาโดยมหาวิทยาลัย Cambridge ปี พ.ศ. 2 BCPL(Basic Comined Programming Language) B พัฒนาโดย Ken Thomson แห่ง Bell
  • 11. 11 C พัฒนาโดย Dennis Richie แห่ง Bell Laboratory คุณสมบัติเด่นของภาษาซี เนื่องจากภาษาซีเป็นภาษาคอมพิวเตอร์ที่ไม่ขึ้นอยู่กับโปรแกรมจัด ระบบงาน (OS – Operating System) หรือขึ้นอยู่กับตัวเครื่อง แต่ภาษาซี สามารถกระทำาโดยตรงกับตัวเครื่อง โดยมีรูปแบบของภาษาเหมือนกับ ภาษาระดับสูงทั่วไป จึงจัดภาษาซีไว้เป็นภาษาระดับกลาง (Middel – Level Language) รูปแบบของภาษาซีจะอาศัยหลักการของโปรแกรมโมดูล (Module) ซึ่งมีรปแบบของไวยกรณ์ภาษา (Syntex) ทีแน่นอน สามารถนำามา ู ่ ประยุกต์เข้ากับงานต่างๆได้ง่าย จึงจัดว่าเป็นภาษาที่มีโครงสร้าง (Structured Language) เช่นเดียวกับภาษา Pascal ซึ่งแตกต่างจาก ภาษาระดับสูงอื่นที่ไม่เป็นโครงสร้าง เช่น BASIC, FORTRAN หลักเกณฑ์พื้นฐานที่สำาคัญของภาษาโครงสร้าง ประกอบด้วย 3 ส่วน ได้แก่การทำาตามลำาดับคำาสั่ง (Sequencing) การกำาหนดทางเลือก (Selection) และการทำาซำ้า (Iteration) ความแตกต่างระหว่างภาษาที่เป็น โครงสร้างกับภาษาที่ไม่เป็นโครงสร้างจะอยู่ที่ส่วนที่ 2 และ 3 ในส่วนแรก นั้นการเขียนโปรแกรมทุกๆภาษาจะยึดหลักทำาตามลำาดับคำาสั่งเช่นเดียวกัน ส่วนที่ 2 และส่วนที่ 3 ภาษาที่เป็นโครงสร้างจะมีคำาสั่งให้เลือกใช้มากกว่า ในรูปแบบที่เฉพาะตัวตามแต่เงือนไขและสถานการณ์ โดยจะหลีกเลียงการ ่ ใช้คำาสั่ง GOTO ทีทำาให้โปรแกรมเข้าใจยาก สับสนและไม่เป็นระเบียบใน ่ ลักษณะของภาษาที่ไม่เป็นโครงสร้าง ภาษาซีจัดเป็นภาษาที่เป็นโครงสร้าง ทีมีคำาสั่งในส่วนของการ ่ กำาหนดทางเลือกและคำาสั่งของการทำาซำ้าให้เลือกใช้หลายคำาสั่งตาม ลักษณะงาน จึงทำาให้ภาษาซีมีความอ่อนตัว (Flexible) คือ ความสามารถ ในการเขียนโปรแกรมได้หลายรูปแบบในการทำางานแบบเดียวกัน นอกจาก นั้นยังมีคุณสมบัติเด่นหลายประการ เป็นต้นว่าประสิทธิภาพการทำางานของ โปรแกรมที่ได้หลังจากการคอมไพล์ (Compile) หรือขนาดของโปรแกรม รวมทั้งความรวดเร็วในการทำางาน จุดเด่นที่สำาคัญอีกประการหนึงได้แก ่ ทางด้าน portability ของโปรแกรมซึ่งหมายถึง ความคล่องตัวในการโยก ย้ายที่จะนำาโปรแกรมที่เขียนขึ้น ไปทำางานบนเครื่องคอมพิวเตอร์ระบบใดๆ ก็ได้ โดยการแก้ไขโปรแกรมเพียงเล็กน้อยหรือไม่ต้องเปลี่ยนแปลงแก้ไข เลย เนื่องจากโครงสร้างภาษาถูกออกแบบให้มลักษณะเป็นมาตรฐาน มี ี ความยืดหยุ่นไม่ขึ้นอยู่กับชนิดของคอมพิวเตอร์ เนื่องจากภาษาซีได้รับ
  • 12. 12 ความนิยมอย่างแพร่หลายจึงมีมาตรฐานที่กำาหนดขึ้นเพื่อควบคุมชื่อว่า ANSI (American national Standard Institute) โครงสร้างของโปรแกรมภาษาซี ภาษาซีเป็นภาษาโครงสร้างที่มรูปแบบไวยากรณ์ที่แน่นอน ทีมีคำาสั่ง ี ่ ให้เลือกใช้งานตามลักษณะงานต่างๆมากมาย โครงสร้างของภาษาซีจะ พิจารณาโปรแกรมเป็นส่วนย่อยหลายๆส่วนมาประกอบกันเข้าเป็น โปรแกรมโดยเรียนส่วนย่อยๆ นั้นว่าฟังก์ชัน ดังนั้น ในโปรแกรมภาษาซีจึง ประกอบด้วยฟังก์ชันหลายฟังก์ชัน ส่วนหนึ่งเป็นฟังก์ชันที่กำาหนดตาม ไวยากรณ์ของภาษาและอีกส่วนเป็นเป็นฟังก์ชันที่ผู้เขียนโปรแกรมสร้างขึ้น ภายในภาษาซี ได้รวบรวมโปรแกรมต่างๆเพื่ออำานวยความสะดวก สำาหรับผูใช้ประกอบด้วย ้ 1. โปรแกรม Editor สำาหรับเขียน สร้างหรือแก้ไขโปรแกรมภาษาซี ให้เป็น Source File 2. โปรแกรม Compile สำาหรับแปลงภาษาซีจาก Source File ให้ เป็น Object File ซึ่งเป็นรหัสภาษาเครื่อง 3. โปรแกรม Linker สำาหรับ Link ตัว Object File กับ Library Files ให้เป็น Executable File (.EXE File) ทีสามารถใช้งานกับดอส ่ พิจารณาจากโปรแกรมภาษาซี #include <stdio.h> main() { printf(“C Language”); } เมื่อ Run โปรแกรม โดยการกด Ctrl F9 เครื่ องจะทำา การ Compile โปรแกรมจาก Source File ให้ เ ป็ น Object File จากนั้ น ทำา การ Link กั บ ไฟล์ Libary โดยอัตโนมัติ ผลลัพธ์จะเป็น Executable File สามารถเรียก ดูผลลัพธ์ได้โดยการกด Alt F5 #include <stdio.h> เป็นส่วนประมวลผลก่อนของโปรแกรม ในที่นี้ เ ป็ น ก า ร สั่ ง ใ ห้ C Compile นำา ไ พ ล์ อิ น พุ ท แ ล ะ เ อ า ท์ พุ ท ม า ต ร ฐ า น (Standard Input Output) นำา มารวมกับฟังก์ชันหรือคำา สั่งในโปรแกรมที่ เขียนขึ้น main() เป็นฟังก์ชันแรกของภาษาที่ต้องเริ่มต้นด้วยฟังก์ชัน main() ทุกโปรแกรม
  • 13. 13 printf(“C Language”); เป็ น คำา สั่ ง ในภาษาซี ที่ เ ขี ย นอยู่ ใ นบล็ อ ค โดยมีวงเล็บปีกกา { } เป็นตัวกำา หนดขนาดของบล็อก ส่วน printf หมาย ถึงให้พิมพ์ ข้อความที่กำาหนดภายในวงเล็บ จากโปรแกรม จะเห็นว่าโปรแกรมประกอบด้วย 3 ส่วนด้วยกัน คือ #include <stdio.h> #Header main() main() { printf(“C Language”); Function() } 1. #Header ไพล์ เ ฮดเดอร์ (#Header) เป็ น ส่ ว นแรกของโปรแกรม ภาษาซีที่กำาหนดไว้ก่อนที่จะมีการประมวลผลในโปรแกรมเพื่ออ้างถึงไฟล์ บางไฟล์ที่ไม่มีอยู่ใยโปรแกรมที่เขียนขึ้น โดยที่จะต้องนำา เฮดเดอร์ไฟล์ที่ เขียนขึ้นในโปรแกรมในการคอมไพล์ ดังนั้น โปรแกรมภาษาซีจึงประกอบ ด้ วยคำา สั่ งหรือไฟล์ที่ เขี ยนขึ้น เองส่ วนหนึ่ง และอีก ส่ว นหนึ่ง ได้ แก่ ไ ฟล์ ที่ เขียนขึ้นจากไดเร็กทอรีอื่นๆซึ่งในโปรแกรมภาษาซีที่ใช้งานจริง จะมีการ เรียกไฟล์เฮดเดอร์ไฟล์มากกว่า 1 ไฟล์ ส่วนใหญ่ไฟล์เฮดเดอร์จะประกอบ ด้วยข้อมูลเกี่ยวกับการจัดการ เช่น Input, Output หรืออื่นๆ คำา สั่งที่เรียก ไฟล์เฮดเดอร์ก็คือ #include เมื่อเรียกไฟล์ stdio.h ซึ่งเป็นไฟล์มาตรฐาน อิ น พุ ท แ ล ะ เ อ า ท์ พุ ท #include <stdio.h> คำา สั่ ง #include เ รี ย ก Compile Directive เป็นคำา สั่งพิเศษสำา หรับช่วยในการคอมไพล์โปรแกรม ภาษาซี คำา สั่งนี้เรียกมาจากส่วนอื่น จึงไม่ต้องลงท้ายด้วยเครื่อ งหมาย ; (Semicolon) เหมือนกับประโยคภาษาซี แต่ต้องเขียนติดกันห้ามเว้นวรรค ระหว่าง # กับคำาสั่ง 2. main() เป็ น ฟั ง ก์ ชั น ในภาษาซี ที่ กำา หนดไว้ ตั้ ง แต่ ต้ น ของโปรแกรม หลังจากไฟล์ เฮดเดอร์ เพื่อบอกการเริ่มต้นของโปรแกรม โดยมีวงเล็บที่ จะส่งผ่านค่าพารามิเตอร์ไปยังฟังก์ชันอื่นๆในโปรแกรม เนื่องจากภาษาซี จะประกอบด้ ว ยฟั ง ก์ ชั น ดั ง นั้ น main() จึ ง ถื อ เป็ น ฟั ง ก์ ชั น หนึ่ ง และเป็ น ฟังก์ชันแรกเสมอของโปรแกรม 3. Function() หมายถึง โปรแกรมย่อยที่ทำางานอย่างใดอย่างหนึ่งและ จะทำางานเมื่อชื่อของฟังก์ชันถูกเรียกใช้ ฟังก์ชันในภาษาซีก็มีความหมาย เช่นเดียวกัน ประกอบด้วยคำา สั่ง นิพจน์ ข้อมูลหรือฟังก์ชันย่อยรวมกันเข้า เป็ น ฟั ง ก์ ชั น โดยมี เ ครื่ อ งหมายวงเล็ บ ปี ก กา { } เป็ น ตั ว กำา หนดขนาด เรียกว่าบล็อค (Block) ภายในวงเล็บปีกกาซึ่งเป็นฟังก์ชันหนึ่งๆ อาจจะมี ฟั ง ก์ ชั น ย่ อ ยซ่ อ นอยู่ ก็ ไ ด้ ลั ก ษณะของฟั ง ก์ ชั น ภาษาซี จ ะเหมื อ นกั บ โพรซีเดอร์ในภาษาปาสคาล ฟังก์ชันที่เขียนขึ้นในบล็อค จะประกอบด้วย 1. คำาสั่ง (Key Word ) ในภาษาซี
  • 14. 14 2. ตัวแปรและข้อมูล (Variable and Data) 3. ตัวกระทำาและนิพจน์ (Operrator and Express) 4. ฟังก์ชันย่อย รายละเอียดของเมนู เมนูหลัก (Main Menu) ประกอบด้วย File Edit Search Run Compile Debug Project Options Window และ Help File เป็นเมนูที่ใช้ในการเก็บหรือ save โปรแกรม และเรียกโปรแกรมที่ เก็บเอาไว้ขึ้นมา การเข้าสู่เมนู File ทำาได้โดยคลิกเมาส์ที่ file หรือ กดคียื <ALT> แล้วตามด้วยตัว <F> จากนั้นจะเกิดเมนูย่อยขึ้นมา ซึ่งผู้ใช้สามารถเลือกเมนูต่าง ๆ ได้โดยกดคีย์ลูกศรขึ้นลง หรือกด คีย์ลัด (Hot Key) ตามที่เขียนเอาไว้หลังเมนู สำาหรับเมนูย่อยที่นิยม ใช้กันทั่วไปได้แก่
  • 15. 15 New ใช้ สำาหรับ สร้าง ไฟล์ โปรแกร มใหม่ Open ใช้ สำาหรับ เปิดไฟล์ ที่มีอยู่ แล้วขึน้ มาแก้ไข หรือมา แสดงบน หน้าจอ Save ใช้ สำาหรับ จัดเก็บ ไฟล์ที่ สร้างเอา ไว้ Save as ใช้ สำาหรับ จัดเก็บ โดย สามารถ ตั้งชื่อ ไฟล์ใหม่ ได้ Quit ใช้ สำาหรับ ออกจาก โปรแกร ม
  • 16. 16 เป็นเมนูที่ใช้ในการแก้ไขโปรแกรม การสำาเนาหรือการย้าย Edit ข้อความที่ปรากฏ บนเอดิเตอร์ เป็นเมนูที่ใช้ในการค้นหาคำาหรือข้อความที่เขียนในโปรแกรม Search ตลอดจนการแทนที่คำา Run เป็นเมนูที่ใช้ในการรันโปรแกรมที่เขียนด้วยคำาสั่งแบบต่างๆ เป็นเมนูที่ใช้ในการแปลข้อมูลของโปรแกรมที่เป็น Source file ให้ Compile เป็น Object file Debug เป็นเมนูที่ใช้ในการตรวจสอบข้อผิดพลาดของโปรแกรม เป็นเมนูที่ใช้ในการใช้ในการระบุไฟล์ต่างๆ ที่จำาเป็นต้องนำามาใช้ Project ในตัวโปรแกรมและ Project ที่ทำางานอยู่ เป็นเมนูที่ใช้ในการกำาหนดรายละเอียดต่างๆ ของคอมไพเลอร์ เช่น Options Directories Compiler เป็นต้น เป็นเมนูที่ใช้ในการจัดการเกี่ยวกับหน้าต่างที่ใช้ในการเขียน Window โปรแกรม เป็นเมนูที่ใช้ในการขอความช่วยเหลือหรือรายละเอียดเกี่ยวกับ Help โปรแกรมในลักษณะต่างๆ ฟังก์ชั่นพื้นฐานในภาษาซี clrscr( ); เป็ น ฟั ง ก์ ชั่ น ที่ ใ ช้ สำา หรั บ ล้ า งหน้ า จอ ถู ก นิ ย ามไว้ ใ น conio.h รูปแบบ clrscr(); printf ( ); เป็นฟังก์ชั่นที่ใช้พิมพ์หรือแสดงข้อความออกทางจอภาพ ถูกนิยามไว้ใน stdio.h รูปแบบที่ 1 printf(“ข้อความที่ต้องการแสดงผล”); เช่น printf(“THAILAND”); ผลของการรันโปรแกรม แสดงข้อความ THAILAND ออกทาง หน้าจอ รูปแบบที่ 2 printf(“ตัวกำาหนดชนิดข้อมูล”,ตัวแปร); เช่น ถ้ากำาหนด A=10 printf(“%d”,A);หมายถึงการนำา ค่าของตัวแปร A มาแสดงผล บนจอภาพในรูปจำานวนเต็ม ผลของการรั น โปรแกรม แสดงตั ว เลขจำา นวน 10 ออกทาง จอภาพ รูปแบบที่ 3
  • 17. 17 printf(“ข้อความ ตัวกำาหนดชนิดข้อมูล”,ตัวแปร); เช่น ถ้ากำาหนด A=20 printf(“Data A = %d”,A); ผลของการรับโปรแกรม จะแสดงค่าของ A ซึ่งมี่ค่าเท่ากับ 20 ว่า Data A = 20 getch(); เป็นฟังก์ชั่นรอรับการกดแป้นพิมพ์ 1 ครั้งและไม่แสดงผล บนจอภาพ ถูกนิยามไว้ใน conio.h รูปแบบ getch(); textcolor(); เป็นฟังก์ชั่นที่ใช้กำา หนดสีของตัวอักษรจะต้องใช้ร่วมกับ ฟังก์ชั่น cprintf(); ถูกนิยามไว้ใน conio.h รูปแบบ textcolor(ค่าสี);*ค่ า สี ส ามารถพิ ม พ์ ตั ว อั ก ษรหรื อ ใช้ เ ป็ น หมายเลขค่าสีก็ได้ เช่น textcolor (RED|BLINK); *ก่ อ น ห น้ า คำา สั่ ง BLINK ใ ช้ เครื่องหมาย or ในภาษาซี(กด shift + ) cprintf(“ELECREONIC”); ผลของการรั บ โปรแกรม จะแสดงคำา ว่ า ELECTRONIC สี แ ดง และกระพริบ ตารางแสดงค่าสีในฟังก์ชั่น textcolor ค่าสี สีที่แสดง 0 BLACK ดำา 1 BLUE นำ้าเงิน 2 GREEN เขียว 3 CYAN นำ้าเงินเขียว 4 RED แดง 5 MAGENTA ม่วง 6 BROWN นำ้าตาล 7 LIGHTGRAY เทาอ่อน 8 DARKGRAY เทาเข้ม 9 LIGHTBLUE นำ้าเงินอ่อน 10 เขียวอ่อน LIGHTGREEN 11 นำ้าเงินเขียวอ่อน LIGHTCYAN 12 LIGHTRED แดงอ่อน
  • 18. 18 13 ม่วงอ่อน LIGHTMAGEN TA 14 YELLOW เหลือง 15 WHITE ขาว 128 BLINK กระพริบ cprintf(); เป็ น ฟั ง ก์ ชั่ น ที่ ใ ช้ แ สดงข้ อ ความหรื อ ตั ว อั ก ษรเป็ น สี อ อก ทางจอภาพตามค่าสีที่กำา หนดไว้ในฟังก์ชั่น textcolor(); มีรูป แบบการใช้งานเหมื อนกับ ฟัง ก์ชั่น printf(); ต่างกั นตรงที่ การ แสดงออกมาเป็นสี การใช้ฟังก์ชั่น cprintf(); ต้องกำาหนดสีของตัวอักษรก่อนเสมอ ฟังก์ชั่นนี้ถูกนิยามไว้ใน conio.h textbackground(); เป็ น ฟั ง ก์ ชั่ น ที่ ใ ช้ กำา หนดพื้ น สี ข องการแสดง ข้อความหรือตัวอักษร ใช้ร่วมกับฟังก์ชั่น cprintf(); และ textcolor(); ถูกนิยามไว้ใน conio.h รูปแบบ textbackground(ค่าสี); เช่น textbackground(WHITE); teaxcolor(RED); cprintf(“THAILAND”); ผลของการรันโปรแกรม แสดงข้ อ ความ THAILAND เป็นสีแดงบนพื้นสีขาว gotoxy(); เป็นฟังก์ชั่นที่ใชกำา หนดตำา แหน่งที่จะแสดงข้อความ ถูก นิยามไว้ใน conio.h รูปแบบ gotoxy(คอลัมน์,บรรทัด); เช่น gotoxy(33,13); กำาหนดตำาแหน่งที่จะแสดงข้อความที่คอลัมน์ 33 บรรทัด ที่ 13 getchar(); เป็นฟังก์ชั่นรอรับการกดแป้นพิมพ์ 1 ตัวอักษรและแสดง ผลบนจอภาพถูกนิยามไว้ใน conio.h รูปแบบ ตัวแปร = getchar(); หมายถึง หยุดรอรับการกดแป้นพิมพ์ 1 ตัวอักษรมาเก็บไว้ที่ตัวแปร และจะแสดงผลบนจอภาพ
  • 19. 19 getcs(); เป็ น ฟั ง ก์ ชั น ที่ ใ ช้ ใ นการรั บ ข้ อ มู ล ที่ เ ป็ น ข้ อ ความจาก แป้นพิมพ์เข้ามาเก็บไว้ในตัวแปรแบบอาเรย์ และกำาหนดจำานวนตัวอักษรที่ต้องการจะป้อน โดยคอมพิวเตอร์ จะจองพื้ น ที่ ไ ว้ ต ามจำา นวนตั ว อั ก ษร แต่ จ ะป้ อ นได้ น้ อ ยกว่ า ที่ จองไว้ 1 ตัว รูปแบบ char ตัวแปร[จำานวนตัวอักษร]; getcs(ตัวแปร); scanf(); เป็นฟังก์ชันที่ใช้รอรับค่าข้อมูลจากแป้นพิมพ์มาเก็บไว้ที่ตัวแปร เพื่อใช้ในการประมวลผลและการ คำานวณ นิยามไว้ใน stdio.h รูปแบบ scanf(“ตัวกำาหนดชนิดข้อมูล”,ตัวแปร) เช่น scanf(“%d”,&A); หมายถึง รอรับค่าข้อมูลเป็นตัวเลขจำานวนเต็มมาเก็บไว้ที่ตัวแปร A & A หมายถึง ทีอยู่ของตัวแปร A (Addres A) ่ sizeof เป็นคำา สั่งภายในของภาษาซีที่ใช้เรียกดูขนาดของพื้นที่ ในการเก็บข้อมูลของตัวแปร รูปแบบ sizeo(ตัวแปร) ตัวอย่างโปรแกรมภาษาซี textcolor ,gotoxy ,cprintf #include <stdio.h> #include <conio.h> main() { clrscr(); gotoxy(32,10); textcolor(4|128); หมายเหตุ หลังหมายเลข 4 กด Shift +
  • 20. 20 cprintf("**************************"); หมายเหตุ เครื่องหมาย * ให้กด Alt + 178 gotoxy(32,11); textcolor(15|128); cprintf("**************************"); gotoxy(32,12); textcolor(1|128); cprintf("**************************"); gotoxy(32,13); textcolor(15|128); cprintf("**************************"); gotoxy(32,14); textcolor(4|128); cprintf("**************************"); getch(); } ตัวแปร (Variable) การเขียนโปรแกรมไม่ได้มีเฉพาะส่วนที่แสดงผลเท่านั้นแต่ยังมีการ คำานวณรวมอยู่ด้วย การที่เราจะเขียนโปรแกรมให้สามารถคำา นวณผลนั้นก็ ต้ อ งมี ก ารกำา หนดตั ว แปรขึ้ น มาด้ ว ย ทำา ให้ เ ราต้ อ งมี ก ารเรี ย นรู้ เ กี่ ย วกั บ ตัวแปร ในภาษาซี ตัวแปร หมายถึง ตัวอักษร กลุ่มของตัวอักษร ที่ใช้เป็น ตัวแทนค่าของข้อมูล หรือค่าที่เปลี่ยนแปลงไปตามเงื่อนไขของโปรแกรม เพื่อใช้เก็บค่าที่ต้องการทำาการประมวลผลข้อมูล การตั้งชื่อตัวแปร 1. ต้องขึ้นต้นด้วยตัวอักษร ตัวต่อไปอาจจะเป็นตัวอักษรหรือตัวเลข ก็ได้ 2. ห้ า มใช้ สั ญ ลั ก ษณ์ อื่ น ใด ยกเว้ น เครื่ อ งหมายสตริ ง ก์ ($) และขี ด ล่าง (_) 3.ตัวอักษรภาษาอังกฤษตัวพิมพ์เล็กและตัวพิมพ์ใหญ่มีความหมาย แตกต่างกัน เช่น NUMBER, Number
  • 21. 21 4. ห้ามเว้นวรรคระหว่างตัวแปร 5. ห้ามตั้งชื่อซำ้ากับคำาสงวนในภาษาซี ก่อนที่จะนำา ตัวแปรไปใช้งานในภาษาซีจะต้องมีการประกาศตัวแปร ให้สอดคล้องกับข้อมูลที่จะนำาไปใช้โดยมีรูปแบบดังนี้ รูปแบบ type variable name; type ชนิดของตัวแปร variable name ชื่อของตัวแปร โดยส่วนใหญ่การตั้งชื่อตัวแปรจะตั้ง ให้สอดคล้องกับข้อมูลที่ต้องการจะเก็บ เช่น ต้อ งการเก็บ ค่า ชื่อ ก็ ตั้ง ชื่อ ตัวแปรว่า NAME เพื่อเวลากลับมาแก้ไขข้อมูลจะได้ ตัวอย่างการประกาศตัวแปร char a; ประกาศค่ า ตั ว แปรชื่ อ a เป็ น ข้ อ มู ล ชนิ ด characte r(ตัวอักษร) float x,y,z; ประกาศค่าตัวแปรชื่อ x,y,z เป็นข้อมูลชนิดตัวเลข จำานวนทศนิยม int count=1; ป ร ะ ก า ศ ค่ า ตั ว แ ป ร ชื่ อ count เ ป็ น ข้ อ มู ล ช นิ ด integer และกำาหนดค่าตัวแปร count มีค่า=1 char name[15] ประกาศค่ า ตั ว แปรชื่ อ name เป็ นลั ก ษณะตั ว แปร ชุดเก็บชื่อยาวไม่เกิน 15 ตัวอักษร คำา สงวน (Reseerved Words) คื อ คำา ที่ กำา หนดขึ้ น ในภาษาซี เ พื่ อ ให้ มี ความหมายอย่ า งใดอย่ า งหนึ่ ง และนำา ไปใช้ ง านแตกต่ า งกั น การที่ จ ะ ประกาศตัวแปรจะต้องไม่ซำ้ากับคำาสงวน เช่น Auto break case char Const default do double else enum short signed sizeof extern float or goto if int long return register continue while static struct switch void unsigned Union ชนิดของข้อมูล 1. ชนิ ด ข้ อ มู ล ตั ว อั ก ษร (Character) คื อ ข้ อ มู ล ที่ เ ป็ น รหั ส แทนตั ว อักษรหรือค่าจำานวนเต็ม ได้แก่ ตัวเลข ตัวอักษร และกลุ่มอักขระพิเศษ
  • 22. 22 2. ข้ อ มู ล ชนิ ด ตั ว เลขจำา นวนเต็ ม (Integer) คื อ ข้ อ มู ล ที่ เป็ น ตัวเลขจำานวนเต็ม ได้แก่จำานวนเต็มบวก จำานวนเต็มลบ 3. ข้อมูลชนิดเลขทศนิยม (Float) คือข้อมูลชนิดตัวเลขทศนิยม ลักษณะข้อมูล ขนาด ช่วงข้อมูล (ไบต์) char 1 -128 ถึง 127 unsigned char 1 0 ถึง 255 int 2 -32768 ถึง 32767 unsigned int 2 0 ถึง 65535 long int 4 -2147483648 ถึ ง 2147483649 unsigned long 4 0 ถึง 4294967296 int float 4 3.4 x 10-38 ถึ ง 3.4 x 1038 double 8 1.7 x 10-308 ถึง 1.7 x 10308 long double 10 3.4 x 10-4932 ถึ ง 3.4 x104932 การแปลงชนิดข้อมูล (Type conversion) ภาษาซี สามารถใช้ตัวแปรต่างชนิดกัน มากระทำากัน เช่น นำาเอา int + float คอมไพเลอร์ จ ะทำา หน้ า ที่ แ ปลงเลขจำา นวนเต็ ม (int) ให้ เ ป็ น เลข ทศนิยม (float) เสียก่อนโดยการเติม .0 แล้วจึงนำามาบวกกัน ในส่วนของ ตัวอักษรก็สามารถกระทำา ได้เช่นกัน เนื่องจากข้อมูลไม่ว่าจะเป็นตัวอักษร หรื อ ตั ว เลขก็ ตาม การเก็ บ ค่ า ไว้ ใ นหน่ ว ยความจำา จะเก็ บ ด้ ว ยรหั ส ซึ่ ง เป็ น ตัวเลข ดังนั้นจึงสามารถนำา เอาข้อมูลเหล่านี้มากระทำา ร่วมกันได้ โดยการ แปลงชนิดข้อมูลก่อน ซึ่งการแลงชนิดข้อมูลนี้ C Compiler จะกระทำาโดย อัตโนมัติ โดยยึดกฎเกณฑ์ว่าเมื่อนำาตัวแปลต่างชนิดมากระทำากัน คอมไพ เลอร์จะแปลงข้อมูลชนิดนั้นๆให้สูงขึ้น ก่อนที่จะนำามากระทำากัน เช่น char กระทำากับ int จะแปลงเป็น int float กระทำากับ double จะแปลงเป็น double int กระทำากับ long จะแปลงเป็น long
  • 23. 23 ตัวกำาหนดชนิดข้อมูลหรือรหัสรูปแบบ (Format Code) เมื่อเลือกใช้ ตัวแปรแบบใดแล้วต้องเลือกชนิดของตัวกำาหนดชนิดข้อมูลให้ตรงกันด้วย รหัสรูป ใช้กับตัวแปรที่เก็บค่า แบบ %c ตัวอักษรเพียงตัวเดียว %s ข้อความที่เก็บอยูในอาเรย์ ่ %d เลขจำานวนเต็ม %f เลขทศนิยม %e เ ล ข ท ศ นิ ย ม ใ น รู ป e ย ก กำาลัง %x เลขฐานสิบหก %o เลขฐานแปด ตัวอย่างโปรแกรมภาษาซีเกี่ยวกับรหัสรูปแบบ #include ………………………………………………… <conio.h> …………………………… #include ………………………………………………… …………………………… <stdio.h> ………………………………………………… main() …………………………… { ………………………………………………… clrscr(); …………………………… float a=100.2; ………………………………………………… double b=100.2; …………………………… int c=10; ………………………………………………… int d=11; …………………………… ………………………………………………… char e='x'; …………………………… char ………………………………………………… f[]="thailand"; …………………………… char g; ………………………………………………… printf("%fn",a); …………………………… printf("%fn",b); ………………………………………………… printf("%en",a); …………………………… printf("%d ………………………………………………… …………………………… %dn",c,d); …………………………………………………
  • 24. 24 printf("%on",c); …………………………… printf("%xn",d); ………………………………………………… printf("%cn",e); …………………………… ………………………………………………… printf("%sn",f); …………………………… printf("%.4sn",f) ………………………………………………… ; …………………………… g=getchar(); ………………………………………………… getch(); …………………………… } ………………………………………………… …………………………… ………………………………………………… …………………………… ………………………………………………… …………………………… ………………………………………………… …………………………… ………………………………………………… …………………………… ………………………………………………… …………………………… ………………………………………………… …………………………… ………………………………………………… …………………………… ………………………………………………… …………………………… ………………………………………………… …………………………… ตัวอย่างโปรแกรมภาษาซีเกี่ยวกับคำาสั่ง sizeof #include <stdio.h> ………………………………………… #include <conio.h> ……………… main() ………………………………………… ……………… { ………………………………………… char a; ………………
  • 25. 25 int b; ………………………………………… float c; ……………… double d; ………………………………………… ……………… long double e; ………………………………………… clrscr(); ……………… printf("Size of char : ………………………………………… %d n",sizeof(a)); ……………… printf("Size of int : ………………………………………… %dn",sizeof(b)); ……………… printf("Size of float : ………………………………………… %dn",sizeof(c)); ……………… ………………………………………… printf("Size of double : ……………… %dn",sizeof(d)); ………………………………………… printf("Size of long ……………… double : ………………………………………… %dn",sizeof(e)); ……………… getch(); ………………………………………… } ……………… ………………………………………… ……………… ………………………………………… ……………… ………………………………………… ……………… ………………………………………… ……………… ………………………………………… ……………… ………………………………………… ……………… ตัวอย่างโปรแกรมภาษาซีเกี่ยวกับคำาสั่ง gets
  • 26. 26 #include <stdio.h> .................................................. #include <conio.h> .................................... main() .................................................. { .................................... char .................................................. name[20],surname[15]; .................................... clrscr(); .................................................. printf("Enter name : "); .................................... gets(name); .................................................. printf("Enter surname : "); .................................... gets(surname); .................................................. printf("Your name is %s .................................... %s",name,surname); .................................................. getch(); .................................... } .................................................. .................................... .................................................. .................................... .................................................. .................................... .................................................. .................................... .................................................. .................................... .................................................. .................................... โปรแกรมหาพื้นที่สามเหลี่ยม #include <conio.h> .................................................. #include <stdio.h> .................................... main() .................................................. { .................................... float base,high,area; .................................................. clrscr(); .................................... printf("This is program .................................................. Triangle Arean"); .................................... printf("Enter Baes:"); .................................................. scanf("%f",&base); .................................... printf("Enter High:"); ..................................................
  • 27. 27 scanf("%f",&high); .................................... area=0.5*base*high; .................................................. printf("Area of Triangle is : .................................... %.2f",area); .................................................. getch(); .................................... } .................................................. .................................... .................................................. .................................... .................................................. .................................... .................................................. .................................... .................................................. .................................... .................................................. .................................... .................................................. ....................................