ตรรกศาสตร์กับคอมพิวเตอร์ (Computer and Logical)




ตรรกศาสตร์กับคอมพิวเตอร์ (Computer and Logical)
ตรรกศาสตร์ (Logic) ตรรกศาสตร์ (Logic) เป็นศาสตร์ที่มีความสำคัญมากในหลักการที่ว่าด้วย การหาเหตุและผล ซึ่งจะมีค่าความจริงที่เป็นจริง (Truth) หรือ ค่าความจริงที่เป็นเท็จ (False) อย่างใดอย่างหนึ่ง และตรรกศาสตร์ยังมีบทบาทมากในการใช้ชีวิตประจำวันของมนุษย์เราเป็นอย่างมาก ทั้งทางด้านการการศึกษาในเรื่องของคอมพิวเตอร์ ซึ่งตรรกศาสตร์เป็นส่วนสำคัญในการสร้างคอมพิวเตอร์และส่วนสำคัญของชีวิตคนจริงๆ แล้วในการสร้างเครื่องคอมพิวเตอร์ สร้างโปรแกรมคอมพิวเตอร์ หรือออกแบบระบบคอมพิวเตอร์ใดๆ มีการใช้ตรรกศาสตร์เข้าด้วย
ตรรกศาสตร์กับคอมพิวเตอร์ (Computer and Logical) ตรรกศาสตร์ ถือ เป็นหลักการคิดอย่างหนึ่งซึ่งเป็นเหตุเป็นผลของมนุษย์ ในการนำหลักการคิดนี้มาใช้ในระบบคอมพิวเตอร์ รวมถึงการแก้ปัญหา และการปฏิบัติงานร่วมกับคอมพิวเตอร์ เนื่องจากทั้งระบบซอฟต์แวร์และฮาร์ดแวร์จะทำงานสัมพันธ์กับความรู้ทางด้านตรรกศาสตร์ ดังนั้น ผู้ที่จะทำการเขียนโปรแกรมหรือทำงานร่วมกับระบบคอมพิวเตอร์จึงต้องทำความเข้าใจกับความรู้ทางด้านตรรกศาสตร์ดังนี้



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


2. พื้นฐานตรรกศาสตร์กับคอมพิวเตอร์ ตรรกศาสตร์ ถือว่าเป็นวิชาพื้นฐานสำหรับการเรียนวิชาที่เกี่ยวกับคอมพิวเตอร์ทั้งทางด้านฮาร์ดแวร์ และการเขียนโปรแกรม วิชานี้เป็นวิชาที่ว่าด้วยกฎเกณฑ์และเหตุผล การได้มาของผลลัพธ์ภายใต้กฎเกณฑ์ที่กำหนด ข้อความหรือการใช้เหตุผลในชีวิตประจำวันสามารถสร้างเป็นรูปแบบและกฎเกณฑ์ที่ชัดเจนได้ ในการเขียนโปรแกรมคอมพิวเตอร์สามารถใช้กฎเกณฑ์ต่าง ๆ ที่เขียนขึ้นมาพัฒนาเป็นโปรแกรมคอมพิวเตอร์ได้
2.1 ประพจน์ (Statement) ประพจน์ คือ ประโยคบอกเล่าหรือประโยคปฏิเสธที่เป็นจริงหรือเท็จเพียงอย่างใดอย่างหนึ่งประโยคที่เป็นประพจน์ เช่น

1. 5 + 6 = 11
2. 3 < - 6 3. 10 เป็นคำตอบของสมการ x – 1 = 7 4. พ.ศ. 2550 เกิดน้ำท่วมโลก 5. มีจำนวนจริงบางจำนวน x - 5 = 8 6. 0 ไม่เป็นจำนวนคู่ ประโยคที่ไม่เป็นประพจน์ ได้แก่ ประโยคคำถาม ประโยคคำสั่ง ห้าม ขอร้อง อ้อนวอน ประโยคอุทาน ประโยคแสดงความรารถนา และสุภาษิต คำพังเพย เช่น 1. ขอให้โชคดี 2. กรุณาอย่าส่งเสียงดัง 3. 5 + 6 มีค่าเท่าใด 4. น้ำขึ้นให้รีบตัก 5. X < 5 6. ทรงพระเจริญ 7. เขาเป็นนักฟุตบอลทีมชาติไทย 8. อย่าเดินลัดสนาม 9. คุณพระช่วย 2.2 การเชื่อมประพจน์ ตัวเชื่อมในทางตรรกศาสตร์สามารถนำมาใช้เชื่อมประพจน์ได้ ข้อความที่ใช้ในชีวิตประจำวัน จะมีประโยคบางประโยคซึ่งเปลี่ยนแปลงไปจากเดิมเมื่อประโยคนั้น ๆ ถูกเชื่อมด้วยตัวเชื่อม การใช้ตัวเชื่อมนี้จะช่วยในการสร้างประโยคใหม่ ๆ ให้มีความหมายกว้างขวางขึ้นกว่าเดิมได้ เช่น ถ้าเรามีประโยค 2 ประโยคคือ P แทน วันนี้อากาศร้อน Q แทน วันนี้ฝนตก การเชื่อมประพจน์ด้วยตัวเชื่อม “และ”

การเชื่อมประพจน์ด้วยตัวเชื่อม “หรือ”




การเชื่อมประพจน์ด้วยตัวเชื่อม “ถ้า...แล้ว”




การเชื่อมประพจน์ด้วยตัวเชื่อม “ก็ต่อเมื่อ”



นิเสธของประพจน์



2.3 ค่าความจริงของประพจน์ การหาค่าความจริงของประพจน์ที่ประกอบด้วยตัวเชื่อมหลายตัว สามารถทำได้โดยใช้ตารางความจริง การสร้างตารางค่าความจริงทำได้โดยเขียนค่าความจริงที่เป็นไปได้ในทุกกรณีของตัวแปรทุกตัวลงไป ถ้าหากประพจน์ใดมีวงเล็บประพจน์นั้นจะทำงานก่อน ถ้ามีนิเสธจะต้องทำประพจน์ที่มีนิเสธเป็นอันดับแรก

2.4 ประโยคเปิด ประโยคเปิดเป็นประโยคหรือข้อความที่อยู่ในรูปแบบประโยคบอกเล่าหรือปฏิเสธ ที่มีตัวแปรและสื่อแทนค่าของตัวแปรนั้นอยู่ในประโยค และยังไม่ทราบค่าความจริง ถ้าหากทำการแทนค่าตัวแปรนั้นจะทำให้ได้ค่าความจริงแน่นอน สัญลักษณ์ นิยมใช้ P(x), P(x, y), Q(x, y) แทนประโยคเปิดที่มีตัวแปรระบุในวงเล็บ
วลีบอกปริมาณ คือ คำบอกกล่าวกำหนดขีดจำกัดของปริมาณ หรือขอบเขตของตัวแปรในประโยคเปิด วลีบอกปริมาณ มี 2 แบบ คือ
1) บอกปริมาณที่หมายถึงทั้งหมดของปริมาณหรือสมาชิก
2) บอกปริมาณบางส่วน

3. การคำนวณของคอมพิวเตอร์
ระบบตัวเลขในคอมพิวเตอร์
เนื่องจากคอมพิวเตอร์ประมวลผลด้วยระบบดิจิตอล ระบบตัวเลขที่ใช้ในระบบดิจิตอลเราใช้ระบบตัวเลขฐานสองมาเปรียบเทียบการทำงานพื้นฐานของระบบดิจิตอล เนื่องจากมีการทำงานเพียงสองสภาวะคือ สภาวะลอจิก 0กับสภาวะลอจิก 1

3.1 ระบบเลขฐานสอง (Binary)
ระบบเลขฐานสอง (Binary) จะเป็นระบบเลขที่ง่ายกว่าเลขฐานสิบ เนื่องจากระบบเลขฐานสอง จะใช้อักขระแทนสองตัว ระบบเลขฐานสองนี้ใช้ในระบบดิจิตอลอิเล็กทรอนิกส์ด้วย เพราะว่าวงจรดิจิตอลจะมีเพียงสองสถานะ(two states)หรือระดับสัญญาณสองระดับ (two signal levels)โดยมีตัวเลขที่ไม่ซ้ำกันอยู่ทั้งหมด 2 ตัว คือ 0 และ 1 หรืออาจใช้คำอื่นแทน ดังนั้นข้อมูลที่คอมพิวเตอร์จะประมวลผลจะถูกเก็บในรูปแบบของเลขฐานสอง โดยหน่วยที่เล็กที่สุดของการเก็บข้อมูลคอมพิวเตอร์จะเรียกว่า บิต ระบบเลขฐานสองนี้จะมีค่าเป็นไปได้ 2 ค่า คือ 0 และ 1 ถ้าหากนำข้อมูล 0 และข้อมูล 1 หลาย ๆ บิตมาต่อเรียงกันจะทำให้สามารถนำมาแทนค่าข้อมูลได้ ดังนั้นเมื่อมีการเขียนโปรแกรมจะต้องพิจารณาด้วยว่าจะประกาศตัวแปรให้เป็นข้อมูลขนาดกี่บิตโดยควรทราบล่วงหน้าว่าข้อมูลที่จะเก็บอยู่ในช่วงใด





ระบบเลขฐานสองมีสัญลักษณ์ที่ใช้สองเลขคือ 0 กับ 1 โดยจะมีค่าประจำหลักดังนี้



แต่ละหลักของเลขฐานสองจะเรียกว่า “บิต” (Bit มาจากคำว่า Binary Digit) จะเห็นว่า
บิตทางด้านซ้ายมือจะมีค่ามากกว่าบิตทางด้านขวามือ โดยบิตทางด้านซ้ายมือที่มีค่ามากสุดเรียกว่า
“เอ็มเอสบี” (MSB ย่อมาจาก Most Significant Bit) ส่วนบิตขวามือที่มีค่าน้อยสุดเรียกว่า
“แอลเอสบี” (LSB ย่อมาจาก Least Significant Bit) รูปแบบของเลขฐานสอง เช่น 1101.112
11011.11012 เป็นต้น

3.2 การแปลงเลขฐาน เลขฐานทุกฐานสามารถเปลี่ยนและเชื่อมโยงเข้าหากันได้ แต่ในระบบดิจิตอลใช้ระบบเลขฐานสองเป็นพื้นฐาน แต่ถ้าจะให้เกิดความสะดวกในการศึกษาและพัฒนาระบบดิจิตอล เราจึงนำเลขฐานต่างๆเข้ามาใช้และเชื่อมโยงกัน

การแปลงเลขฐานสิบ เป็นเลขฐานสอง
มีวิธีการคือ ถ้าเป็นเลขจำนวนเต็มให้เอาเลขฐาน มาหารเลขฐานสิบที่ต้องการแปลง โดยหารจนกว่าจะหารต่อไปอีกไม่ได้ และเศษที่ได้จากการหารแต่ละครั้งคือค่าที่แปลงเป็นเลขฐานนั้น ค่าของเศษที่ได้จากการหารครั้งแรกให้เป็นบิตหรือหลักต่ำสุด (LSB) ส่วนเศษที่ได้จากการหารครั้งสุดท้ายให้เป็นบิตหรือหลักสูงสุด (MSB) และกรณีค่าของเลขฐานสิบเป็นทศนิยมมีวิธีการคือ ให้เอาเลขฐานมาคูณเลขฐานสิบที่ต้องการแปลง ผลลัพธ์ของการคูณที่เป็นจำนวนเต็มครั้งแรกให้เป็นคำตอบของบิตหรือหลักสูงสุด (MSB) และผลลัพธ์ของการคูณที่เป็นจำนวนเต็มครั้งสุดท้ายคือค่าบิตหรือหลักต่ำสุด (LSB)

ตัวอย่างที่ 1 จงแปลงเลขฐานสิบค่า 610 เป็นเลขฐานสอง






การแปลงเลขฐานสอง เป็นเลขฐานสิบ
มีวิธีการ คือ ให้เอาเลขแต่ละตำแหน่งของฐานคูณด้วยค่าประจำหลักของเลขฐาน แล้วนำค่าที่ได้ทั้งหมดมาบวกรวมกัน นั่นคือ ค่าเลขฐานสิบที่แปลงได้

ตัวอย่างที่ 3 จงแปลงเลขฐานสองค่า 101.112เป็นเลขฐานสิบ
วิธีทำ 101.112 = (1×22) +(0×21) +(1×20) +(1×2-1) +(1×2-2)
= 4 + 0 + 1 + 0.5 + 0.25
= 5.7510
ตอบ 5.7510

3.3 การคำนวณเลขฐานสอง
เนื่องจากเลขฐานสองเป็นพื้นฐานสำคัญของระบบดิจิตอลจึงขอกล่าวถึงวิธีการคำนวณหาค่าการบวก การลบ การคูณ และการหาร เลขฐานสอง ซึ่งมีวิธีการดังต่อไปนี้

3.3.1 การบวกและการลบเลขฐานสอง
การบวกและการลบเลขฐานสองมีวิธีการเหมือนกับการบวกลบเลขฐานสิบ
ที่เราคุ้นเคยเพียงต่างกันที่การยืม เลขฐานสิบค่าของการยืมจะได้ครั้งละสิบ แต่ถ้าเป็นเลขฐานสองค่าของการยืมก็จะได้ครั้งละสอง ซึ่งมีหลักเกณฑ์สรุปดังตารางข้างล่างนี้


ตาราง การบวกเลขฐานสอง

การบวกเลขฐานสอง 1+1 เท่ากับ 2 ของเลขฐานสิบ แต่เท่ากับ 10 ของเลขฐานสอง
เราจึงได้ผลลัพธ์เป็น 0 แล้วทด 1 เพื่อนำไปบวกกับหลักถัดไป แสดงดังตัวอย่าง

ตัวอย่างที่ 4 จงบวกเลขฐานสอง 110112 + 111012



ตัวอย่างที่ 5 จงบวกเลขฐานสอง 100112 + 101002


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



ตารางการลบเลขฐานสอง

ตัวอย่างที่ 6 จงลบเลขฐานสอง 111012 – 101102




3.3.2 การคูณและการหารเลขฐานสอง
การคูณและการหารเลขฐานสองใช้หลักการเดียวกันกับการคูณและการหารเลขฐานสิบเพียงแต่เลขฐานสองมีเพียงสองเลขคือ 0 กับ 1 ผลลัพธ์ก็มีเพียงสองเลขคือ 0 กับ 1แสดงดังตัวอย่าง

ตัวอย่างที่ 7 จงหาผลลัพธ์ต่อไปนี้
(ก) 110112 × 1012
(ข) 10012 ÷ 112





3.3.3 การคอมพลีเมนต์เลขฐานสอง (Complement) การกระทำทางคณิตศาสตร์ เป็นกระบวนการที่มีความจำเป็นอย่างยิ่งที่ระบบดิจิตอลใช้ใน
การประมวลผล ระบบเลขที่ใช้กันใน Computer จะเป็นเลขฐานสอง ดังนั้นหากต้องการบวกและลบเลขจึงจำเป็นต้องมีทั้งวงจรบวกเลขและลบเลข จึงทำให้เกิดความยุ่งยากมาก อีกทั้งหากผลลัพธ์เกิดค่าที่ติดลบจะเกิดปัญหาว่าจะแสดงเครื่องหมายอย่างไร ดังนั้น ในระบบ Computer จะมีการนำ Complement มาใช้ในการลบเลขแต่จะใช้วิธีการบวกกับ Complement ของตัวลบ ซึ่งจะได้ผลลบ และหากผลลัพธ์เกิดมีค่าติดลบ ก็จะแสดงค่าผลลัพธ์เป็นเลข Complement การทำ Complement เลขฐานสองมี 2 รูปแบบ คือ
1. รูปแบบ 1’S Complement (อ่านว่า วัน คอมพลีเมนต์)
2. รูปแบบ 2’S Complement (อ่านว่า ทู คอมพลีเมนต์)

การทำคอมพลีเมนต์เลขฐานสองแบบ 1’S Complement คือ การกลับสถานะของตัวเลขฐานสองเป็นสถานะตรงกันข้ามจากสถานะเดิม เช่น เดิมเป็นสถานะ 0 จะเปลี่ยนเป็นสถานะ 1 และถ้าเดิมเป็นสถานะ 1 จะเปลี่ยนเป็นสถานะ 0
การทำคอมพลีเมนต์เลขฐานสองแบบ 2’S Complement คือ การนำผลของ 1’S Complement บวกด้วย 1 ผลลัพธ์ที่ได้คือ 2’S Complement
การลบเลขฐานสองด้วยวิธี 1’S Complement มีขั้นตอนดังนี้
1. ถ้าบิตของตัวลบน้อยกว่าตัวตั้งให้เติม 0 ด้านซ้ายของบิตตัวลบให้เท่ากับบิตตัวตั้งแล้วทำ 1’S Complement ของบิตตัวลบ
2. นำค่าตัวลบที่ทำ 1’S Complement แล้วมาบวกกับค่าตัวตั้ง
3. ผลลัพธ์ที่ได้จากการบวกข้อ 2

- ถ้าไม่มีตัวทด ให้นำผลลัพธ์นั้นมาทำ 1’S Complementอีกครั้ง ผลจากการทำ1’S Complement นี้คือคำตอบ แต่มีค่าเป็นลบ
- ถ้ามีตัวทด ให้นำตัวทดไปบวกเข้ากับบิตขวามือสุดอีกครั้งผลลัพธ์ที่ได้คือ คำตอบ และมีค่าเป็นบวก


ตัวอย่างที่ 8 จงลบเลขฐานสองต่อไปนี้ ด้วยวิธี 1’S Complement
(ก) 101012 – 10012
วิธีทำ (ก) 101012 – 10012
จากโจทย์จะเห็นว่าตัวลบมีจำนวนบิตน้อยกว่าตัวตั้งจึงต้องเติม 0 บิตซ้ายมือของตัวลบ
หนึ่งตัวแล้วดำเนินการตามขั้นตอนได้ดังนี้

- ตัวลบ = 10012 เติม 0 จะได้ 010012 ทำ 1’S Complementจะได้ 101102



การลบเลขฐานสองด้วยวิธี 2’S Complement
เพื่อเป็นการลดข้อยุ่งยากจากวิธีการ 1’S Complement ของการบวกตัวทด จึงใช้วิธี
2'S Complement ซึ่งมีวิธีการดังนี้
1. นำค่าตัวลบมาทำ 2’S Complement
2. นำค่าตัวลบที่ทำ 2’S Complement แล้วมาบวกกับค่าตัวตั้ง
3. ผลลัพธ์ที่ได้จากการบวกข้อ 2
- ถ้าไม่มีตัวทด ให้นำผลลัพธ์นั้นมาทำ 2’S Complementอีกครั้ง ผลจาก
การทำ 2’S Complement นี้คือคำตอบแต่ มีค่าเป็นลบ
- ถ้ามีตัวทด ให้ตัดตัวทดทิ้งไป ผลลัพธ์ที่ได้คือ คำตอบ และ มีค่าเป็นบวก

ตัวอย่างที่ 9 จงลบเลขฐานสองต่อไปนี้ ด้วยวิธี 2’S Complement
(ก) 101012 – 10012




4. ภาษาคอมพิวเตอร์ (Computer Programming Language) ภาษาเป็นตัวแทนการสื่อสารระหว่าง 2 สิ่งหรือหลาย ๆ สิ่ง เพื่อให้เกิดความหมายและความเข้าใจตรงกัน เช่น มนุษย์ใช้คำพูดสื่อสารกัน ก็ถือว่าคำพูดนั้นเป็นภาษา หรืออาจใช้มือในการสื่อสารระหว่างคนที่เป็นใบ้พูดไม่ได้ หรือแม้แต่ดนตรีก็ถือว่าเป็นภาษาชนิดหนึ่งที่เป็นสากลเพราะคนชาติใดมาฟังก็จะให้ความรู้สึกเดียวกัน
ในทางคอมพิวเตอร์นั้น ก็ต้องทำการพัฒนาภาษาที่จะสื่อสารระหว่างมนุษย์กับเครื่องคอมพิวเตอร์ แต่ด้วยเหตุที่เครื่องคอมพิวเตอร์เป็นอุปกรณ์อิเล็กทรอนิกส์ซึ่งมีเฉพาะวงจรการเปิดและปิด ทำให้เครื่องคอมพิวเตอร์สื่อสารโดยใช้เลขฐานสองเท่านั้น เรียกภาษาที่ใช้เฉพาะเลขฐานสองในคอมพิวเตอร์ว่า ภาษาเครื่อง (Machine Language) การที่มนุษย์จะเรียนรู้ภาษาเครื่องนั้นยากมาก เพราะนอกจากจะต้องศึกษาถึงอุปกรณ์นั้นอีกด้วย ซึ่งจะทำให้การใช้งานคอมพิวเตอร์เป็นเรื่องยุ่งยาก จึงมีผู้คิดค้นภาษาคอมพิวเตอร์ขึ้นเพื่อทำหน้าที่ในการติดต่อสื่อสารระหว่างเครื่องคอมพิวเตอร์กับมนุษย์ โดยผู้ใช้จะสามารถติดต่อกับเครื่องคอมพิวเตอร์โดยผ่านทาง ภาษาคอมพิวเตอร์ (Computer Programming Language)

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

4.1.1 ภาษาระดับต่ำ (Low Level Language) เป็นภาษาที่มนุษย์ทำความเข้าใจได้ยาก ส่วนใหญ่ต้องทำความเข้าใจเกี่ยวกับสถาปัตยกรรมคอมพิวเตอร์ และฮาร์ดแวร์เป็นอย่างดีจึงจะสามารถ
เขียนโปรแกรมสั่งงานได้ มีข้อดีในส่วนที่เขียนโปรแกรมควบคุมฮาร์ดแวร์ แต่ละส่วนได้โดยตรงจึงทำงานได้เร็ว แต่ไม่เหมาะที่จะใช้ในการพัฒนาโปรแกรม ตัวอย่างของภาษาระดับต่ำได้แก่ ภาษาเครื่อง (Machine Language)
ภาษาเครื่อง (Machine Language)
ภาษาเครื่อง (Machine Language) เป็นภาษาคอมพิวเตอร์ระดับที่ต่ำที่สุด และเป็นภาษาที่แท้จริงของเครื่องคอมพิวเตอร์ คอมพิวเตอร์ทุกเครื่องจะทำงานได้แต่เฉพาะภาษาเครื่องเท่านั้น ในงานทางคอมพิวเตอร์ทั่วไปจะไม่เขียนเป็นภาษาเครื่อง เพราะเครื่องคอมพิวเตอร์แต่ละเครื่องจะมีลักษณะแตกต่างกันไป ภาษาเครื่องจะใช้สำหรับผู้ที่ทำหน้าที่ทำงานเกี่ยวกับระบบชุดคำสั่ง เวลาเขียนต้องเขียนในรูปของเลขฐานสอง เมื่อเขียนเสร็จต้องคิดกลับมาเป็นตัวเลขฐานสิบ หรือเป็นตัวอักษร หรือพยัญชนะต่างๆ ที่จะให้เครื่องรับกลับเข้าไปเป็นเลขฐานสอง พร้อมกับประกอบเป็นคำสั่งและรวมกันเป็นชุดคำสั่ง การเขียนชุดคำสั่งภาษาเครื่องไม่จำเป็นต้องใช้ตัวแปลชุดคำสั่งหรือชุดคำสั่งควบคุมในช่วงการทำงาน

4.1.2 ภาษาระดับสูง (higher level language)
เป็นภาษาที่เข้าใกล้ลักษณะภาษาที่มนุษย์ใช้ (human oriented language) มีลักษณะเป็นคำพูด หรือเป็นสมการในการคำนวณแบบเดียวกับที่เราใช้กันในวิชาพีชคณิต หรือตรีโกณมิติ

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

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

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







ตัวอย่างการเขียน Flow Chart ผังแบบลำดับโดยการทำงานจะเป็นไปตามลำดับลูกศร โดยจะไม่มีการข้ามขั้นตอนหรือย้อนกลับ


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

ตัวอย่างที่ 1 แสดงตัวอย่างโปรแกรมภาษาซีเบื้องต้น
#include
void main( ) {
/* Display message to standard output */
printf(“My first program.”);
}

ผลการทำงานของโปรแกรม
My first program.

รูปแสดงส่วนประกอบของโปรแกรมภาษาซีเบื้องต้น



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

# include
ในภาษาซีจะมีฟังก์ชันมาตรฐานที่ผู้ผลิตคอมไพล์ได้จัดเตรียมไว้ให้ ซึ่งมักจะเกี่ยวข้องกับการรับข้อมูล การแสดงผลข้อมูล การคำนวณ และอื่น ๆ ซึ่งผู้เขียนโปรแกรมสามารถเรียกใช้งานได้ทันที โดยไม่ต้องเขียนโปรแกรมแกรมเอง ในตัวอย่างจะมีการใช้คำสั่ง printf( ) ซึ่งเป็นคำ สั่งที่ใช้แสดงข้อความออกทางอุปกรณ์แสดงผลมาตรฐาน เช่น จอภาพคำสั่ง printf( ) เป็นการเรียกใช้ฟังก์ชันมาตรฐานซึ่งอยู่ในกลุ่มที่เรียกว่า Standard Inputand Output เมื่อจะเรียกใช้ฟังก์ชันใดในกลุ่มดังกล่าว จะต้องบอกให้คอมไพเลอร์ไปอ่านค่าที่อยู่ในอินคลูชไฟล์ที่ชื่อ stdio.h มาไว้ที่ส่วนต้นของโปรแกรม โดยใช้คำ สั่ง
#include
# define
ใช้สำ หรับการกำหนดค่าคงที่ ตัวอย่างเช่น #define YES 1 ตำสั่งดังกล่าวเป็นการกำหนดว่า หากที่ใดในโปรแกรมมีคำ ว่า YES จะถูกแทนที่ด้วยค่าทางขวามือ ในที่นี้คือ 1


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

กฎพื้นฐานที่สำคัญในภาษาซี
1. การพิมพ์ตัวอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กในภาษาซีนั้นในผลลัพธ์ที่แตกต่างกัน
(Case Sensitive) ตัวอย่างเช่น หากมีการพิมพ์ main( ) กลายไปเป็น Main( ) ก็จะเกิดความผิดพลาดขึ้น
2. ฟังก์ชันของภาษาซีจะแบ่งขอบเขตของฟังก์ชันแต่ละฟังก์ชันด้วยเครื่องหมาย { } ในตัวอย่างมี
ฟังก์ชัน void main( ) คำว่า void จะบอกให้รู้เมื่อฟังก์ชันนี้ทำ งานเสร็จจะไม่มีการคืนค่ากลับ
ยังสิ่งที่เรียกใช้งานฟังก์ชัน ในกรณีของฟังก์ชัน main( ) ก็คือจะไม่มีการคืนค่าใด ๆ กลับไปยัง
ระบบปฏิบัติการ หลังฟังก์ชันจะต้องตามด้วย ( ) เสมอ โดยที่ภายในวงเล็บจะประกอบด้วย
ค่าที่ส่งเข้ามายังฟังก์ชัน ที่เรียกว่าพารามิเตอร (Parameter) หรืออาจจะไม่มีค่าใด ๆ ส่งเข้ามาก็ได้

3. คำสั่งต่าง ๆ ซึ่งต้องเขียนอยู่ในฟังก์ชันเสมอ แบ่งเป็น 2 ส่วนคือส่วนของการประกาศตัวแปรที่
ต้องการใช้ในฟังก์ชัน และส่วนของคำ สั่งเพื่อทำ งานใดงานหนึ่ง ในที่นี้มีเฉพาะคำ สั่งที่ใช้ในการ
แสดงผลลัพธ์ออกทางจอภาพ คือ printf( ) ใช้สำ หรับการแสดงผลลัพธ์ออกทางจอภาพ หาก
ต้องการแสดงข้อความใด ๆ ออกทางจอภาพให้เขียนข้อความนั้นอยู่ภายในเครื่องหมาย “ ”

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

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

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

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



การทำงานแบบซ้ำ




5.2 ตรรกะกับฮาร์ดแวร์
ฮาร์ดแวร์ของระบบคอมพิวเตอร์เป็นลักษณะของวงจรดิจิตอล มีการทำงาน 2 ระบบคือ เปิดและปิด การทำงานจึงสัมพันธ์กับระบบเลขฐานสองคือ 0 และ 1 โดยเซตของคำตอบข้อมูลตรรกศาสตร์มี 2 ค่าคือ เป็นจริงและเป็นเท็จ โดยแทนค่าความจริงด้วยสถานะเปิด และแทนค่าความจริงที่เป็นเท็จด้วยสถานะปิด คณิตศาสตร์ที่ใช้สำหรับการทำงานของระบบดิจิตอล คือ พีชคณิต บูลีน (Boolean Algebra)
ตัวคงที่ พีชคณิตบูลีนมีค่าคงที่อยู่ 2 ตัวคือ 0 และ 1 ใช้สำหรับแทนระดับของสัญญาณทางไฟฟ้า ที่มี 2 สถานะ คือ เปิดและปิด
ตัวแปร หมายถึง ตัวอักษรหรือสัญลักษณ์ที่ใช้แทนค่าที่สามารถทาการเปลี่ยนแปลงได้ ค่าที่ตัวแปรสามารถเปลี่ยนแปลงได้มีเพียง 2 ค่าเท่านั้น คือ 0 และ 1 สัญลักษณ์ที่ใช้แทนตัวแปร เช่น A , B , C หรือ d เป็นต้น นิพจน์ที่เกิดจากตัวแปรจำนวน n ตัว จานวนของการเปลี่ยนแปลงมีค่าเท่ากับ 2n

ลอจิกฟังก์ชั่น หมายถึง สมการที่ใช้สำหรับการแสดงการทำงานทางตรรกะของตัวแปรต่าง ๆ ที่นำมากระทำกันโดยใช้เครื่องหมายการกระทำทางตรรกะ ลอจิกฟังก์ชั่นประกอบด้วย 2 ส่วน คือ ส่วนที่เป็นสัญญาณเข้าหรือตัวแปรที่ใช้สำหรับการคำนวณหาค่าการทางานของสมการ และส่วนของสัญญาณออก หรือตัวแปรที่มีผลการทำงานตามสัญญาณเข้าที่ป้อนให้กับสมการทางตรรกะ เช่น X = (A + C) ∙ (B + C) หรือ X(A,B,C) = (A + C) ∙ (B + C)
สมการนี้ประกอบด้วย ตัวแปรที่เป็นสัญญาณเข้า 3 ตัวแปร คือ A , B และ C ตัวแปรที่เป็นสัญญาณออกคือ X



คณะผู้จัดทำ



นางสาวศุภลักษณ์ จันหง่อม


นางสาวสมฤทัย คิดสำราญ


นายสรรพสิทธิ์ กล้าแรง


นางสาวสว่างจิตร จันทภักดิ์


นายสันติวงศ์ ลาทอง


นายสามารถ จันครา


นายสิทธินันท์ ประดับธรรม


นางสาวสุกัญญา สุขอุ้ม


นายอิสเรศ ส่งเสริม


นายทรงวุฒิ อ่อนน้อย


นางสาวอรนุช แท่นแก้ว


นางสาววราภรณ์ เดือนขาว