วันจันทร์ที่ 26 ธันวาคม พ.ศ. 2559

บทที่ 5 ฟังก์ชันการรับและแสดงผล และฟังก์ชันทางคณิตศาสตร์

                                            สรุปบทที่ 5
   :ฟังก์ชั่นการรับและแสดงผลและฟังก์ชั่น ทางคณิตศาสตร์:
   คำสั่งในภาษาซี ล้วนอยู่ในรูปแบบ
 ของฟังก์ชั่นทั้งสิ้น ซึ่งอาจเป็น
 ฟังก์ชั่นมาตรฐาน ที่ภาษาซีได้
 จัดเตรียมไว้ให้แล้ว นอกจากนี้ ก็ยังมีฟังก์ชั่น  ที่เราสามารถเขียนขึ้น เพื่อใช้งานเอง
ตัวอย่างฟังก์ชั่นที่ภาษาซี จัดเตรียมมาให้ เช่น ฟังก์ชั่น printf() ที่นำมาใช้เพื่อสั่งพิมพ์ข้อมูลเพื่อ แสดงผ่านทางจอภาพ หรือกรณี ต้องการรับค่าข้อมูลทางแป้นพิมพ์ ก็ต้องใช้ฟังก์ชั่น scant() เป็นต้น ที้งนี้การเรียกใช้ฟังก์ชั่นดังกล่าว จำเป็นต้องรู้ถึงรูปแบบการเขียน (Syntax) รวมถึงต้องรู้ด้วยว่าฟังก์ชั่นที่ใช้งาน เหล่านี้ ประกาศใช้อยู่ในเฮดเดอร์ไฟล์ใด นอกจากฟังก์ชั่นทั้งสองแล้ว ภาษาซีก็ยังมีฟังก์ชันอื่นๆ ที่สามารถรำมาใช้เพื่อการแสดงผลข้อมูลและการรับผลข้อมูล
         
  >>ฟังก์ชั่นการรับและแสดงผลข้อมูล<<
ในภาษาซี ได้เตรียมฟังก์ชั่น
เพื่อการรับและแสดงผลข้อมูลอยู่ หลายคำสั่งด้วยกัน ซึ่งสามารถนำ
มาเรียกใช้งานตามความเหมาะสม
   
  1. ฟังก์ชั่น printf
    
   เป็นฟั่งชั่นที่ใช้สำหรับแสดงผล
ข้อมูลที่เป็นตัวอักขระ ข้อความ หรือค่าตัวแปร โดยที่
formatControlString  คือรูปแบบที่ นำมาใช้สำหรับควบคุมการพิมพ์ รวมถึงข้อความที่ต้องการสั่งพิมพ์ ซึ่งจะต้องอยู่ภายในเครื่องหมาย " "
Printf  คือตัวแปรที่นำมาพิมพ์ ซึ่งจะจับคู่กับ formatControlString ที่สัมพันธ์กันอย่างถูกต้อง
ใส่รุป
นอกจากนี้แล้ว ยังสามารถผนวกรหัสควบคุม (Escape Sequence) เข้าไปใน FormatControlString ได้อีก ซึ่งรหัสควบคุมเหล่านี้ จะเขียนด้วยเครื่องหมาย \ และตามด้วยรหัสควบคุม ทั้งนี้ต้องระมัดระวัง
ในเรื่องของการจับคู่ระหว่างรหัสรูปแบบขัอมูล ที่ต้องตรงกับชนิดตัวแปรสั่งพิมพ์
               
   2. ฟังก์ชั่น Scanf()
    
    เป็นฟังก์ชั่นที่ใช้สำหรับรับค่าข้อมูลจากทางแป้นพิมพ์ เพื่อจัดเก็บไว้ในตัวแปร
   นอกจากนี้ ในการรับข้อมูลทางแป้นพิมพ์ด้วยฟังก์ชั่น scanf() จะต้องพิจารณาสิ่งต่อไปนี้
   1. ถ้าข้อมูลที่รับ เป็นชนิดตัวเลข ซึ่งนำไปใช้ในการคำนวณได้ จะตัองใส่เครื่องหมาย & นำหนัาตัวแปรเสมอ
    2. ถ้าขัอมูลที่รับ เป็นข้อความ อาจไม่ต้องใส่เครื่องหมาย นำหน้าตัวแปรก็ได้
               
  3. ฟังก์ชั่น getchar()
     
     เป็นฟังก์ชั่นที่นำมาสำหรับรับค่าตัวอักษรหรืออักขระ 1 ตัว โดยค่าที่ป้อนลงไปจะแสดงให้เห็นทางจอภาพ และจะต้องเคาะ Enter เพื่อแสดงถึงการสิ้นสุดการป้อน
ข้อมูลด้วย กรณีที่มีการกรอกตัวอักษรมากกว่า 1 ตัว จะมีเพียงอักษรตัวแรกเท่านั้น ที่จะถูกจัดเก็บไว้ในตัวแปร
   
   4. ฟังก์ชั่น putchar()
    
     เป็นฟังก์ชั่นที่ถูกนำมาใช้เพื่อสั่งพิมพ์ค่าตัวแปรอักขระ
ที่ถูกป้อนด้วย getchar() หรือนำมาพิมพ์หัสพิเศษได้
       
  
   5. ฟังก์ชั่น getch()  และ  getche()
     นอกจากนี้แล้ว ภาษาซียังมีฟังก์ชั่นที่นำมาใช้เพื่อการรับค่า ตัวอักขระอย่าง getch() และ getche() แต่ฟังก์ชั่นทั้งสองถูกประกาศใช้งานอยู่ในเฮดเดอร์ไฟล์ <conio.h> ดังนั้น เมื่อต้องการใช้งานฟังก์ชั่นดังกล่าว จำเป็นต้องผนวกเฮดเดอร์ไฟล์ <conio.h> ไว้ตรงส่วนหัวข้อโปแกรมด้วย
                 
                             
   >>ฟังก์ชั่นจัดการจอภาพ<<
   สำหรับฟังก์ชั่นการจัดการจอภาพ ในที่นี้จะขอกล่าวถึง
ฟังก์ชั่นที่ใช้สำหรับการล้างหน้าจอ และฟังก์ชั่นที่ใช้กำหนด
ตำแหน่งบนจอภาพ
   
   1. ฟังก์ชั่น clscr()
    เป็นฟังก์ชั่นที่ใช้สำหรับล้างจอภาพ โดยจะล้างข้อความเดิม บนจอภาพออกทั้งหมด
     
   2. ฟังก์ชั่น gotoxy()
     เป็นฟังก์ชั่นที่ใช้สำหรับกำหนดตำแหน่ง      เคอร์เซอร์บนจอภาพ บนหน้าจอแบบเท็กซ์  โหมด 
   
  >>ฟังก์ชั่นทางคณิตศาสตร์<<
   ในบทที่ผ่านมา ได้เรียนรู้เกี่ยวกับตัวดำเนินการทาง คณิตศาสตร์มาบ้างแล้ว ดังนั้น หากต้องการคำนวณหาเลข ยกกำลัง การหาค่ารากที่สอง, ค่าตรีโกณมิติยาง sine, cos, tan จะต้องทำอย่างไร
   ในภาษาซี ตัวดำเนินการทางคณิตศาสตร์ดังกล่าว จะถูกประกาศใช้งานอยู่ใน เฮดเดอร์ไฟล์ ชื่อ <math.h> โดยเฉพาะเครื่องหมายยกกำลัง ซึ่งในภาษาระดับสูงทั่วไป มักจะใช้เครื่องหมาย ^ หรือ ** แต่ภาษาซีจะใช้ฟังก์ชั่น pow() แทน
       

บทที่ 4 นิพจน์และตัวดำเนินการ

                                          สรุปบทที่ 4
                              นิพจน์และตัวดำเนินการ
               
   นิพจน์ (Expression)
   นิพจน์ในที่นี้หมายถึง นิพจน์์ทาง  คณิตศาสตร์ ซึ่งสามารถพบเห็นได้จากสูตรการคำนวณตัวเลขต่างๆ ดังนั้น นิพจน์
จึงประกอบด้วย ตัวแปร ค่าคงที่ และตัวดำเนินการทางคณิตศาสตร์มาประกอบรวมกัน
   จากนิพจน์คณิตศาสตร์ข้างต้น พบว่า ทั้ง and, score และ income จะเป็นตัวแปรที่ใช้เก็บผลลัพธ์จากการคำนวณ ส่วนนิพจน์ด้านขวาก็จะเป็นนิพจน์
แบบหลายตัวแปร ซึ่งสามารถมีได้ทั้งตัวแปรและค่าคงที่ รวมถึงตัวดำเนินการคณิตศาสตร์  เช่น + - * / เป็นต้น ในการสร้างสูตรคำนวณค่าตัวเลข โดยเฉพาะสูตรคำนวณที่มีความซับซ้อน ต้องระมัดระวังในการจัด
ลำดับนิพจน์ เพื่อให้คอมพิวเตอร์
ประวลผลอย่างถูกต้อง ทั้งนี้
ตัวดำเนินการต่างๆ ที่นำมาใช้เพื่อการคำนวณนั้น แต่ละตัวจะมีลำดับความสำคัญที่แตกต่างกัน
                        

   ตัวดำเนินการ (Operators)
ในภาษาซี มีตัวดำเนินการหลากหลายชนิด แต่ในที่นี้กล่าวถึงตัวดำเนินการพื้น
ฐานที่สำคัญ ดังต่อไปนี้
  1. ตัวดำเนินการทางคณิตศาสตร์
  2. ตัวดำเนินการยูนารี
  3. ตัวดำเนินการเปรียบเทียบ
  4. ตัวดำเนินการตรรกะ
  5. ตัวดำเนินการกำหนดค่า
    แบบผสม
  6. ตัวดำเนินการเงื่อนไข
  
  1. ตัวดำเนินการทางคณิตศาสตร์

  จัดเป็นตัวดำเนินการพื้นฐาน ที่นำมาใช้เพื่อการคำนวณ เช่น บวก ลบ คูณ หาญ และ โมดูลัส (หาญเพื่อเอาเศษ)
              
   2. ตัวดำเนินการยูนารี
    ตัวดำเนินการยูนารี ตัวแรกที่
กล่าวถึง คือ เครื่องหมายลบ ที่นำ
มาใช้นำหน้าค่าตัวเลข หรือนำหน้า ค่าตัวแปร ซึ่งจะส่งผลให้ค่าถูก
เปลี่ยนเป็นค่าติดลบโดยทันที
               
   3. ตัวดำเนินการเปรียบเทียบ
   ในภาษาซีจะมีตัวกำเนินการที่นำมาใช้เพื่อการเปรียบเทียบค่า
   
    4. ตัวดำเนินตรรกะ
   นอกจากตัวดำเนินการเปรียบเทียบแล้ว เรายังสามารถนำตัวดำเนิน
การตรรกะมาใช้ร่วมกันได้
                 
   5. ตัวดำเนินการกำหนดค่า
      แบบผสม
    จากความรู้ที่ผ่านมาได้เรียนรู้ถึง
การกำหนดค่าให้กับตัวแปรมาบ้าง
แล้ว แต่ในภาษาซียังมีตัวดำเนิน
การกำหนดค่าแบบผสม (Compound Assignment Operators)
                  
   6. ตัวดำเนินการเงื่อนไข
   ตัวดำเนินการเงื่อนไข จะนำมา
ทดสอบค่านิพจน์ทางตรรกะ ว่าจริง
หรือเท็จ
                 
   >>ตัวดำเนินการกับลำดับความ
สำคัญ<<
ตัวดำเนินการแต่ละตัวจะมีลำดับ
ความสำคัญก่อนหลังที่แตกต่างกัน โดยการประมวลผลกระทำจากตัว
ดำเนินการที่มีลำดับความสำคัญสูงก่อน แต่ถ้ากรณีที่มีลำดับความ
สำคัญเท่ากัน ตามปกติจะกระทำ
กับตัวดำเนินการจากซ้ายไปขวา กล่าวคือ จะกระทำกับตัวดำเนินการ ที่พบก่อน
                  
   >>การเปลี่ยนชนิดข้อมูล<<
ในภาษา C ยังมีตัวดำเนินการที่ เรียกว่า การแคสต์ (Castingเพื่อแปลงชนิดข้อมูลจากชนิดหนึ่ง มาเป็นอีกชนิดหนึ่งได้ วิธีทำคือ ให้ระบุชนิดข้อมูลที่ต้องการภายใน   เครื่องหมายวงเล็บ หน้านิพจน์ที่
ต้องการ
 

     

บทที่ 3 องค์ประกอบของภาษาซี ตัวแปร และชนิดข้อมูล

                                          สรุปบทที่ 3
:องค์ประกอบของภาษาซี ตัวแปร และชนิดข้อมูล:
    ภาษาซี ถูกพัฒนาขึ้นโดย เดนนิส ริตชี ที่ห้องปฏิบัติการเบลล์ ซึ่งมีต้นแบบมาจาก ภาษาบี ที่อยู่
บนรากฐานของ ภาษาบีซีพีแอล
    ทางสถาบัน ANSI ได้รับรอง
มาตรฐานภาษาซีขึ้นมา ภายใต้ชื่อ
ANSI-C ปัจจุบันได้มีการพัฒนา
ภาษาซีให้มีประสิทธิภาพมากขึ้น
เป็นเวอร์ต่างๆ มากมาย ด้วยการ
นำมาพัฒนาต่อยอดเป็น C++ หรือ C# โดยไดเ้พิ่มชุดคำสั่งที่สนับสนุน
การโปรแกรมเชิงวัตถุ และยังคง
รับรองชุดคำสั่งมาตรฐานของภาษา
ซีดั้งเดิมอยู่ด้วย
                     
          :คุณสมบัติที่โดดเด่นของภาษาซี:
 1. เป็นภาษาที่ไม่ขึ้นกับฮาร์ดแวร์และระบบ    ปฏิบัติการ                                                          :ภาษาซีสามารถรันใช้งานอยู่บนคอมพิวเตอร์  ตั้งแต่ระดับเมนเฟรมคอมพิวเตอร์ จนถึงระดับไมโครคอมพิวเตอร์ ซึ่งเมื่อเทียบกับภาษาอื่นๆแล้ว ยากที่จะหาภาษาใดเทียบเคียงได้ ดังนั้น ชุดคำสั่งที่ภาษาซีเขียนขึ้น จึงสามารถนำมาใช้งานบนคอมพิวเตอร์ต่างระดับได้ โดยแทบไม่ต้องเปลี่ยนชุดคำสั่งใดๆ
 2. เป็นภาษาที่มีความยืดหยุ่นสูงมาก                ภาษาซีถูกจัดให้อยู่ในภาษาคอมพิวเตอร์ระดับสูง แต่ภาษาซีก็ยังสมารถเขียนชุดคำสั่งเพื่อใช้งานร่วมกับภาษาระดับต่ำอย่างภาษาแอสเซมบลีได้เป็นอย่างดี จึงเป็นที่มาของภาษาระดับกลาง ที่อยู่กึ่งของภาษาระดับต่ำและภาษาระดับสูง
 3. มีประสิทธิภาพสูง                                           เปรียบเทียบระหว่างชุดตำสั่งภาษาซีกับภาษาระดับสูงอื่นๆ พบว่า ชุดคำสั่งภาษาซี กะทัดรัดและกระชับกว่า รวมไปถึงการประมวลผลที่รวดเร็วกว่าภาษาระดับสูงทั่วไป มีความรวดเร็วเทียบเคียงกับภาษาระดับต่ำ อีกทั้งยังมีระบบจัดการหน่วยความจำที่มีประสิทธิภาพที่สูงอีกด้วย
 4. ความสามารถในด้านการโปรแกรมแบบโมดูล                                                                 ภาษาซีอนุญาตให้มีการแบ่งโมดูลเพื่อแยกคอมไพล์ได้ ยังสามารถทำการลิงก์เชื่อมโยงเข้ากันได้อีก ซึ่งเป็นไปตามเทคนิคการโปรแกรมเชิงโครงสร้าง ภาษาซีนั้น เป็นภาษาที่ประกอบด้วยฟังก์ชั่นต่างๆ ที่นำมาประกอบรวมกัน โดยโมดูลต่างๆ จะเขียนอยู่ในรูปแบบของฟังก์ชั่นทั้งสิ้น
 5. มีตัวแปรชนิดพอยน์เตอร์                               ภาษาซีมี ตัวแปรพอยน์เตอร์ (Pointer) ที่สามรถเข้าถึงหรือชี้ไปยังที่อยู่ของหน่วยความจำที่ใช้จัดเก็บข้อมูลได้โดยตรง ซึ่งหาได้ยากในภาษาระดับสูงทั่วไป 
 6. ภาษาซีมองตัวอักษรตัวพิมพ์เล็กและตัวพิมพ์ใหญ่แตกต่างกัน (Case Sensitive)           การเขียนโปรแกรมบนภาษาระดับสูงทั่วไป ส่วนใหญ่มีความเคยชินกับการกำหนดชื่อตัวแปร รวมถึงการอ้างอิงตัวแปรที่อาจเป็นทั้งตัวอักษรพิมพ์ใหญ่หรือตัวอีกษรพิมพ์เล็กก็ได้ สำหรับภาษาซี ชื่อตัวแปรทั้งสองนั้น ถือเป็นคนละตัวแปรกัน ดังนั้น จัวอักษรพิมพ์ใหญ่ (Upper Case) และ ตัวอักษรพิมพ์เล็ก (Lower Case) จะมีความแตกต่างกันอย่างสิ้นเชิง เมื่อเขียนด้วยภาษาซี
              
                                 
         >>โครงสร้างโปรแกรมในภาษาซี<<
 การเขียนโปรแกรมภาษาระดับสูงทั่วไป จำเป็นต้องทำความเข้าใจกับโครงสร้างโปรแกรมภาษานั้นๆก่อน เมื่อต้องการฝึกหัดเขียนโปรแกรมภาษาซี จึงต้องเรียนรู้ถึงโครงสร้างโปรแกรมภาษาซี ซึ่งโครงสร้างโปรแกรมในภาษาซี สามารถแบ่งออกเป็นส่วนต่างๆ ได้ดังต่อไปนี้
  1. ตัวประมวลผลก่อน (Preprocessor Director) 
  2. ฟังก์ชั่นหลัก
  3. ชุดคำสั่ง
  4. คำอธิบายโปรแกรม
             
  1.  ตัวประมวลผลก่อน (Preprocessor Director)                                                           เป็นส่วนที่คอมไพเลอร์จะประมวลผลคำสั่งนี้ก่อนที่จะคอมไพเลอร์ตัวโปรแกรม ดังนั้น จึงเป็นที่มาของคำว่า Preprocessor ในส่วนนี้อาจเรียกว่าส่วนหัวของโปแกรมก็ได้
  >>เฮดเดอร์ไฟล์<< studio.h จัดเป็นเฮดเดอร์ไฟล์หนึ่งในไลบรารีใาตรฐานทั้งหมด ที่มักถูกเรียกใช้งานอยู่เสมอ เฮดเดอร์ไฟล์นี้จะเกี่ยวข้องกับอินพุตและเอาต์พุต เช่น
   >>ฟังก์ชั่น printf() ที่นำมาใช้สำหรับสั่งพิมพ์ข้อความหรือค่าตัวแปร                                        >>ฟังก์ชั่น scanf() ที่นำมาใช้สำหรับค่าผ่านทางแป้นพิมพ์ เพื่อจัดเก็บไว้ในตัวแปร
    
  2. ฟังชั่นหลัก (Main Function)                     ในภาษาซี จะมีอยู่ฟังก์ชั่นหนึ่ง ซึ่งถือเป็นโปรแกรมหลักที่ทำหน้าที่สั่งให้ชุดคำสั่งต่างๆ ทำงานเรียกว่า ฟังก์ชั่น main()
      
  3. ชุดคำสั่ง                                                      ชุดคำสั่งในภาษาซี จะถูกบรรจุอยู่ในเครื่องหมาย{ที่บอกถึงจุดเริ่มต้นการทำงานและเครื่องหมาย}เพื่อบอกจุดสิ้นสุดของการทำงาน นอกจากนี้ ภายในเครื่องหมาย{ยังสามารถมีบล็อก { } ซ้อนย่อยเข้าไปได้อีก และที่สำคัญ เมื่อสิ้นสุดประโยคคำสั่ง จะต้องลงท้ายด้วยเครื่องหมาย ; ( Semicolon) เสมอ
                 
  4. คำอธิบายโปรแกรม                                    เป็นส่วนที่โปรแกรมเมอร์สามารถนำมาใช้เพื่อประกอบคำอธิบายภายในโปรแกรม โดย คอมไพเลอร์จะไม่สนใจข้อความที่อยู่ภายใน
   >>กฎเกณฑ์การเขียนโปรแกรมภาษาซี<<
ในการเริ่มต้นฝึกหัดเขียนโปรแกรมภาษาซี จำเป็นต้องทำความเข้าใจกับกฎเกณฑ์ ต่อไปนี้
  1. ที่ส่วนหัวโปรแกรม จะต้องกำหนดค่าประมวลผลก่อนเสมอ
  2. ชุดคำสั่งในภาษาซี จะใช้อักษรตัวพิมพ์เล็กทั้งหมด
  3. ตัวแปรที่ใช้งาน จะถูกประกาศชนิดข้อมูลไว้เสมอ
  4. ภายในโปรแกรม จะต้องมีอย่างน้อยหนึ่งฟังก์ชั่นเสมอ ซึ่งก็คือ ฟังก์ชั่น main()นั้นเอง
  5. สามารถใช้เครื่องหมายปีกกาปิด { เพื่อบอกจุดเริ่มต้นของชุดคำสั่ง และเครื่องหมายปีกกาปิด }เพื่อบอกจุดสิ้นสุดของคำสั่ง
  6. เมื่อเขียนชุดคำสั่งเสร็จแล้ว ต้องจบด้วยเครื่องหมาย ;
  7. สามารถอธิบายโปรแกรมตามความจำเป็นด้วยการใช้เครื่องหมาย/*.....*/ หรือ //....
 >>ตัวแปร<< (Variables)
ตัวแปร จะนำมาใช้เพื่อจัดเก็บข้อมูล และเพื่อใช้งานในโปรแกรม โดยค่าข้อมูลที่บันทึกอยู่ในตัวแปรนั้น จะถูกจัดเก็บไว้ในหน่วยความจำหลักที่สามารถนำไปประมวลผล และอ้างอิงภายในโปรแกรมได้ ตัวแปรที่ใช้งานภาษาซี จำเป็นต้องได้รับการกำหนดชนิดข้อมูลว่าใช้จัดเก็บข้อมูลชนิดใด เช่น 
  >>ตัวแปรชื่อ char1 นำไปใช้จัดเก็บอักขระ 1 ตัว
  >>ตัวแปรชื่อ name นำไปใช้จัดเก็บข้อมูลชนิดข้อความ
  >>ตัวแปรชื่อ number นำไปใช้จัดเก็บข้อมูลเลขจำนวนเต็มบวก
  >>ตัวแปรชื่อ total นำไปใช้จัดเก็บข้อมูลเลขจำนวนจริงมีทศนิยม
                  
 การตั้งชื่อตัวแปรเพื่อใช้งานในโปรแกรม จะต้องเป็นไปตามกฎเกณ์การตั้งชื่อของภาษานั้นๆ สำหรับกฎการตั้งชื่อตัวแปรในภาษาซี ประกอบด้วย
  1. สามารถใช้ตัวอักษร A ถึง Z หรือ a ถึง z รวมทั้งตัวเลข 0 ถึง 9 และเครื่องหมาย_ (Underscore) มาใช้เพื่อการตั้งชื่อตัวแปรได้ แต่มีเงื่อนไขว่า ห้ามใช้ตัวเลขนำหน้าชื่อตัวแปร
  2. ชื่อตัวแปรสามารถมีความยาวได้ถึง 31 ตัวอักษร (กรณีเป็น ANSI-C)
  3. ชื่อตัวแปร จะต้องไม่ตรงกับคำสงวน (Reserved Words) ซึ่งก็คือ ชุดคำสั่งที่ใช้ภาษาซี
                         
               
                >>ค่าคงที่<< (Constant)
 ปกติค่าที่ถูกจัดเก็บไว้ใจตัวแปรนั้น สามารถเปลี่ยนแปลงได้เสมอในระหว่างการประมวลผล แต่สำหรับตัวแปรอีกประเภทหนึ่งที่เรียกว่า ค่าคงที่ จะเป็นตัวแปรที่ เมื่อถูกกำหนดขึ้นมาแล้ว ค่าดังกล่าวจะเป็นค่านั้นๆ ตลอดในโปรแกรม ไม่สามารถเปลี่ยนแปลงอะไรได้ โดยการกำหนดค่าคงที่ในภาษซี จะใช้ไดเรกทีฟ #define ซึ่งจะประกาศไว้ที่ส่วนหัวโปรแกรม
     

    >>ชนิดข้อมูลและการประกาศตัวแปร<<
  ภาษาซีจะมีชนิดข้อมูลต่างๆ ให้เลือกใช้งานตามความเหมาะสม โดยข้อมูลแต่ละชนิด นอกจากจะใช้จัดเก็บข้อมูลที่แตกต่างกันได้แล้ว ยังมีขนาดที่แตกต่างกันด้วย 
ในภาษาซี จะมีชนิดข้อมูลหลักๆ ต่อไปนี้ คือ
ชนิดข้อมูล                         ความหมาย
char                ข้อมูลชนิดตัวอักษร              
                         (Character)
into                  ข้อมูลชนิดเลขจำนวนเต็ม
                         (Integer)
float                 ข้อมูลชนิดเลขจำวนจริง
                         (Floating Point)
double             ข้อมูลชนิดเลขจำนวนจริง 2 
                 เท่า(Double Precision Float)
                 
     >>คำสั่งนำหน้า<< มีการใช้ดังนี้
  1. signed จะกำหนดให้ชนิดข้อมูลนั้นให้สามารถมีค่าทั้งบวกและลบ
  2. unsigned จะกำหนดให้ชนิดข้อมูลที่ระบุนั้น มีเฉพาะค่าบวกเท่านั้น
  3. long จะกำหนดให้ชนิดข้อมูลที่ระบุนั้นเป็นแบบขนาดยาว เพื่อรองรับช่วงข้อมูลกว้างมากขึ้น
  4. short จะกำหนดให้ชนิดข้อมูลที่ระบุนั้น เป็นแบบชนิดสั้น

   >>ชนิดข้อมูลตัวอักษร<<
เป็นชนิดข้อมูลที่จัดเก็บตัวอักษรหรือตัวอักขระเพียง 1 ตัวเท่านั้น แต่ถ้าต้องการจัดเก็บตัวอักขระหลายๆตัว หรือกลุ่มข้อความที่เรียกว่า สตริง (String) ก็สามารถกระทำได้
                 

  1. รูปแบบการประกาศชนิดข้อมูลแบบอักขระ 1 ตัวให้กับตัวแปร
  2. รูปแบบการประกาศชนิดข้อมูลแบบสตริง
   >>ชนิดข้อมูลเลขจำนวนเต็ม<<
  ชนิดข้อมูลแบบเลขจำนวนเต็ม หมายถึงค่าตัวเลขจำนวนเต็ม แบบไม่มีทศนิยม นอกจากนี้ยังสามารถใช้คำเพิ่มเติมนำหน้าชนิดข้อมูลอย่าง short หรือ long ก็ได้
  1. เลขจำนวนเต็มแบบสั้น ชนิดข้อมูลเลขจำนวนเต็มแบบสั้น อาจระบุ short นำหน้าหรือไม่ก็ได้ ซึ่งต่างก็มีความหมายเดียวกัน
  2. เลขจำนวนเต็มแบบยาว ชนิดข้อมูลเลขจำนวนเต็มแบบยาว จะใช้พื้นที่หน่วยความจำขนาด 4 ไบต์ หรือ 32 บิต
   >>ชนิดข้อมูลทศนิยม<<
  ชนิดข้อมูลทศนิยม หรือเลขจำนวนจริง คือค่าตัวเลขที่สามารถมีจุดทศนิยม ซึ่งสามารถประกาศใช้งานตามช่วงความกว้างของค่าตัวเลขแต่ละขนาด
  1. เลขทศนิยมแบบ float ( Single Precission Float)                                             ชนิดข้อมูลประเภทนี้ จะมีขนาด 4 ไบต์ หรือ 32 บิต 
  2. เลขทศนิยมแบบ double (Double Precision Floating Point)                              ชนิดข้อมูลประเภทนี้ จะมีขนาด 8 ไบต์ หรือ 64 บิต
  3. เลขทศนิยมแบบ long double (Long Double Precision Floating Point)                 ชนิดข้อมูลประเภทนี้ จะมีขนาด 10 ไบต์ หรือ 80 บิต
                 

  >>การแสดงค่าต่ำสุด และค่าสูงสุดของชนิดข้อมูลแต่ละประเภท<<
จากชนิดข้อมูลทักแบบตัวอักขระ เลขจำนวนเต็ม และเลขตำนวนจริงนั้น ชนิดข้อมูลแต่ละประเภทจะมีช่วงข้อมูลที่แตกต่างกันไป เราจะพิสูจน์ด้วยการทดสอบว่า ชนิดข้อมูลแต่ละประเภทนั้น จะมีช่วงข้อมูลหรือช่วงค่าตัวเลขตามที่ได้กล่าวอ้างไว้จริงหรือไม่

  >>ตัวแปรโปรแกรภายนอกและตัวแปรแบบภายใน
จากเนื้อหาข้างต้นที่ผ่านมาได้กล่าวถึงการประกาศตัวแปรมาบ้างแล้ว แต่ในภาษาซียังสามารถแบ่งรูปแบบของตัวแปรที่ประกาศใช้งานในโปรแกรมออกเป็น 2 ประเภทด้วยกัน คือ
 1. ตัวแปรแบบภายนอก (Global Vriables)
ตัวแปรชนิดนี้ จะประกาศอยู่ภายนอกฟังก์ชั่น และเป็นตัวแปรสาธารณะที่ทุกๆฟังก์ชั่นภายในโปรแกรมสามารถนำมาเรียกใช้งานได้
  2. ตัวแปรแบบภายใน (Local Variable s)
  ตัวแปรชนิดนี้จะถูกกำหนดอยู่ภายในฟังก์ชั่น ถึงแม้แต่ละฟังก์ชั่นจะมีการกำหนดชื่อตัวแปรที่เหมือนกันก็ตาม แต่ก็ถือว่าเป็นตัวแปรคนละตัวกัน
                   
  
                           

บทที่ 2 หลักการเขียนโปรแกรมภาษา C และการติดตั้งโปรแกรม Turbo c++

                                             สรุปบทที่ 2
หลักการเขียนโปรแกรมภาษา C ประกอบด้วย
1. สร้างโปรแกรม(Source code)
ภาษา c สามารถใช้โปรแกรมเอดิเตอร์ เช่น (Notepad) เพื่อสร้างโปรแกรมและบันทึกไฟล์
ให้มีนามสกุลเป็น .c หรือ .cpp เช่น mysource.cpp เป็นต้น กรณีของโปรแกรม Turbo C++ ที่หนังสือเล่มนี้ใช้อ้างอิง ตัวโปแกรมจะเตรียมเครื่องมือช่วยในการเขียนโปรแกรมมาให้พร้อม คือ ภายหลังจากการติดตั้งโปรแกรม แล้วเราสามารถเปิดโปแกรมดัง
กล่าวขึ้นมาเพื่อเขียนได้ทันที เมื่อสั่งบันทึกไฟล์ โปรแกรมก็จะถูกบันทึกให้มีนาม
สกุล .c โดยอัตโนมัติ
                   
2. การคอมไพล์โปรแกรม (Compile)
เมื่อโปรแกรมถูกสร้างขึ้น ลำดับต่อไป คือ จะทำการคอมไพล์โปรแกรมเพื่อตรวจสอบข้อผิดพลาด โดยคอมไพเลอร์จะนำคำสั่งที่คนเราเข้าใจ มาผ่านการแปลเป็นภาษาเครื่องที่คอมพิวเตอร์เข้าใจ หากโปรแกรมมีข้อผิดพลาด ตัวคอมไพเลอร์จะแจ้งข่าวสารให้ทราบ ว่าได้พบข้อผิดพลาดของคำสั่งนั้นๆ ซึ่งเราจะต้องกลับไปแก้ไขให้ถูกต้อง แล้วคอมไพล์ใหม่จนไม่พบข้อผิดพลาด
    

3. เชื่อมโยงโปแกรม (Link)
เมื่อได้ออบเจ็กต์ไฟล์ ซึ่งเป็นภาษาเครื่องแล้ว ขั้นตอนต่อไปคือการลิงก์ ด้วยการนำออบเจ็กต์ไฟล์เชื่อมโยงเข้ากับไลบรารี (Library) ที่เกี่ยวข้อง จนได้เอ็กซีติวไฟล์       (Executable file) การเชื่อมโยงโปรแกรม ตามปกติตัวโปรแกรมจะทำการเชื่อมโยงให้เราโดยอัตโมัติ ภายหลังจากการคอมไพล์โปรแกรมจนเสร็จเรียบร้อย 

                             

4. การสั่งรันโปรแกรม (Run)
เมื่อเอ็กซีคิวไฟล์แล้ว ไฟล์ดังกล่าว เราสามารถเรียกใช้งานได้ เพื่อสั่งรันหรือประมวลผลทันที

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

      
  1. อินเตอร์พรีเตอร์ (Interpreter)
 เป็นตัวแปลภาษาที่จะแปลโปรแกรมแบบทีละคำสั่งพร้อมกับรันโปรแกรมไปในขณะเดียวกัน หากไม่พบข้อผิดพลาดใดๆ ก็จะนำคำสั่งถัดไปมาแปลและรันต่อไปเรื่อยๆ จนกระทั่งจบโปรแกรม หรือถ้าหากเกิดข้อผิดพลาด โปรแกรมก็จะหยุดทำงานทันที แล้วจะแจ้งข่าวสารข้อผิดพลาดให้ทราบทางจอภาพ

              
   2. คอมไพเลอร์ (Compiler)
 เป็นตัวแปลภาษาที่จะแปลแบบทั้งโปรแกรม หากแปลแล้วพบข้อผิดพลาด โปรแกรมจะไม่สามารถรันได้ ต้องกลับไปแก้ไขโปรแกรมให้ถูกต้อง แล้วคอมไพล์ใหม่ จนกระทั่งไม่พบข้อผิดพลาดใดๆ ซอร์สโค้ดที่คอมไพล์จนสำเร็จจะได้ออบเจ็กต์ไฟล์ (นามสกุล .OBJ)           โดยออบเจ็กต์ไฟล์ จะถูกนำมาลิงก์เชื่อมโยงกับไลบรารี เพื่อให้ได้เอ็กซีคิวไฟล์     (นามสกุล .EXE) ที่สามารถสั่งรันได้ทันที โดย Turbo C++

   :ขั้นตอนการติดตั้งโปรแกรม Turbo c++ เวอร์ชั่น 4.5
1. เปิดเครื่องคอมพิวเตอร์และเชื่อมต่ออินเตอร์เน็ต แล้วเข้าไปที่เว็บ Google ค้นหาคำว่า "Turbo C++ download"
2. ดาว์โหลดเสร็จแล้ว ให้นำโปรแกรมจัดเก็บไว้ที่โฟลเดอร์ C:\Turbo C++
3. ทำการแตกไฟล์ที่ย่อไว้
4. แตกไฟล์เสร็จแล้ว ให้เข้าไปในโฟลเดอร์เพื่อติดตั้ง
5. ติดตั้งตามคำแนะนำไปเรื่อยๆ จนเสร็จ
6. ติดตั้งโปรแกรมเสร็จแล้ว โปรแกรมจะเปิดโฟลเดอร์ขึ้นมา ให้ค้นหา ไอคอนชื่อ Turbo C++ ใช้เมาท์คลิกขวากด Copy
7. คลิกขวาบนพื้นที่ว่างบนเดสก์ท็อป แล้วเลือก Paste shortcut
8. ช็อตคัทถูกวางบนเดสก์ท็อปแล้ว ให้เปิดโปรแกรม
9. เมื่อโปรแกรมถูกเปิดขึ้นมาให้ คลิกปุ่ม OK เพื่อเข้าสู่การเขียนโปรแกรมต่อไป

                 
 

      :การเขียนโปรแกรม การตรวจสอบ และการแก้ไขโปรแกรม:
เมื่อติดตั้งโปรแกรม Turbo C++ เสร็จแล้ว เราก็พร้อมที่จะเขียนโปรแกรมได้แล้ว
    1. การเขียนโปรแกรม:
1.1 โปรแกรมจะเปิดไฟล์ noname00.cpp มาให้อัตโนมัติ ให้เขียนโปรแกรมลงไป
1.2 เนื่องจาก ต้องการสร้างโฟล์เดอร์ต่างหากเพื่อจัดเก็บซอร์ทโค้ด  ดังนั้น ให้เปิดไฟล์ Explorer ขึ้นมา แล้วสร้างโฟล์เดอร์ชื่อ Coding บนไดร์ฟ C:\
1.3 กลับมาที่โปรแกรม Turbo C++ คลิกเมนู File -> Save as แล้ว เลิกแหล่งเก็ไฟล์ที่พาธ   C:\Coding 
      2. การตรวจสอบโปรแกรม
การตรวจสอบโปรแกรมให้กดแป้นคีย์ ALT+F9 เพื่อคอมไพล์โปรแกรม จะพบว่าเกิดข้อผิดพลาด ให้คลิกปุ่ม OK
      3. การแก้ไขโปรแกรม
3.1 เมื่อเกิดข้อผิดพลาดขึ้นโปรแกรมจะไม่สามารถรันได้ จะต้องเข้าไปแก้ไขคำสั่งในโปรแกรมก่อน
3.2 และทำการคอมไพล์ใหม่ ซึ่งจะพบว่าไม่พบข้อผิดพลาด ให้คลิกปุ่ม OK
3.3 ขั้นตอนต่อไปจะสั่งรันโปรแกรมให้คลิกที่  เมนู Debug -> Run ซึ่งปุ่มดังกล่าวจะทำการคอมไพล์พร้อมกับสั่งรันโปรแกรม
3.4 ทดลองเข้าไปยังโฟลเดอร์ C:\Coding ก็จะพบสกุลไฟล์ ต่างๆ
      4. คำอธิบายโปรแกรม
  
บรรทัดที่         ความหมาย
    1          ระบุหมายเหตุว่าเป็นโปรแกรม                     คำนวณดอกเบี้ยอย่างง่าย
    3                  ผนวกเฮดเดอร์ไฟล์
                         <studio.h>
    4                   ฟังก์ชั่นหลัก main()
    5                  เริ่มต้นทำงานด้วย
                         เครื่องหมาย {
    6-7               ประชนิดข้อมูลให้กับตัวแปล
    9-11        กำหนดค่าเริ่มต้นให้กับตัวแปล
     14               สูตรคำนวณดอกเบี้ย 16
                         สั่งพิมพ์ค่าดอกเบี้ยที่ได้
     16                จบการทำงานด้วย
                          เครื่องหมาย}
     17                จบการทำงานด้วย
                          เครื่องหมาย} 

                                 

        :ชนิดของข้อผิดพลาด ในการเขียนโปรแกรม:
1. ข้อผิดพลาดที่เกิดจากไวยากรณ์ (Syntax Errors)                                                             ข้อผิดพลาดชนิดนี้เกิดจากการใช้ไวยากรณ์ หรือรูปแบบภาษาที่ผิด เช่นสะกดคำสั่งผิด ซึ่งเมื่อผ่านตัวแปลแล้ว ตัวแปลภาษาจะไม่รู้จักคำดังกล่าว       
2. ข้อผิดพลาดที่เกิดจากตรรกะโปรแกรม (Logic Errors)                                                  ข้อผิดพลาดชนิดนี้ เกิดจากตัวโปรแกรมเมอร์เอง เช่น การใช้ตรรกะในการสร้างเงื่อนไขที่ผิดพลาด หรือการสร้างสูตรคำนวณที่ผิด ส่งผลให้ผลลัพธ์ผิดพลาดไม่ตรงกับความเป็นจริง
3.ข้อผิดพลาดในขณะรันโปรแกรม (Runtime Errors)                                                              สำหรับข้อผิดพลาดแบบ Runtime นั้น คอมไพเลอร์จะไม่สามารถตรวจพบได้เนื่องจากรูปแบบคำสั่งผิดพลาดแต่อย่างใด เมื่อข้อผิดพลาดชนิดนี้ถูกตรวจพบโปรแกรมจะหยุดทำงานทันที

                                

บทที่ 1 หลักการเขียนโปรแกรมเบื้องต้น

                                      สรุปท้ายบทที่ 1
ขั้นตอนการเขียนโปรแกรม สามารถแบ่งออกได้ 5 ขั้นตอนด้วยกัน คือ
                 
1. การวิเคราะห์ปัญหา 
2. การออกแบบโปรแกรม
3. การเขียนโปรแกรม
4. การทดสอบโปรแกรม
5. การจัดทำเอกสารประกอบโปรแกรม
รูปแบบการเขียนโปรแกรม สามารถแบ่งออกเป็น 2 รูปแบบด้วยกันคือ
   1.การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming)
                       
โปรแกรมที่มีคุณภาพ มิใช่พิจารณาเพียงผลลัพธ์ที่ถูกต้องเท่านั้น แต่หมายถึงโปรแกรมที่ง่ายต่อการอ่าน และง่ายต่อการปรับปรุงในอนาคต โดยรูปแบบการเขียนโปแกรมเชิงโครงสร้างนั้น ก็เป็นรูปแบบการเขียนโปรแกรมชนิดหนึ่ง ที่ทำให้โปรแกรมมีโครงสร้างที่ดี ง่ายต่อการอ่านและปรับปรุง
     2.การเขียนโปแกรมเชิงวัตถุ (Object-Oriented Programming)
                    
การเขียนโปรแกรมเชิงวัตถุ ตั้งอยู่บนพื้นฐานของการแจกแจงรายละเอียดของปัญหา ด้วยการมุ่งเน้นเกี่ยวกับวัตถุในโลกแห่งความเป็นจริง ซึ่งตามปกติการเขียนโปรแกรมเชิงโครงสร้างนั้น ข้อมูลและกระบวนการจะแยกออกจากกัน แต่การโปรแกรมเชิงวัตถุนั้น จะมองวัตถุหนึ่งๆ เป็นแหล่งรวมของข้อมูลและกระบวนการเข้าไว้ด้วยกัน โดยจะมีคลาส (Class) เป็นตัวกำหนดคุณสมบัติของวัตถุ และคลาสสะสามารถสืบทอดคุณสมบัติ (Inheritance) ไปยังคลาสย่อยต่างๆได้ ที่เรียกว่า SubClass ด้วยคุณสมบัติดังกล่าวจึงทำให้เกิดการนำมาใช้ใหม่ (Reusable) ที่ทำให้ลดขั้นตอนการพัฒนาโปรแกรมลงได้ โดยเฉพาะโปรแกรมขนาดใหญ่ที่มีความซับซ้อนสูง
                         
    
การเขียนโปรแกรมเชิงโครงสร้าง ประกอบด้วย
: ชุดคำสั่งภายในโปรแกรม จะเป็นลำดับขั้นตอน (sequence)
: มีทางเลือกในการตัดสินใจทางด้านใดด้านหนึ่ง (decision)
: มีชุดคำสั่งเพื่อการทำซ้ำ (repetition)
จุดประสงค์ของเทคนิคการออกแบบ
โปรแกรมเชิงโครงสร้าง ประกอบด้วย
1. เพื่อสร้างโปแกรมให้มีคุณภาพ และทำนาย
ได้ว่าจะเกิดอะไรขึ้นในโปรแกรม
2. เพื่อสร้างโปรแกรมที่ง่ายต่อการปรับปรุงและแก้ไข
3. เพื่อให้ขั้นตอนการพัฒนาโปรแกรมมีระบบระเบียบยิ่งขึ้น
4. เพื่อให้การพัฒนาระบบมีความรวดเร็วและประหยัดต้นทุน

               

  :อัลกอริทึม (Algorithms)
สิ่งที่สำคัญของการเขียนโปรแกรมคงมิใช่การลงมือเขียนโปรแกรมโดยทันที เพราะการกระทำดังกล่าว อาจส่งผลให้โปรแกรมที่เขียนขึ้นนั้น แลดูไม่เป็นโครงสร้างที่ดีได้ ดังนั้น จึงจำเป็นต้องได้รับการออกแบบอย่างมีแบบแผนก่อน จึงไปสู่ขั้นตอนการเขียนโปรแกรมจริง และกระบวนการที่ได้รับการยอมรับก็คือ         " อัลกอริทึม"

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

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

   :ซูโดโค้ด (Pseudo Code)
ซูโดโค้ดและผังงาน ต่างก็สามารถนำมาใช้เป็นตัวแทนของอัลกอริทึมได้
ผังงานจะประกอบด้วยสัญลักษณ์ที่ใช้แทนความหมายต่างๆ ว่าการประมาลผลมีลำดับขั้นตอนใดบ้าง แต่ผังงานมีข้อจำกัดในเรื่องของการขาดรายละเอียด ดังนั้น ในการทำงานจริงๆแล้ว ซูโดโค้ดจึงมักถูกนำมาใช้เป็นตัวแทนของอัลกอริทึมมากกว่า
ซูโดโค้ดมีรูปแบบเป็นโครงสร้างภาษาอังกฤษ ที่มีความคล้ายคลึงกับภาษาคอมพิวเตอร์ระดับสูง แต่อย่างไรก็ตาม การเขียนซูโดโค้ดไม่ๆด้มีมาตรฐานการเขียนที่ชัดเจนอย่างภาษาระดับสูง ดังนั้น จึงจำเป็นต้องเรียนรู้ถึงหลักการ เพื่อสามารถเขียนซูโดโค้ดให้สามารถสื่อสารกับโปรแกรมเมอร์ได้อย่างเข้าใจ
                 
หลักวิธีการเขียนซูโดโค้ด
1. ถ้อยคำหรือประโยคคำสั่งให้เขียนอยู่ในรูปแบบของภาษาอังกฤษอย่างง่าย
2.ในหนึ่งบรรทัดให้เขียนประโยคคำสั่งเพียงคำสั่งเดียว
3. ควรใช้ย่อหน้าให้เป็นประโยชน์ เพื่อแยกคำเฉพาะ รวมถึงจัดโครงสร้างการควบคุมให้เป็นสัดส่วน ซึ่งการกระทำดังกล่าวจะทำให้อ่านง่าย
4. แต่ละประโยคคำสั่งให้เขียนลำดับจากบนลงล่าง โดยมีทางเข้าเพียงทางเดียวและมีทางออกเพียงทางเดียว
5. กลุ่มของประโยคคำสั่งต่างๆอาจจัดรวมกลุ่มเข้าด้วยกันในรูปแบบของโมดูล แต่ต้องกำหนดชื่อโมดูลเหล่านั้นด้วย เพื่อให้สามารถเรียกใช้โมดูลนั้นได้
      
  :รูปแบบการเขียนซูโดโค้ด ที่สามารถนำมาประยุกต์ใช้เพื่อการเขียนโปรแกม
1. การกำหนดค่าและการคำนวน
 :รูปแบบ:
 Name = Expression                                       # Name คือชื่อตัวแปรสำหรับเก็บค่า               # Expression คือค่าข้อมูลนิพจน์ 
2. การอ่าน/รับข้อมูล
     เครื่องหมาย = จะนำมาใช้เพื่อการกำหนดและการคำนวณ เช่น x = 0 , 
sum = x + y
การอ่านหรือรับข้อมูล สามารถใช้คำสั่ง
REND,INPUT และ GET แต่ REND มักถูกนำมาใช้สำหรับอ่านค่าที่มีอยู่แล้วมาเก็บไว้ในตัวแปร เช่น การอ่านข้อมูลจากไฟล์ในขณะที่ INPUT และ GET จะนำไปใช้สำหรับการรับค่าข้อมูลผ่านแป้นคีย์บอร์ด
3. การแสดงข้อมูล
     การแสดงผลข้อมูล สามารถใช้คำสั่ง PRINT,PROMPT และ WRITE แต่ PRINT และ PROMPT มักถูกนำไปใช้สำหรับการพิมพ์ค่าข้อมูลหรือข้อความ ในขณะที่  WRITE จะนำไปใช้สำหรับการบันทึกข้อลูลลงในแฟ้มข้อมูล
4. การกำหนดเงื่อนไข
จะใช้ประโยค IF….THEN….ELSE โดยหากเงื่อนไขที่ตรวจสอบเป็นจริง ก็จะทำกิกรรมหลัง THEN แต่ถ้าเงื่อนไขเป็นเท็จก็จะทำกิจกรรมหลัง ELSE อย่างไร กรณีที่การตรวจสอบเงื่อนไข IF ซ้อนกันหลายๆชั้น อาจทำให้แลดูยุ่งเหยิงและตรวจสอบยาก ดังนั้น จึงสามารถใช้คำสั่ง CASE…ENDCASE แทนได้ 
5. การทำงานเป็นรอบ (loop)
คำสั่งที่ใช้ทำงานเป็นรอบหรือลูป มียู่หลายรูปแบบด้วยกัน คือ
5.1 การทำงานเป็นรอบด้วยลูป WHILE…ENDWHILE                                                 เป็นลูปที่มีการตรวจสอบแบบเงื่อนไขก่อน ดังนั้น หากเงื่อนไขเป็นจริงก็จะทำกิจกรรมภายในลูปซ้ำไปเรื่อยๆ จนกระทั่ง เมื่อเงื่อนไขเป็นเท็จ ก็จะหลุดออกจากลูป แต่อย่างไรก็ตาม หากเงื่อนไขที่ตรวจสอบครั้งแรกเป็นเท็จ ก็จะไม่มีการดำเนินกิจกรรมภายในลูปเลย
5.2 การทำงานเป็นรอบด้วยลูป DO…UNTIL เป็นลูปที่อย่างน้อยต้องดำเนินการภายในลูปรอบหนึ่งเสมอ จากนั้นจึงทำการตรวจสอบเงื่อนไข โดยจะวนซ้ำไปเรื่อยๆ จนกว่าเงื่อนไขจะเป็นเท็จ จึงจะหลุดออกจากลูป
5.3 การทำงานเป็นรอบด้วยลูป FOR…NEXT เป็นลูปที่มีการกำหนดรอบการวนซ้ำที่มีจำนวนรอบที่แน่นอน เช่นกำหนดไว้ให้วน 10 รอบ ก็จะทำกิกรรมภายในลูปด้วยการวนซ้ำ 10 รอบ
6. โปรแกรมย่อย (Procedure)
กรณีที่โปรแกรมมีขนาดใหญ่ อาจเขียนซูโดโค้ดด้วยการแบ่งออกเป็นโพซีเยอร์ได้โดยแต่ละโพซีเยอร์ต่างก็มีหน้าทีของตนโดยเฉพาะ และสามารถเรียกใช้งานได้บ่อยตามที่ต้องการ สำหรับการเรียกใช้งานก็จะใช้คำสังชุด CALL แล้วตามด้วยชื่อโพรซีเยอร์ และเมื่อทำงานจนสิ้นสุดโพรซีเยอร์นั้นๆแล้ว ก็จะกลับมายังตัวโปรแกรมหลังพื่อทำงานชุดคำสั่งในลำดับถัดไป