สำหรับเนื้อหาในบทนี้จะกล่าวถึงฟังก์ชันในภาษา C โดยจะประกอบไปด้วยเนื้อหาหลัก ๆ คือ เรื่องที่หนึ่ง ฟังก์ชันมาตรฐาน เป็นฟังก์ชันที่บริษัทที่ผลิตภาษา C ได้เขียนขึ้นและเก็บไว้ใน header file ภาษา C คือเก็บไว้ในแฟ้มที่มีนามสกุล *.h ต่าง ๆ ส่วนเรื่องที่สอง เป็นฟังก์ชันที่เขียนขึ้นหรือเรียกอีกอย่างว่าโปรแกรมย่อย ที่ผู้เขียนโปรแกรมเขียนขึ้นมาใช้งานอย่างใดอย่างหนึ่งตามความต้องการของงานนั้น ๆ โดยรายละเอียดของแต่ละฟังก์ชันมีดังต่อไปนี้
ฟังก์ชันมาตรฐาน (standard functions)
เป็นฟังก์ชันที่บริษัทที่ผลิตภาษา C ได้เขียนขึ้นและเก็บไว้ใน header file ภาษา C คือเก็บไว้ในแฟ้มที่มีนามสกุล *.h ต่าง ๆ เมื่อต้องการใช้ฟังก์ชันใด จะต้องรู้ว่าฟังก์ชันนั้นอยู่ใน header file ใดจากนั้นจึงค่อยใช้คำสั่ง #include<header file.h> เข้ามาในส่วนตอนต้นของโปรแกรม จึงจะสามารถใช้ฟังก์ชันที่ต้องการได้ ซึ่งฟังก์ชันมาตรฐานเป็นฟังก์ชันที่บริษัทผู้ผลิต C compiler เขียนขึ้นเพื่อให้ผู้ใช้นำไปช่วยในการเขียนโปรแกรมทำให้การเขียนโปรแกรมสะดวกและง่ายขึ้น บางครั้งเราอาจจะเรียกฟังก์ชันมาตรฐานว่า ”ไลบรารีฟังก์ชัน” (library functions)
ตัวอย่างที่ 7.1 แสดงตัวอย่างฟังก์ชันมาตรฐาน เช่น ฟังก์ชัน pow(x,y) คือ ฟังก์ชันที่ใช้หาค่ายกกำลังของ xy โดยที่ตัวแปร x และตัวแปร y มีชนิดเป็น double ซึ่งฟังก์ชัน pow(x,y) จะถูกเก็บไว้ใน header file ที่ชื่อว่า math.h ดังนั้นจึงต้องใช้คำสั่ง #include<math.h> แทรกอยู่ในส่วนตอนต้นของโปรแกรมเหนือฟังก์ชัน main( ) จึงจะสามารถเรียกใช้ฟังก์ชัน pow(x,y) มาใช้งานภายในโปรแกรมนี้ได้
สำหรับฟังก์ชันมาตรฐานที่จะกล่าวถึงในหัวข้อนี้จะกล่าว เฉพาะฟังก์ชันมาตรฐานที่จำเป็น และเรียกใช้งานบ่อย ๆ เท่านั้น ซึ่งมีดังต่อไปนี้
เป็นฟังก์ชันที่ใช้สำหรับการคำนวณทางคณิตศาสตร์ และก่อนที่จะใช้ฟังก์ชันประเภทนี้ จะต้องใช้คำสั่ง #include <math.h> แทรกอยู่ตอนต้นของโปรแกรม และตัวแปรที่จะใช้ฟังก์ชันประเภทนี้จะต้องมีชนิด (type) เป็น double เนื่องจากผลลัพธ์ที่ได้จากฟังก์ชันประเภทนี้จะได้ค่าส่งกลับของข้อมูลเป็น double เช่นกัน ฟังก์ชันทางคณิตศาสตร์ที่ควรทราบ มีดังนี้
acos(x) asin(x) atan(x)
sin(x) cos(x) tan(x)
sqrt(x) exp(x) pow(x,y)
log(x) log10(x) ceil(x)
floor(x) fabs(x)
1) ฟังก์ชัน acos(x)
เป็นฟังก์ชันที่ใช้คำนวณหาค่า arc cosine ของ x โดยที่ x เป็นค่ามุมในหน่วยเรเดียน (radian)
รูปแบบ
2) ฟังก์ชัน asin(x)
เป็นฟังก์ชันที่ใช้คำนวณหาค่า arc sine ของ x โดยที่ x เป็นค่ามุมในหน่วยเรเดียน
รูปแบบ
3) ฟังก์ชัน atan(x)
เป็นฟังก์ชันที่ใช้คำนวณหาค่า arc tan ของ x โดยที่ x เป็นค่ามุมในหน่วย
เรเดียน
รูปแบบ
4) ฟังก์ชัน sin(x)
เป็นฟังก์ชันที่ใช้คำนวณหาค่า sine ของ x โดยที่ x เป็นค่ามุมในหน่วยเรเดียน
รูปแบบ
5) ฟังก์ชัน cos(x)
เป็นฟังก์ชันที่ใช้คำนวณหาค่า cosine ของ x โดยที่ x เป็นค่ามุมในหน่วย
เรเดียน
รูปแบบ
6) ฟังก์ชัน tan(x)
เป็นฟังก์ชันที่ใช้คำนวณหาค่า tan ของ x โดยที่ x เป็นค่ามุมในหน่วยเรเดียน
รูปแบบ
เพื่อความเข้าใจการใช้งานฟังก์ชัน acos(x), asin(x), atan(x), sin(x), cos(x) และ tan(x) มากยิ่งขึ้น ให้ศึกษาโปรแกรมตัวอย่างต่อไปนี้โปรแกรมตัวอย่างที่ 7.1 แสดงการใช้งานฟังก์ชัน acos(x), asin(x), atan(x), sin(x), cos(x) และ tan(x)
/* math1.c */
#include<stdio.h> /* บรรทัดที่ 1 */
#include<math.h> /* บรรทัดที่ 2 */
#include<conio.h> /* บรรทัดที่ 3 */
void main(void) /* บรรทัดที่ 4 */
{ /* บรรทัดที่ 5 */
double r, pi = 3.141592654; /* บรรทัดที่ 6 */
r = pi/180; /* บรรทัดที่ 7 */
clrscr(); /* บรรทัดที่ 8 */
printf(“%f\n”,asin(r)); /* บรรทัดที่ 9 */
printf(“%f\n”,acos(r)); /* บรรทัดที่ 10 */
printf(“%f\n”,atan(r)); /* บรรทัดที่ 11 */
printf(“%f\n”,sin(r)); /* บรรทัดที่ 12 */
printf(“%f\n”,cos(r)); /* บรรทัดที่ 13 */
printf(“%f\n”,tan(r)); /* บรรทัดที่ 14 */
printf(“\nPress any key back to program …”); /* บรรทัดที่ 15 */
getch(); /* บรรทัดที่ 16 */
} /* บรรทัดที่ 17 */
|
คำอธิบายโปรแกรม
จากโปรแกรมตัวอย่างที่ 7.1 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังนี้
บรรทัดที่ 9 คำสั่ง printf(“%f\n”,asin(r)); ฟังก์ชันคำนวณหาค่า arc sin ของตัวแปร r โดย r เป็นมุมในหน่วยเรเดียน และแสดงผลลัพธ์ที่ได้ออกจอภาพ
บรรทัดที่ 10 คำสั่ง printf(“%f\n”,acos(r)); ฟังก์ชันคำนวณหาค่า arc cosine ของตัวแปร r โดย r เป็นมุมในหน่วยเรเดียน และแสดงผลลัพธ์ที่ได้ออกจอภาพ
บรรทัดที่ 11 คำสั่ง printf(“%f\n”,atan(r)); ฟังก์ชันคำนวณหาค่า arc tan ของตัวแปร r โดย r เป็นมุมในหน่วยเรเดียน และแสดงผลลัพธ์ที่ได้ออกจอภาพ
บรรทัดที่ 12 คำสั่ง printf(“%f\n”,sin(r)); ฟังก์ชันคำนวณหาค่า sine ของตัวแปร r โดย r เป็นมุมในหน่วยเรเดียน และแสดงผลลัพธ์ที่ได้ออกจอภาพ
บรรทัดที่ 13 คำสั่ง printf(“%f\n”,cos(r)); ฟังก์ชันคำนวณหาค่า cosine ของตัวแปร r โดย r เป็นมุมในหน่วยเรเดียน และแสดงผลลัพธ์ที่ได้ออกจอภาพ
บรรทัดที่ 14 คำสั่ง printf(“%f\n”,tan(r)); ฟังก์ชันคำนวณหาค่า tan ของตัวแปร r โดย r เป็นมุมในหน่วยเรเดียน และแสดงผลลัพธ์ที่ได้ออกจอภาพ
บรรทัดที่ 15 และ 16 พิมพ์ข้อความให้กดคีย์ใด ๆ เพื่อกลับสู่โปรแกรม และหยุดรอรับค่าใด ๆ เช่น กด enter จะกลับเข้าสู่โปรแกรม
7) ฟังก์ชัน sqrt(x)
เป็นฟังก์ชันที่ใช้หาค่ารากที่ 2 (square root) ของค่าคงที่หรือตัวแปร x โดยที่ x จะต้องเป็นค่าคงที่ชนิดตัวเลขหรือตัวแปรที่มีค่าไม่ติดลบ
รูปแบบ
8) ฟังก์ชัน exp(x)
เป็นฟังก์ชันที่ใช้หาค่า ex โดยที่ x เป็นค่าคงที่หรือตัวแปรที่จะใช้เป็นค่ายกกำลังของ e โดยที่ e มีค่าประมาณ 2.718282
รูปแบบ
9) ฟังก์ชัน pow(x,y)
เป็นฟังก์ชันที่ใช้หาค่า xy
โดยที
x เป็นค่าคงที่หรือตัวแปรที่ใช้เป็นตัวฐานซึ่งจะต้องมีค่ามากกว่าศูนย์
y เป็นค่าคงที่หรือตัวแปรที่ใช้เป็นค่ายกกำลัง
รูปแบบ
เพื่อความเข้าใจการใช้งานฟังก์ชัน sqrt(x), exp(x) และ pow(x, y) มากยิ่งขึ้นให้ศึกษาโปรแกรมตัวอย่างต่อไปนี้โปรแกรมตัวอย่างที่ 7.2 แสดงการใช้งานฟังก์ชัน sqrt(x), exp(x) และ pow(x, y)
/* math2.c */
#include<stdio.h> /* บรรทัดที่ 1 */
#include<math.h> /* บรรทัดที่ 2 */
#include<conio.h> /* บรรทัดที่ 3 */
void main(void) /* บรรทัดที่ 4 */
{ /* บรรทัดที่ 5 */
double x = 2.5, y = 7.0, z = 21.5; /* บรรทัดที่ 6 */
clrscr( ); /* บรรทัดที่ 7 */
printf(“%.4f\n”,pow(x,y)); /* บรรทัดที่ 8 */
printf(“%.4f\n”,sqrt(z)); /* บรรทัดที่ 9 */
printf(“%.4f\n”,exp(y)); /* บรรทัดที่ 10 */
printf(“\nPress any key back to program …”); /* บรรทัดที่ 11 */
getch(); /* บรรทัดที่ 12 */
} /* บรรทัดที่ 13 */
ผลลัพธ์ที่ได้จากโปรแกรม
คำอธิบายโปรแกรม
จากโปรแกรมตัวอย่างที่ 7.2 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังนี้
บรรทัดที่ 8 คำสั่ง printf(“%.4f\n”,pow(x,y)); ฟังก์ชันคำนวณหาค่า xy โดยที่ x เป็นค่าคงที่หรือตัวแปรที่ใช้ตัวฐานซึ่งจะต้องมีค่ามากกว่าศูนย์ และ y เป็นค่าคงที่หรือตัวแปรที่ใช้เป็นค่ายกกำลัง และแสดงผลที่ได้ออกจอภาพ
บรรทัดที่ 9 คำสั่ง printf(“%.4f\n”,sqrt(z)); ฟังก์ชันคำนวณหาค่ารากที่สอง (square root) ของค่าคงที่หรือตัวแปร z โดยที่ z จะต้องเป็นค่าคงที่ชนิดตัวเลขหรือตัวแปรที่มีค่าไม่ติดลบ และแสดงผลที่ได้ออกจอภาพ
บรรทัดที่ 10 คำสั่ง printf(“%.4f\n”,exp(y)); ฟังก์ชันคำนวณหาค่า ey โดยที่ y เป็นค่าคงที่หรือตัวแปรที่จะใช้เป็นค่ายกกำลังของ e โดยที่ e มีค่าประมาณ 2.718282 และแสดงผลที่ได้ออกจอภาพ
บรรทัดที่ 11 และ 12 พิมพ์ข้อความให้กดคีย์ใด ๆ เพื่อกลับสู่โปรแกรม และหยุดรอรับค่าใด ๆ เช่น กด enter จะกลับเข้าสู่โปรแกรม
10) ฟังก์ชัน log(x)
เป็นฟังก์ชันที่ใช้หาค่า log ฐาน n (natural logarithm) ของค่าคงที่หรือตัวแปร x โดยที่ x เป็นค่าคงที่หรือตัวแปรที่มีค่าเป็นลบไม่ได้
รูปแบบ
11) ฟังก์ชัน log10(x)
เป็นฟังก์ชันที่ใช้หาค่า log ฐาน 10 ของค่าคงที่หรือตัวแปร x โดยที่ x เป็นค่าคงที่หรือตัวแปรที่มีค่าเป็นลบไม่ได้
รูปแบบ
เพื่อความเข้าใจการใช้งานฟังก์ชัน log(x) และ log10(x) มากยิ่งขึ้น ให้ศึกษาโปรแกรมตัวอย่างต่อไปนี้
โปรแกรมตัวอย่างที่ 7.3 แสดงการใช้งานฟังก์ชัน log(x) และ log10(x)
/* math3.c */
#include<stdio.h> /* บรรทัดที่ 1 */
#include<math.h> /* บรรทัดที่ 2 */
#include<conio.h> /* บรรทัดที่ 3 */
void main(void) /* บรรทัดที่ 4 */
{ /* บรรทัดที่ 5 */
double m = 10.0, n = 3.0; /* บรรทัดที่ 6 */
clrscr( ); /* บรรทัดที่ 7 */
printf(“%.4f\n”,log(n)); /* บรรทัดที่ 8 */
printf(“%.4f\n”,log10(m)); /* บรรทัดที่ 9 */
printf(“\nPress any key back to program …”); /* บรรทัดที่ 10 */
getch(); /* บรรทัดที่ 11 */
} /* บรรทัดที่ 12 */
ผลลัพธ์ที่ได้จากโปรแกรม
คำอธิบายโปรแกรม
จากโปรแกรมตัวอย่างที่ 7.3 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังนี้
บรรทัดที่ 8 คำสั่ง printf(“%.4f\n”,log(n)); ฟังก์ชันที่ใช้หาค่า log ฐาน n (natural logorithm) ของค่าคงที่หรือตัวแปร n โดยที่ n เป็นค่าคงที่หรือตัวแปรที่มีค่าเป็นลบไม่ได้ และแสดงผลที่ได้ออกจอภาพ
บรรทัดที่ 9 คำสั่ง printf(“%.4f\n”,log10(m)); ฟังก์ชันที่ใช้หาค่า log ฐาน 10 ของค่าคงที่หรือตัวแปร m โดยที่ m เป็นค่าคงที่หรือตัวแปรที่มีค่าเป็นลบไม่ได้ และแสดงผลที่ได้ออกจอภาพ
บรรทัดที่ 10 และ 11 พิมพ์ข้อความให้กดคีย์ใด ๆ เพื่อกลับสู่โปรแกรม และหยุดรอรับค่าใด ๆ เช่น กด enter จะกลับเข้าสู่โปรแกรม
|