วิชา COSC2202 โครงสร้างข้อมูล (Data Structure) พื้นฐานโปรแกรมภาษาซี การเขียนโปรแกรมแบบฟังก์ชัน
พื้นฐานโปรแกรมภาษาซี โครงสร้าง อย่างง่าย ดังนี้ #include <library> หรือ header file ส่วนประกาศ หรือ declaration part ส่วนนี้ใช้ประกาศตัวแปร ค่าคงที่ ชนิดของข้อมูล แบบ global main() ฟังก์ชันหลักของโปรแกรม { คำสั่งต่าง ๆ ค่าคงที่ ฯลฯ } ฟังก์ชันย่อย (sub function)
Function ฟังก์ชั่นมาตรฐาน (Standard Libraries Function) โปรแกรมภาษาซีสามารถสร้างฟังก์ชันได้มากกว่าหนึ่งฟังก์ชัน แต่จะมี ฟังก์ชันที่ชื่อว่า main() เพียงฟังก์ชันเดียว โดยฟังก์ชัน main จะเป็นฟังก์ชัน แรกที่เริ่มทำงาน ในภาษาซีสามารถแบ่งฟังก์ชันออกได้เป็น 2 ประเภทคือ ฟังก์ชั่นมาตรฐาน (Standard Libraries Function) ฟังก์ชั่นที่ผู้ใช้กำหนด (User-Define Function)
ฟังก์ชันมาตรฐาน (Standard Libraries Function) คือฟังก์ชันที่ตัวภาษาซี มีการกำหนดไว้แล้วในไลบรารี ให้เราเรียกใช้ได้เลย เช่น การหารากที่ 2 sqrt ฟังก์ชันนี้เก็บอยู่ในไลบรารี math.h sqrt(4) จะได้ผลลัพธ์เป็น 2.0 การสุ่มเลข rand() ฟังก์ชันนี้เก็บอยู่ในไลบรารี stdlib.h rand()%100 จะได้เลขสุ่มมีค่าในช่วง 0-99
ฟังก์ชันที่ผู้ใช้กำหนด (User-Define Function) ฟังก์ชั่นที่ผู้ใช้กำหนด คือ ส่วนย่อยของโปรแกรมที่ทำหน้าที่อย่างใดอย่าง หนึ่ง เช่น โปรแกรมเครื่องคิดเลข ก็สามารถแบ่งฟังก์ชั่นออกเป็นฟังก์ชั่นของ การบวก, ฟังก์ชั่นของการลบ, การคูณ, และการหาร เป็นต้น ข้อดีคือ โปรแกรมเป็นสัดส่วน แต่ละส่วนทำงานเฉพาะอย่าง ตรวจสอบ ความถูกต้องง่าย
ส่วนประกอบของ Function โดยฟังก์ชันจะประกอบด้วย 2 ส่วนคือ หัวฟังก์ชัน (Function Header) ตัวฟังก์ชัน (Function Body)
ส่วนประกอบของ Function ส่วนหัวฟังก์ชัน data-type function-name (type var1,type var2,…) ส่วนตัวฟังก์ชัน { variable declaration; statements; }
ฟังก์ชันที่ผู้ใช้กำหนด (User-Define Function) สำหรับในภาษาซีนั้นฟังก์ชันที่สร้างขึ้น (user-define function) จะ ใช้งานได้ ต้องมีการประกาศฟังก์ชัน (function prototype) ให้รู้จัก ก่อน จึงสามารถเรียกใช้งานได้ การรับค่า การ return ค่ากลับ function_test( ) function_test( )
ฟังก์ชันที่ผู้ใช้กำหนด (User-Define Function) ไม่มีการรับค่า ไม่มีการ return ค่ากลับ ไม่มีการรับค่า มีการ return ค่ากลับ มีการรับค่า ไม่มีการ return ค่ากลับ มีการรับค่า มีการ return ค่ากลับ
ฟังก์ชันที่ผู้ใช้กำหนด (User-Define Function) ไม่มีการรับค่า ไม่มีการ return ค่ากลับ
ฟังก์ชันที่ผู้ใช้กำหนด (User-Define Function) ไม่มีการรับค่า มีการ return ค่ากลับ
ฟังก์ชันที่ผู้ใช้กำหนด (User-Define Function) มีการรับค่า ไม่มีการ return ค่ากลับ
ฟังก์ชันที่ผู้ใช้กำหนด (User-Define Function) มีการรับค่า มีการ return ค่ากลับ
ขอบเขตของตัวแปร ตัวแปรแบบ Global ตัวแปรแบบ Local ขอบเขตของตัวแปรในภาษาซี แบ่งออกเป็น 2 ชนิด คือ ตัวแปรแบบ Global เป็นตัวแปรที่สามารถนำไปใช้ได้ในทุกๆ ฟังก์ชันของโปรแกรมนั้น โดยต้อง ประกาศตัวแปรไว้เหนือฟังก์ชัน main() ตัวแปรแบบ Local เป็นตัวแปรที่สามารถใช้ได้เฉพาะในฟังก์ชันที่ประกาศตัวแปรนี้เท่านั้น โดยการ ประกาศจะอยู่ภายในของแต่ละฟังก์ชัน
ตัวแปรแบบ Local
ตัวแปรแบบ global
ทดสอบ ให้นักศึกษาเขียนผลจากการรันโปรแกรมต่อไปนี้
แบบฝึกหัด เขียนโปรแกรมตัดเกรด รับค่าแล้วแจ้งเกรดที่ได้รับ 80-100 (A) 70-79 (B) 60-69 (C) 50-59 (D) น้อยกว่า 50 (F) เขียนโปรแกรมเครื่องคิดเลข บวก ลบ คูณ หาร โดยรับค่าเข้าไป 2 ตัว แล้ว เลือกว่าจะให้ทำอะไร แสดงผลลัพธ์เป็นทศนิยม 2 ตำแหน่ง เขียนโปรแกรมสูตรคูณ เลือกแม่ได้ (คราวนี้ให้เขียนแบบแยกฟังก์ชัน คือไม่ให้ทำทุกอย่างใน main อัน เดียว ให้กระจายงานออกมาให้ฟังก์ชันย่อยทำ)