สรุปบทที่1 เรื่องหลักการเขียนโปรแกรมเบื้องต้น
สำหรับในบทนี้ มีจุดประสงค์เพื่อแนะนำพื้นฐานขั้นตอนการเขียนโปรแกรมให้นักเรียนนักศึกษาสามารถอธิบายขั้นตอนการเขียนโปรแกรมได้และเปรียบเทียบความแตกต่างระหว่างการโปรแกรมเชิงโครงสร้างและการโปรแกรมเชิงวัตถุได้อย่างถูกต้อง บอกเทคนิคการออกแบบโปรแกรมเชิงโครงสร้างได้เห็นความสำคัญของอัลกอริทึมที่นำมาเพื่อใช้เพื่อการออกแบบโปรแกรมและสามารถบอกคุณนิสัยและประสิทธิ์ภาพของอัลกอริทึมได้ และฝึกกิจนิสัยในการเขียนโปรแกรมอัลกอริทึมหรือซูโดโค้ด เพื่ออกแบบโปรแกรมก่อนลงมือเขียนโปรแกรมจริง
ขั้นตอนการเขียนโปรแกรม สามารถแบ่งออกเป็น 5 ขั้นตอนด้วยกันคือ
1.การวิเคราะห์ปัญหา
2.การออกแบบโปรแกรม
3.การเขียนโปรแกรม
4.การทดสอบโปรแกรม
5.การจัดทำเอกสารประกอบโปรแกรม
5.การจัดทำเอกสารประกอบโปรแกรม
2. รูปแบบการเขียนโปรแกรม สามารถแบ่งออกเป็น 2รูปแบบด้วยกันคือ
2.1 การเขียนโปรแกรมเชิงโครงสร้าง
2.2 การเขียนโปรแกรมเชิงวัตถุ
3. การเขียนโปรแกรมเชิงโครงสร้าง
ประกอบด้วย
3.1 ชุดคำสั่งภายในโปรแกรม จะเป็นลำดับขั้นตอน ( Sequence )
3.2 มีทางเลือกในการตัดสินใจทางใดทางหนึ่ง (Decision )
3.3 มีชุดคำสั่งเพื่อการทำซ้ำ( Repetition )
4. จุดประสงค์ของเทคนิคการออกแบบโปรแกรมเชิงโครงสร้าง
4. จุดประสงค์ของเทคนิคการออกแบบโปรแกรมเชิงโครงสร้าง
ประกอบด้วย
4.1 เพื่อสร้างโปรแกรมให้มีคุณภาพ และทำนายได้ว่าจะเกิดอะไรขึ้นในโปรแกรม
4.2 เพื่อสร้างโปรแกรมที่ง่ายต่อการปรับปรุงและแก้ไข
4.3 เพื่อให้ขั้นตอนการพัฒนาโปรแกรมมีระบบระเบียบยิ่งขึ้น
4.4 เพื่อให้การพัฒนาระบบมีความรวดเร็วและประหยัดต้นทุนอัลกอริทึมหรือขั้นตอนวิธี คือกระบวนการทำงานที่เป็นลำดับขั้นตอน ชัดเจน
และมีการรับประกันว่า เมื่อได้ปฏิบัติถูกต้องตามขั้นตอนจนครบแล้วจะได้ ผลลัพธ์ที่ถูกต้องตามความต้องการ
อัลกอริทึมที่นำมาใช้เพื่อการแก้ปัญหาหนึ่งๆ อาจมีความแตกต่างกันได้ แต่ก็จะได้ผล เช่น เดียวกันทั้งนี้ขึ้นอยู่กับความเหมาะสม และเป็นแนวทางที่คิดว่าดีที่สุดในสถานการณ์นั้นๆ
5.คุณสมบัติของอัลกอริทึม
ประกอบด้วย
5.1 เป็นกระบวนการที่สร้างขึ้นจากกฏเกณฑ์
5.2 กฎเกณฑ์ที่สร้างอัลกอริทึมต้องไม่คลุมเครือ
5.3 การประมวลผลต้องเป็นลำดับขั้นตอน
5.4 กระบวนการต้องให้ผลลัพธ์ตามที่กำหนดในปัญหา
5.5 อัลกอริทึมต้องมีจุดสิ้นสุด
6. ในการพิจารณาถึงประสิทธิภาพของอัลกอริทึม
6.1 อัลกอริทึมที่ดีต้องใช้เวลาในการดำเนินการน้อยที่สุด
6.2 อัลกอริทึมที่ดีต้องใช้หน่วยความจำน้อยที่สุด
6.3 อัลกอริทึมที่ดีต้องมีความยืดหยุ่น
6.4 อัลกอริทึมที่ดีต้องใช้เวลาในการพัฒนาน้อยที่สุด
6.5 อัลกอริทึมที่ดีต้องง่ายต่อความเข้าใจ
ซูโดโค้ดและผังงาน ต่างก็สามารถนำมาใช้เป็นตัวแทนของอัลกอริทึมได้
ผังงานจะประกอบด้วยสัญลักษณ์ที่ใช้แทนความหมายต่างๆ ว่าการประมวลมีลำดับขั้นตอนใดบ้าง แต่ผังงานมีข้อจำกัดในเรื่องของการขาดรายละเอียด ดังนั้นในการทำงานจริงแล้วซูโดโค้ดจึงมักถูกนำมาใช้เป็นตัวแทนของอัลกอริทึมมากกว่า
ซูโดโค้ดมีรูปแบบเป็นโครงสร้างภาษาอังกฤษที่มีความคล้ายคลึงกับภาษาคอมพิวเตอร์ระดับสูง แต่อย่างไรก็ตามการเขียนซูโดโค้ดไม่ได้มีมาตรฐานการเขียนที่ชัดเจนอย่างภาษาระดับสูง ดังนั้น จึงจำเป็นต้องเรียนรู่ถึงหลักการ เพื่อสามารถเขียนซูโดโค้ดให้สามารถสื่อสารกับโปรแกรมเมอร์ได้อย่างเข้าใจ
7.หลักการเขียนซูโดโค้ด
7.1 ถ้อยคำหรือประโยคคำสั่ง ให้เขียนอยู่ในรูปแบบของภาษาอังกฤษอย่างง่าย
7.2 ในหนึ่งบรรทัดให้เขียนประโยคคำสั่งเพียงคำสั่งเดียว
7.3 ควรใช้ย่อหน้าให้เป็นประโยชน์ เพื่อแยกคำเฉพาะ รวมถึงจัดโครงสร้างการควบคุมให้เป็นสัดส่วน ซึ่งการกระทำดังกล่าวจะทำให้อ่านง่าย
7.4 แต่ละประโยคคำสั่งให้เขียนลำดับจากบนลงล่าง โดยมีทางเข้าเพียงทางเดียว และมีทางออกทางเดียวเท่านั้น
7.5 กลุ่มของประโยคคำสั่งต่างๆอาจจัดรวมกลุ่มเข้าด้วยกันในรูปแบบของโมดูล แต่ต้องกำหนดชื่อโมดูลเหล่านั้นด้วย เพื่อให้สามารถเรียกใช้งานโมดูลนั้นได้
เครื่องหมาย = จะนำมาใช้เพื่อการกำหนดค่าและการคำนวณ เช่น x=0,sum = x+y
การอ่านหรือรับข้อมูล สามารถใช้คำสั่งPRINT,PROMPT และ WPITE แต่ PRINT และPROMPT มักกูกนำไปใช้สำหรับการพิมพ์ค่าข้อมูล หรือข้อความ ในขณะที่ WIRITE จะนำไปใช้สำหรับการบันทึกข้อมูลลงในแฟ้มข้อมูล
การแสดงผลข้อมูล สามารถใช้คำสั่ง PRINT ,PROMPT ,และ WRITE แต่ PRINT และPROMPT มักถูกนำไปใช้สำหรับการพิมพ์ค่าข้อมูล หรือข้อความในขณะที่ WRITE จะรำไปใช้สำหรับการบันทึกข้อมูลลงในแฟ้มข้อมูล
การกำหนดเงื่อนไข จะใช้ประโยคIF…THEN…ELSE โดยหากเงื่อนไขที่ตรวจสอบเป็นจริง ก็จะทำกิจกรรมหลัง THEN แต่ถ้าเงื่อนไขเป็นเท็จก็จะทำกิจกรรมหลังELSE
กรณีที่มีการตรวจสอบเงื่อนไข IF ซ้อนกันหลายๆ ชั้น อาจทำให้แลดูยุ่งเหยิงและตรวจสอบยาก ดังนั้น จึงสามารถใช้คำสั่ง CASE…ENDCASE แทนได้
คำสั่งที่ใช้ทำงานเป็นรอบหรือลูป มีอยู่หลายรูปแบบด้วยกันคือ
1. ลูป WHILE…ENDWHILE เป็นลูปที่มีการตรวจสอบเงื่อนไขก่อน ดังนั้นหากเงื่อนไขเป็น จริงก็จะทำกิจกรรมภายในลูปซ้ำไปเรื่อยๆ จนกระทั่งเงื่อนไขเป็นเท็จก็จะหลุดออกจากลูป แต่อย่างไรก็ตาม หากเงื่อนไขที่ตรวจสอบครั้งแรกเป็นเท็จก็จะไม่มีการดำเนินกิจกรรมภายในลูปเลย
2.ลูป DO…UNTIL เป็นลูปที่อย่างน้อยต้องดำเนินการภายในลูปรอบหนึ่งเสมอจากนั้นจึงทำการตรวจสอบเงื่อนไขโดยจะวนซ้ำเรื่อยๆ จนกว่าเงื่อนไขจะเป็นเท็จ จึงหลุดออกจากลูป
3.ลูป FOX…NEXT เป็นลูปที่มีการกำหนดรอบการวนซ้ำที่จำนวนรอบที่แน่นอนกรณีที่โปรแกรมมีขนาดใหญ่ อาจเขียนซูโดโค้ดด้วยด้วยการแบ่งออกเป็นโพรซีเยอร์ได้โดยแต่ละโพรซีเยอร์ต่างก็มีหน้าที่ของตนโดยเฉพาะ และสามารถเรียกใช้งานได้บ่อยตามที่ต้องการ สำหรับการเรียกใช้งาน ก็จะใช้ชุดคำสั่ง CALL แล้วตามด้วยชื่อโพรซีเยอร์ และเมื่อทำงานจนโพรซีเยอร์นั้นๆ แล้ว ก็จะกลับมายังตัวโปรแกรมหลัก เพื่อทำงานชุดคำสั่งในลำดับถัดไป
สรุปบทที่ 2
สรุปบทที่ 2
เรื่อง หลักการเขียนโปรแกรมภาษา C และการติดตั้งโปรแกรมturbo C++
หลักการเขียนโปรแกรมภาษา C ประกอบด้วย
· 1. สร้างโปรแกรม
· 2. คอมไพล์โปรแกรม
· 3. เชื่อมโยงโปรแกรม
· 4. รันโปรแกรม
อินเตอร์พรีเตอร์ เป็นตัวแปลภาษาที่จะแปลโปรแกรมแบบทีละคำสั่งพร้อมกับรันโปรแกรมในขณะเดียวกัน หากไม่พบข้อผิดพลาดใดๆ ก็จะนำคำสั่งถัดไปมาแปลและรันต่อไปเรื่อยๆ จนกระทั่งจบโปรแกรม หรือหากพบข้อผิดพลาดขึ้น โปรแกรมก็จะหยุดทำงานทันที และจะแจ้งข่าวสารข้อผิดพลาดใรับทราบทางจอภาพ
คอมไพเลอร์ เป็นตัวแปลภาษาที่จะแปลแบบทั้งโปรแกรม หากแปลแล้วพบข้อผิดพลาด โปรแกรมจะไม่สามารถรันได้ ต้องกลับไปแก้ไขโปรแกรมให้ถูกต้อง แล้วคอมไพล์ใหม่จนกระทั่งไม่พบข้อผิดพลาดใดๆ
Turbo C++ เวอร์ชั่น 4.5 เป็นโปรแกรมที่รวมเอดิเตอร์และคอมไพล์เลอร์ไว้ในตัวเดียวกัน สามารถติดตั้งเพื่อใช้งานระบบปฎิบัติการWindows ได้ นอกจากนี้ตัวโปรแกรมยังมีขนาดเล็ก ทำงานรวดเร็วและมีประสิทธิภาพ เหมาะกับการนำมาใช้งานเพื่อฝึกหัดเขียนโปรแกรมได้เป็นอย่างดี เนื่องจากติดตั้งง่ายใช้งานสะดวก สามารถหาดาวน์โหลดมาใช้งานได้จากอินเทอร์เน็ต
1. ข้อผิดพลาดที่เกิดจากไวยากรณ์
2. ข้อผิดพลาดที่เกิดจากตรรกะโปรแกรม
3. ข้อผิดพลาดขณะรันโปรแกรม
2. ข้อผิดพลาดที่เกิดจากตรรกะโปรแกรม
3. ข้อผิดพลาดขณะรันโปรแกรม
สรุปบทที่ 3
เรื่อง องค์ประกอบของภาษาซี ตัวแปร และชนิดข้อมูล
ภาษาชีถูกพัฒนาขึ้นโดย เดนนิส ริตชี ที่ห้องปฏิบัติการเบลล์ ซึ่งมีต้นแบบมาจากภาษาบีที่อยู่บน รากฐานของภาษาบีซีพีแอลทางสถาบัน ANSI ได้รับรองมาตรฐานภาษาซีขึ้นมา ภายใต้ชื่อ ANSI-Cปัจจุบันได้มีการพัฒนาภาษาซีให้มีประสิทธิภาพมากขึ้นเป็นเวอร์ชั่นต่างๆ มากมายด้วยการนำมาพัฒนาต่อยอดเป็น C++ หรือ C# โดยได้เพิ่มชุดคำสั่งที่สนับสนุนการโปรแกรมเชิงวัตถุ และยังคงรองรับชุดคำสั่งมาตรฐานของภาษาซีดั้งเดิมอยู่ด้วย
ภาษาซีมีคุณสมบัติที่โดดเด่นกว่าภาษาระดับสูงทั่วไปในหลายๆ ด้านด้วยกัน คือ
- 1. เป็นภาษาที่ไม่ขึ้นกับฮาร์ดแวร์และระบบปฏิบัติการ
- 2. เป็นภาษาที่มีความยืดหยุ่นสูงมาก
- 3. มีประสิทธิภาพสูง
- 4. ความสามารถในด้านการโปรแกรมแบบโมดูล
- 5. มีตัวแปรชนิดพอยน์เตอร์
- 6. ภาษาซีมองตัวอักษรตัวพิมพ์เล็กและตัวพิมพ์ใหญ่แตกต่างกัน ( Case Sensitive )
- สรุปบทที่ 4 นิพจน์และตัวดำเนินการ
นิพจน์ (Expression)
นิพจน์ในที่นี้หมายถึง นิพจน์ทาง คณิตศาสตร์ ซึ่งสามารถพบเห็นได้จากสูตรการคำนวณตัวเลขต่างๆ ดังนั้น นิพจน์
จึงประกอบด้วย ตัวแปร ค่าคงที่ และตัวดำเนินการทางคณิตศาสตร์มาประกอบรวมกัน
จากนิพจน์คณิตศาสตร์ข้างต้น พบว่า ทั้ง and, score และ incomeจะเป็นตัวแปรที่ใช้เก็บผลลัพธ์จากการคำนวณ ส่วนนิพจน์ด้านขวาก็จะเป็นนิพจน์
แบบหลายตัวแปร ซึ่งสามารถมีได้ทั้งตัวแปรและค่าคงที่ รวมถึงตัวดำเนินการคณิตศาสตร์ เช่น + - * / เป็นต้น ในการสร้างสูตรคำนวณค่าตัวเลข โดยเฉพาะสูตรคำนวณที่มีความซับซ้อน ต้องระมัดระวังในการจัด
ลำดับนิพจน์ เพื่อให้คอมพิวเตอร์
ประมวลผลอย่างถูกต้อง ทั้งนี้
ตัวดำเนินการต่างๆ ที่นำมาใช้เพื่อการคำนวณนั้น แต่ละตัวจะมีลำดับความสำคัญที่แตกต่างกัน
ตัวดำเนินการ (Operators)
ในภาษาซี มีตัวดำเนินการหลากหลายชนิด แต่ในที่นี้กล่าวถึงตัวดำเนินการพื้น
ฐานที่สำคัญ ดังต่อไปนี้
1. ตัวดำเนินการทางคณิตศาสตร์
2. ตัวดำเนินการยูนารี
3. ตัวดำเนินการเปรียบเทียบ
4. ตัวดำเนินการตรรกะ
5. ตัวดำเนินการกำหนดค่า
แบบผสม
6. ตัวดำเนินการเงื่อนไข
1. ตัวดำเนินการทางคณิตศาสตร์
จัดเป็นตัวดำเนินการพื้นฐาน ที่นำมาใช้เพื่อการคำนวณ เช่น บวก ลบ คูณ หาญ และ โมดูลัส (หาญเพื่อเอาเศษ)
-
-
2. ตัวดำเนินการยูนารี
ตัวดำเนินการยูนารี ตัวแรกที่กล่าวถึง คือ เครื่องหมายลบ ที่นำ
มาใช้นำหน้าค่าตัวเลข หรือนำหน้า ค่าตัวแปร ซึ่งจะส่งผลให้ค่าถูก
เปลี่ยนเป็นค่าติดลบโดยทันที เช่น –10,-x เป็นต้น
-
-
3. ตัวดำเนินการเปรียบเทียบ
ในภาษาซีจะมีตัวกำเนินการที่นำมาใช้เพื่อการเปรียบเทียบค่า
-
-
4. ตัวดำเนินตรรกะ
นอกจากตัวดำเนินการเปรียบเทียบแล้ว เรายังสามารถนำตัวดำเนิน
การตรรกะมาใช้ร่วมกันได้
5. ตัวดำเนินการกำหนดค่า
จากความรู้ที่ผ่านมา ได้เรียนรู้ถึงการกำหนดค่าให้กับตัวแปรมาบ้างแล้ว แต่ในภาษาซี ยังมีตัวดำเนินการค่าแบบผสม (Compound Assignment Operators) ซึ่งประกอบด้วย +=, -=, *=, /= และ %=
6. ตัวดำเนินการเงื่อนไข
ตัวดำเนินการเงื่อนไข จะนำมาทดสอบค่านิพจน์ทางตรรกะ ว่าจริง
หรือเท็จ
รูปแบบ
expression 1 ? expression 2 : expression 3
โดยที่
expression 1 หมายถึง นิพจน์เงื่อนไข
expression 2 หมายถึง นิพจน์กรณีเป็นจริง
expression 3 หมายถึง นิพจน์กรณีเป็นเท็จ
ตัวดำเนินการกับลำดับความสำคัญ
ตัวดำเนินการแต่ละตัวจะมีลำดับ
ความสำคัญก่อนหลังที่แตกต่างกัน โดยการประมวลผลกระทำจากตัว
ดำเนินการที่มีลำดับความสำคัญสูงก่อน แต่ถ้ากรณีที่มีลำดับความ
สำคัญเท่ากัน ตามปกติจะกระทำ
กับตัวดำเนินการจากซ้ายไปขวา กล่าวคือ จะกระทำกับตัวดำเนินการ ที่พบก่อน
การเปลี่ยนชนิดข้อมูล
ในภาษา C ยังมีตัวดำเนินการที่ เรียกว่า การแคสต์ (Casting) เพื่อแปลงชนิดข้อมูลจากชนิดหนึ่ง มาเป็นอีกชนิดหนึ่งได้ วิธีทำคือ ให้ระบุชนิดข้อมูลที่ต้องการภายใน เครื่องหมายวงเล็บ หน้านิพจน์ที่
ต้องการ
-
สรุปบทที่5
ฟังก์ชันการรับและแสดงผลและฟังก์ชันทางคณิตศาสตร์
ฟังก์ชัน printf() เป็นฟังก์ชันที่ใช้สำหรับแสดงผลข้อมูล ไม่ว่าจะเป็นข้อมูลที่เป็นตัวอักขระ ข้อความ หรือค่าแปร
ฟังก์ชัน scanf() เป็นฟังก์ชันที่ใช้สำหรับรับค่าข้อมูลจากทางแป้นพิมพ์ เพื่อจัดเก็บไว้ในตัวแปร
ทั้งฟังก์ชัน printf()และscanf() จะต้องกำหนดรหัสรูปแบบข้อมูลให้สัมพันธ์กับชนิดข้อมูลของตัวแปร ซึ่งรายละเอียดดังนี้
ฟังก์ชัน getchar() เป็นฟังก์ชันที่นำมาสำหรับค่าตัวอักษรหรืออักขระ 1 ตัว โดยค่าที่ป้อนลงไป จะแสดงให้เห็นทางจอภาพ และจะต้องเคาะ Enter เพื่อแสดงถึงการสิ้นสุดการป้อนข้อมูล
ฟังก์ชัน putchar() เป็นฟังก์ชันที่นำมาใช้เพื่อพิมพ์ค่าตัวแปรอักขระ ที่ถูกป้อนด้วยฟังก์ชัน getchar() รวมถึงการสั่งพิมพ์รหัสพิเศษ (Escape Sequence)
ในบางครั้ง รหัส Enter ที่เราได้เคาะเข้าไปเพื่อยืนยันการป้อนข้อมูลจากฟังก์ชัน scanf() ได้ข้ำแรบกวนการทำงานของคำสั่งบางตัว มำให้ข้ามการรับค่าตัวแปรตัดถัดไปซึ่งเหตุการณ์ดังกล่าวสามารถแก้ไขได้ด้วยการเคลียร์ บัฟเฟอร์ในหน่วยความจำออกไปเสียก่อนด้วยฟังก์ชัน fflush(stdin)
ฟังก์ชัน getch() ใช้สำหรับรอรับค่าแป้นพิมพ์โดยไม่ต้องยืนยันด้วยการเคาะปุ่ม Enterและอักขระที่ป้อนเข้าไป จะไม่แสดงออกมาให้เห็นทางจอภาพ
ฟังก์ชัน getche() จะคล้ายกับฟังก์ชัน getch() แตกต่างกันเพียงแสดงอักขระที่ป้อนเข้าไปออกมาให้เห็นทางจอภาพ
ฟังก์ชัน clrscr() เป็นฟังก์ชันที่ใช้สำหรับล้างจอภาพ
ฟังก์ชัน gotoxy() เป็นฟังก์ชันที่ใช้สำหรับกำหนดตำแหน่งเคอร์เซอร์บนจอภาพ บนหน้าจอแบบเท็กซ์โหมด
ทั้งฟังก์ชัน printf(), scanf(), getchar() และ putchar() จะถูกประกาศใช้งานอยู่ใน
เฮดเดอร์ไฟล์<stdio.h>
ทั้งฟังก์ชัน getch(), getche(), clrscr() และ gotoxy() จะถูกประกาศใช้งานอยู่ในเฮดเดอร์ไฟล์<conio.h>
ทั้งฟังก์ชัน pow(), sqrt(), cos(), sine(), tan(), ceil() และ floor() เป็นต้นจะถูกประกาศใช้งานอยู่ในเฮดเดอร์ไฟล์<math.h>
นิพจน์ (Expression)
นิพจน์ในที่นี้หมายถึง นิพจน์ทาง คณิตศาสตร์ ซึ่งสามารถพบเห็นได้จากสูตรการคำนวณตัวเลขต่างๆ ดังนั้น นิพจน์
จึงประกอบด้วย ตัวแปร ค่าคงที่ และตัวดำเนินการทางคณิตศาสตร์มาประกอบรวมกัน
จากนิพจน์คณิตศาสตร์ข้างต้น พบว่า ทั้ง and, score และ incomeจะเป็นตัวแปรที่ใช้เก็บผลลัพธ์จากการคำนวณ ส่วนนิพจน์ด้านขวาก็จะเป็นนิพจน์
แบบหลายตัวแปร ซึ่งสามารถมีได้ทั้งตัวแปรและค่าคงที่ รวมถึงตัวดำเนินการคณิตศาสตร์ เช่น + - * / เป็นต้น ในการสร้างสูตรคำนวณค่าตัวเลข โดยเฉพาะสูตรคำนวณที่มีความซับซ้อน ต้องระมัดระวังในการจัด
ลำดับนิพจน์ เพื่อให้คอมพิวเตอร์
ประมวลผลอย่างถูกต้อง ทั้งนี้
ตัวดำเนินการต่างๆ ที่นำมาใช้เพื่อการคำนวณนั้น แต่ละตัวจะมีลำดับความสำคัญที่แตกต่างกัน
จึงประกอบด้วย ตัวแปร ค่าคงที่ และตัวดำเนินการทางคณิตศาสตร์มาประกอบรวมกัน
จากนิพจน์คณิตศาสตร์ข้างต้น พบว่า ทั้ง and, score และ incomeจะเป็นตัวแปรที่ใช้เก็บผลลัพธ์จากการคำนวณ ส่วนนิพจน์ด้านขวาก็จะเป็นนิพจน์
แบบหลายตัวแปร ซึ่งสามารถมีได้ทั้งตัวแปรและค่าคงที่ รวมถึงตัวดำเนินการคณิตศาสตร์ เช่น + - * / เป็นต้น ในการสร้างสูตรคำนวณค่าตัวเลข โดยเฉพาะสูตรคำนวณที่มีความซับซ้อน ต้องระมัดระวังในการจัด
ลำดับนิพจน์ เพื่อให้คอมพิวเตอร์
ประมวลผลอย่างถูกต้อง ทั้งนี้
ตัวดำเนินการต่างๆ ที่นำมาใช้เพื่อการคำนวณนั้น แต่ละตัวจะมีลำดับความสำคัญที่แตกต่างกัน
ตัวดำเนินการ (Operators)
ในภาษาซี มีตัวดำเนินการหลากหลายชนิด แต่ในที่นี้กล่าวถึงตัวดำเนินการพื้น
ฐานที่สำคัญ ดังต่อไปนี้
ในภาษาซี มีตัวดำเนินการหลากหลายชนิด แต่ในที่นี้กล่าวถึงตัวดำเนินการพื้น
ฐานที่สำคัญ ดังต่อไปนี้
1. ตัวดำเนินการทางคณิตศาสตร์
2. ตัวดำเนินการยูนารี
3. ตัวดำเนินการเปรียบเทียบ
4. ตัวดำเนินการตรรกะ
5. ตัวดำเนินการกำหนดค่า
แบบผสม
แบบผสม
6. ตัวดำเนินการเงื่อนไข
1. ตัวดำเนินการทางคณิตศาสตร์
จัดเป็นตัวดำเนินการพื้นฐาน ที่นำมาใช้เพื่อการคำนวณ เช่น บวก ลบ คูณ หาญ และ โมดูลัส (หาญเพื่อเอาเศษ)

2. ตัวดำเนินการยูนารี
ตัวดำเนินการยูนารี ตัวแรกที่กล่าวถึง คือ เครื่องหมายลบ ที่นำ
มาใช้นำหน้าค่าตัวเลข หรือนำหน้า ค่าตัวแปร ซึ่งจะส่งผลให้ค่าถูก
เปลี่ยนเป็นค่าติดลบโดยทันที เช่น –10,-x เป็นต้น
ตัวดำเนินการยูนารี ตัวแรกที่กล่าวถึง คือ เครื่องหมายลบ ที่นำ
มาใช้นำหน้าค่าตัวเลข หรือนำหน้า ค่าตัวแปร ซึ่งจะส่งผลให้ค่าถูก
เปลี่ยนเป็นค่าติดลบโดยทันที เช่น –10,-x เป็นต้น

3. ตัวดำเนินการเปรียบเทียบ
ในภาษาซีจะมีตัวกำเนินการที่นำมาใช้เพื่อการเปรียบเทียบค่า
ในภาษาซีจะมีตัวกำเนินการที่นำมาใช้เพื่อการเปรียบเทียบค่า

4. ตัวดำเนินตรรกะ
นอกจากตัวดำเนินการเปรียบเทียบแล้ว เรายังสามารถนำตัวดำเนิน
การตรรกะมาใช้ร่วมกันได้
นอกจากตัวดำเนินการเปรียบเทียบแล้ว เรายังสามารถนำตัวดำเนิน
การตรรกะมาใช้ร่วมกันได้
5. ตัวดำเนินการกำหนดค่า
จากความรู้ที่ผ่านมา ได้เรียนรู้ถึงการกำหนดค่าให้กับตัวแปรมาบ้างแล้ว แต่ในภาษาซี ยังมีตัวดำเนินการค่าแบบผสม (Compound Assignment Operators) ซึ่งประกอบด้วย +=, -=, *=, /= และ %=
จากความรู้ที่ผ่านมา ได้เรียนรู้ถึงการกำหนดค่าให้กับตัวแปรมาบ้างแล้ว แต่ในภาษาซี ยังมีตัวดำเนินการค่าแบบผสม (Compound Assignment Operators) ซึ่งประกอบด้วย +=, -=, *=, /= และ %=
6. ตัวดำเนินการเงื่อนไข
ตัวดำเนินการเงื่อนไข จะนำมาทดสอบค่านิพจน์ทางตรรกะ ว่าจริง
หรือเท็จ
ตัวดำเนินการเงื่อนไข จะนำมาทดสอบค่านิพจน์ทางตรรกะ ว่าจริง
หรือเท็จ
รูปแบบ
expression 1 ? expression 2 : expression 3
โดยที่
expression 1 หมายถึง นิพจน์เงื่อนไข
expression 2 หมายถึง นิพจน์กรณีเป็นจริง
expression 3 หมายถึง นิพจน์กรณีเป็นเท็จ
ตัวดำเนินการกับลำดับความสำคัญ
ตัวดำเนินการแต่ละตัวจะมีลำดับ
ความสำคัญก่อนหลังที่แตกต่างกัน โดยการประมวลผลกระทำจากตัว
ดำเนินการที่มีลำดับความสำคัญสูงก่อน แต่ถ้ากรณีที่มีลำดับความ
สำคัญเท่ากัน ตามปกติจะกระทำ
กับตัวดำเนินการจากซ้ายไปขวา กล่าวคือ จะกระทำกับตัวดำเนินการ ที่พบก่อน
ความสำคัญก่อนหลังที่แตกต่างกัน โดยการประมวลผลกระทำจากตัว
ดำเนินการที่มีลำดับความสำคัญสูงก่อน แต่ถ้ากรณีที่มีลำดับความ
สำคัญเท่ากัน ตามปกติจะกระทำ
กับตัวดำเนินการจากซ้ายไปขวา กล่าวคือ จะกระทำกับตัวดำเนินการ ที่พบก่อน
การเปลี่ยนชนิดข้อมูล
ในภาษา C ยังมีตัวดำเนินการที่ เรียกว่า การแคสต์ (Casting) เพื่อแปลงชนิดข้อมูลจากชนิดหนึ่ง มาเป็นอีกชนิดหนึ่งได้ วิธีทำคือ ให้ระบุชนิดข้อมูลที่ต้องการภายใน เครื่องหมายวงเล็บ หน้านิพจน์ที่
ต้องการ
ต้องการ
สรุปบทที่5
ฟังก์ชันการรับและแสดงผลและฟังก์ชันทางคณิตศาสตร์
ฟังก์ชัน printf() เป็นฟังก์ชันที่ใช้สำหรับแสดงผลข้อมูล ไม่ว่าจะเป็นข้อมูลที่เป็นตัวอักขระ ข้อความ หรือค่าแปร
ฟังก์ชัน scanf() เป็นฟังก์ชันที่ใช้สำหรับรับค่าข้อมูลจากทางแป้นพิมพ์ เพื่อจัดเก็บไว้ในตัวแปร
ทั้งฟังก์ชัน printf()และscanf() จะต้องกำหนดรหัสรูปแบบข้อมูลให้สัมพันธ์กับชนิดข้อมูลของตัวแปร ซึ่งรายละเอียดดังนี้
ฟังก์ชัน getchar() เป็นฟังก์ชันที่นำมาสำหรับค่าตัวอักษรหรืออักขระ 1 ตัว โดยค่าที่ป้อนลงไป จะแสดงให้เห็นทางจอภาพ และจะต้องเคาะ Enter เพื่อแสดงถึงการสิ้นสุดการป้อนข้อมูล
ฟังก์ชัน putchar() เป็นฟังก์ชันที่นำมาใช้เพื่อพิมพ์ค่าตัวแปรอักขระ ที่ถูกป้อนด้วยฟังก์ชัน getchar() รวมถึงการสั่งพิมพ์รหัสพิเศษ (Escape Sequence)
ในบางครั้ง รหัส Enter ที่เราได้เคาะเข้าไปเพื่อยืนยันการป้อนข้อมูลจากฟังก์ชัน scanf() ได้ข้ำแรบกวนการทำงานของคำสั่งบางตัว มำให้ข้ามการรับค่าตัวแปรตัดถัดไปซึ่งเหตุการณ์ดังกล่าวสามารถแก้ไขได้ด้วยการเคลียร์ บัฟเฟอร์ในหน่วยความจำออกไปเสียก่อนด้วยฟังก์ชัน fflush(stdin)
ฟังก์ชัน getch() ใช้สำหรับรอรับค่าแป้นพิมพ์โดยไม่ต้องยืนยันด้วยการเคาะปุ่ม Enterและอักขระที่ป้อนเข้าไป จะไม่แสดงออกมาให้เห็นทางจอภาพ
ฟังก์ชัน getche() จะคล้ายกับฟังก์ชัน getch() แตกต่างกันเพียงแสดงอักขระที่ป้อนเข้าไปออกมาให้เห็นทางจอภาพ
ฟังก์ชัน clrscr() เป็นฟังก์ชันที่ใช้สำหรับล้างจอภาพ
ฟังก์ชัน gotoxy() เป็นฟังก์ชันที่ใช้สำหรับกำหนดตำแหน่งเคอร์เซอร์บนจอภาพ บนหน้าจอแบบเท็กซ์โหมด
ทั้งฟังก์ชัน printf(), scanf(), getchar() และ putchar() จะถูกประกาศใช้งานอยู่ใน
เฮดเดอร์ไฟล์<stdio.h>
ทั้งฟังก์ชัน getch(), getche(), clrscr() และ gotoxy() จะถูกประกาศใช้งานอยู่ในเฮดเดอร์ไฟล์<conio.h>
ทั้งฟังก์ชัน pow(), sqrt(), cos(), sine(), tan(), ceil() และ floor() เป็นต้นจะถูกประกาศใช้งานอยู่ในเฮดเดอร์ไฟล์<math.h>








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