SlideShare a Scribd company logo
1 of 57
โปรแกรมย่อยและ
ฟังก์ชันมาตรฐาน
โปรแกรมย่อย
ประเภทของโปรแกรมย่อย
ประเภทของโปรแกรมย่อย (Procedure) เป็ นส่วนหนึ่งของโปรแกรม มี
หน้าที่เฉพาะตัวโดยแยกการทางานออกจาก โปรแกรมอย่างอิสระ
การเขียนโปรแกรมที่มีการทางานแบบโปรแกรมย่อยจะช่วยลดความ
ซับซ้อนของโปรแกรม ซึ่งจะทาให้สามารถแก้ไขและเพิ่มเติม การทางานของ
โปรแกรมได้ง่ายขึ้น ในบางครั้งโปรแกรมหลักจะมีการส่งข้อมูลไปทางานใน
โปรแกรมย่อยด้วย โดยข้อมูลนั้นจะเก็บอยู่ในรูป ตัวแปรพิเศษเรียกว่า
พารามิเตอร์ (Parameter)
Visual Basic 2008 สามารแบ่งโปรแกรมย่อยได้ 2 ประเภท คือ
Sub มาจากคาเต็มว่า ซับรูทีน (Subroutine) เป็นโปรแกรมย่อยเมื่อทางานแล้ว จะ
ไม่มีการส่งผลการทางานกลับไปยังโปรแกรม ที่เรียกซับรูทีนนี้ใช้งาน
Function เป็นโปรแกรมย่อยเมื่อทางานเสร็จแล้ว จะต้องมีการส่งผลการทางาน
กลับไปยังโปรแกรมที่เรียกฟังก์ชันนี้ใช้งาน
ในที่นี้ผู้เรียกใช้ Sub หรือ Function จะเป็นตัวโปรแกรมหลัก หรือโปรแกรมย่อย
อื่นๆก็ได้
โปรแกรมย่อยไม่ว่าจะเป็น Sub หรือ Function นั้น จะมีหรือไม่มีการส่งข้อมูล
ผ่านตัวพารามิเตอร์ก็ได้ขึ้นอยู่กับว่าโปรแกรมย่อยนั้นระบุ ให้มีการกาหนดตาแหน่งให้
ค่าพารามิเตอร์หรือไม่
โปรแกรมย่อยชนิด Sub
Sub เป็นโปรแกรมที่เขียนขึ้นมาเพื่อการทางานอย่างใดอย่างหนึ่ง
โดยที่ไม่มีการรับพารามิเตอร์หรืออาจจะมีการรับพารามิเตอร์มาทางาน
ก็ได้ แต่ไม่มีการส่งผลการทางานกลับไปยังโปรแกรมที่เรียกซับรูทีนนี้ใช้
งาน มีรูปแบบการเขียน Sub ดังนี้
ตัวอย่างการใช้งาน Subroutine : ตัวอย่างนี้จะสร้างแอพพลิเคชัน
แบบระบบลงทะเบียนซึ่งจะมีการใช้งาน Subroutine ที่เราเขียนขึ้นมา
1. ออกแบบหน้าตาแอพพลิเคชัน และตั้งชื่อคอนโทรลต่างๆ ดังนี้
2. ดับเบิลคลิกที่ฟอร์มเพื่อเขียนโค้ดใน Even Load โดยจะเริ่มแนะนาให้ผู้ใช้งานทราบวิธีการ
ทางานโดยจะเรียก Sub ที่ชื่อว่า InformUser
3. ให้หน้าต่างโค้ดของ Sub InformUser โดยเขียนต่อท้ายไปได้เลย
4. ดับเบิลคลิกที่ปุ่ม ลงทะเบียน แล้วเขียนโค้ดเพื่อตรวจสอบความครบถ้วนถูกต้องของข้อมูลที่ป้อนเข้าไป
ถ้าเรียบร้อยถือว่าลงทะเบียนได้แต่ถ้าไม่เรียนร้อยแจ้งให้ผู้ใช้ทราบ
5 . สาหรับ Sub CheckPassword นั้นมีหลักการตรวจสอบความ
ถูกต้องอยู่ 3 ข้อ ดังรายละเอียดที่แสดดงในโค้ดต่อไปนี้
6 . ดับเบิลคลิกปุ่ม เคลียร์ แล้วเขียนโค้ดเพื่อเคลียร์ค่าข้อมูลใน TexBox
ต่างๆ ดังนี้
7 . กดปุ่ม F5 เพื่อทดสอบการทางานของแอพ
พลิเคชัน ได้ผลดังนี้
การใช้ฟังก์ชันมาตรฐานภาษาซี
สาหรับเนื้อหาในบทนี้จะกล่าวถึงฟังก์ชันในภาษา C โดยจะประกอบไป
ด้วยเนื้อหาหลัก ๆ คือ เรื่องที่หนึ่ง ฟังก์ชันมาตรฐาน เป็นฟังก์ชันที่บริษัท
ที่ผลิตภาษา C ได้เขียนขึ้นและเก็บไว้
ใน header file ภาษา C คือเก็บไว้ในแฟ้ มที่มีนามสกุล *.h ต่าง
ๆ ส่วนเรื่องที่สอง เป็นฟังก์ชันที่เขียนขึ้นหรือเรียกอีกอย่างว่าโปรแกรม
ย่อย ที่ผู้เขียนโปรแกรมเขียนขึ้นมาใช้งานอย่างใดอย่างหนึ่งตามความ
ต้องการของงานนั้น ๆ โดยรายละเอียดของแต่ละฟังก์ชันมีดังต่อไปนี้
ฟังก์ชันมาตรฐาน (standard functions)
เป็นฟังก์ชันที่บริษัทที่ผลิตภาษา C ได้เขียนขึ้นและเก็บไว้
ใน header file ภาษา C คือเก็บไว้ในแฟ้มที่มีนามสกุล *.h ต่าง ๆ เมื่อต้องการใช้
ฟังก์ชันใด จะต้องรู้ว่าฟังก์ชันนั้นอยู่ใน header file ใดจากนั้นจึงค่อยใช้
คาสั่ง #include<header file.h> เข้ามาในส่วนตอนต้นของโปรแกรม จึงจะสามารถ
ใช้ฟังก์ชันที่ต้องการได้ ซึ่งฟังก์ชันมาตรฐานเป็นฟังก์ชันที่
บริษัทผู้ผลิต C compiler เขียนขึ้นเพื่อให้ผู้ใช้นาไปช่วยในการเขียนโปรแกรมทาให้การ
เขียนโปรแกรมสะดวกและง่ายขึ้น บางครั้งเราอาจจะเรียกฟังก์ชันมาตรฐานว่า ”ไลบรารี
ฟังก์ชัน” (library functions)
สาหรับฟังก์ชันมาตรฐานที่จะกล่าวถึงในหัวข้อนี้จะกล่าว เฉพาะฟังก์ชันมาตรฐานที่
จาเป็น และเรียกใช้งานบ่อย ๆ เท่านั้น ซึ่งมีดังต่อไปนี้
ฟังก์ชันทางคณิตศาสตร์ (mathematic functions)
เป็นฟังก์ชันที่ใช้สาหรับการคานวณทางคณิตศาสตร์ และก่อนที่จะใช้ฟังก์ชันประเภท
นี้ จะต้องใช้คาสั่ง #include <math.h> แทรกอยู่ตอนต้นของโปรแกรม และตัวแปร
ที่จะใช้ฟังก์ชันประเภทนี้จะต้องมีชนิด (type) เป็น double เนื่องจากผลลัพธ์ที่ได้จาก
ฟังก์ชันประเภทนี้จะได้ค่าส่งกลับของข้อมูลเป็น double เช่นกัน
1) ฟังก์ชัน acos(x)
เป็นฟังก์ชันที่ใช้คานวณหาค่า arc cosine ของ x โดยที่ x เป็นค่ามุมในหน่วยเรเดียน (radian)
รูปแบบ acos(x);
2) ฟังก์ชัน asin(x)
เป็นฟังก์ชันที่ใช้คานวณหาค่า arc sine ของ x โดยที่ x เป็นค่ามุมในหน่วยเรเดียน
รูปแบบ asin(x);
3) ฟังก์ชัน atan(x)
เป็นฟังก์ชันที่ใช้คานวณหาค่า arc tan ของ x โดยที่ x เป็นค่ามุมในหน่วยเรเดียน
รูปแบบ atan(x);
4) ฟังก์ชัน sin(x)
เป็นฟังก์ชันที่ใช้คานวณหาค่า sine ของ x โดยที่ x เป็นค่ามุมในหน่วยเรเดียน
รูปแบบ sin(x);
5) ฟังก์ชัน cos(x)
เป็นฟังก์ชันที่ใช้คานวณหาค่า cosine ของ x โดยที่ x เป็นค่ามุมในหน่วยเรเดียนรูปแบบ cos(x);
6) ฟังก์ชัน tan(x)
เป็นฟังก์ชันที่ใช้คานวณหาค่า tan ของ x โดยที่ x เป็นค่ามุมในหน่วยเรเดียน
รูปแบบ tan(x);
โปรแกรมตัวอย่าง แสดงการใช้งานฟังก์ชัน 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("%fn",asin(r)); /* บรรทัดที่ 9 */
printf("%fn",acos(r)); /* บรรทัดที่ 10 */
printf("%fn",atan(r)); /* บรรทัดที่ 11 */
printf("%fn",sin(r)); /* บรรทัดที่ 12 */
printf("%fn",cos(r)); /* บรรทัดที่ 13 */
printf("%fn",tan(r)); /* บรรทัดที่ 14 */
printf("nPress any key back to program ..."); /* บรรทัดที่ 15 */
getch(); /* บรรทัดที่ 16 */
} /* บรรทัดที่ 17 */
ผลลัพธ์ที่ได้จากโปรแกรม
สามารถอธิบายการทางานของโปรแกรมที่สาคัญ ๆ ได้ดังนี้
บรรทัดที่ 9 คาสั่ง printf("%fn",asin(r)); ฟังก์ชันคานวณหาค่า arc sin ของตัวแปร r
โดย r เป็นมุมในหน่วยเรเดียน และแสดงผลลัพธ์ที่ได้ออกจอภาพ
บรรทัดที่ 10 คาสั่ง printf("%fn",acos(r)); ฟังก์ชันคานวณหาค่า arc cosine ของตัว
แปร r โดย r เป็นมุมในหน่วยเรเดียน และแสดงผลลัพธ์ที่ได้ออกจอภาพ
บรรทัดที่ 11 คาสั่ง printf("%fn",atan(r)); ฟังก์ชันคานวณหาค่า arc tan ของตัว
แปร r โดย r เป็นมุมในหน่วยเรเดียน และแสดงผลลัพธ์ที่ได้ออกจอภาพ
บรรทัดที่ 12 คาสั่ง printf("%fn",sin(r)); ฟังก์ชันคานวณหาค่า sine ของตัวแปร r
โดย r เป็นมุมในหน่วยเรเดียน และแสดงผลลัพธ์ที่ได้ออกจอภาพ
บรรทัดที่ 13 คาสั่ง printf("%fn",cos(r)); ฟังก์ชันคานวณหาค่า cosine ของตัวแปร r
โดย r เป็นมุมในหน่วยเรเดียน และแสดงผลลัพธ์ที่ได้ออกจอภาพ
บรรทัดที่ 14 คาสั่ง printf("%fn",tan(r)); ฟังก์ชันคานวณหาค่า tan ของตัวแปร r
โดย r เป็นมุมในหน่วยเรเดียน และแสดงผลลัพธ์ที่ได้ออกจอภาพ
บรรทัดที่ 15 และ 16 พิมพ์ข้อความให้กดคีย์ใด ๆ เพื่อกลับสู่โปรแกรม และหยุดรอรับค่า
ใดๆ เช่น กด enter จะกลับเข้าสู่โปรแกรม
7) ฟังก์ชัน sqrt(x)
เป็นฟังก์ชันที่ใช้หาค่ารากที่ 2 (square root) ของค่าคงที่หรือตัวแปร x โดย
ที่ x จะต้องเป็นค่าคงที่ชนิดตัวเลขหรือตัวแปรที่มีค่าไม่ติดลบ
รูปแบบ sqrt(x);
8) ฟังก์ชัน exp(x)
เป็นฟังก์ชันที่ใช้หาค่า ex โดยที่ x เป็นค่าคงที่หรือตัวแปรที่จะใช้เป็นค่ายกกาลัง
ของ e โดยที่ e มีค่าประมาณ 2.718282
รูปแบบ exp(x);
9) ฟังก์ชัน pow(x,y)
เป็นฟังก์ชันที่ใช้หาค่า xy โดยที
x เป็นค่าคงที่หรือตัวแปรที่ใช้เป็นตัวฐานซึ่งจะต้องมีค่ามากกว่าศูนย์
y เป็นค่าคงที่หรือตัวแปรที่ใช้เป็นค่ายกกาลัง
รูปแบบ pow(x, y);
โปรแกรมตัวอย่าง แสดงการใช้งานฟังก์ชัน 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("%.4fn",pow(x,y)); /* บรรทัดที่ 8 */
printf("%.4fn",sqrt(z)); /* บรรทัดที่ 9 */
printf("%.4fn",exp(y)); /* บรรทัดที่ 10 */
printf("nPress any key back to program ..."); /* บรรทัดที่ 11 */
getch(); /* บรรทัดที่ 12 */
} /* บรรทัดที่ 13 */
ผลลัพธ์ที่ได้จากโปรแกรม
จากโปรแกรมตัวอย่าง สามารถอธิบายการทางานของโปรแกรมที่สาคัญ ๆ ได้ดังนี้
บรรทัดที่ 8 คาสั่ง printf("%.4fn",pow(x,y)); ฟังก์ชันคานวณหาค่า xy โดยที่ x เป็น
ค่าคงที่หรือตัวแปรที่ใช้ตัวฐานซึ่งจะต้องมีค่ามากกว่าศูนย์ และ y เป็นค่าคงที่หรือตัวแปรที่ใช้
เป็นค่ายกกาลัง และแสดงผลที่ได้ออกจอภาพ
บรรทัดที่ 9 คาสั่ง printf("%.4fn",sqrt(z)); ฟังก์ชันคานวณหาค่ารากที่สอง
(square root) ของค่าคงที่หรือตัวแปร z โดยที่ z จะต้องเป็นค่าคงที่ชนิดตัวเลขหรือตัว
แปรที่มีค่าไม่ติดลบ และแสดงผลที่ได้ออกจอภาพ
บรรทัดที่ 10 คาสั่ง printf("%.4fn",exp(y)); ฟังก์ชันคานวณหาค่า ey โดยที่ y เป็น
ค่าคงที่หรือตัวแปรที่จะใช้เป็นค่ายกกาลังของ e โดยที่ e มีค่าประมาณ 2.718282 และ
แสดงผลที่ได้ออกจอภาพ
บรรทัดที่ 11 และ 12 พิมพ์ข้อความให้กดคีย์ใด ๆ เพื่อกลับสู่โปรแกรม และหยุดรอรับค่าใด
ๆ เช่น กด enter จะกลับเข้าสู่โปรแกรม
10) ฟังก์ชัน log(x)
เป็นฟังก์ชันที่ใช้หาค่า log ฐาน n (natural logarithm) ของค่าคงที่หรือตัว
แปร x โดยที่ x เป็นค่าคงที่หรือตัวแปรที่มีค่าเป็นลบไม่ได้
รูปแบบ log(x);
11) ฟังก์ชัน log10(x)
เป็นฟังก์ชันที่ใช้หาค่า log ฐาน 10 ของค่าคงที่หรือตัวแปร x โดยที่ x เป็นค่าคงที่หรือตัว
แปรที่มีค่าเป็นลบไม่ได้
รูปแบบ log10(x);
โปรแกรมตัวอย่างแสดงการใช้งานฟังก์ชัน 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("%.4fn",log(n)); /* บรรทัดที่ 8 */
printf("%.4fn",log10(m)); /* บรรทัดที่ 9 */
printf("nPress any key back to program ..."); /* บรรทัดที่ 10 */
getch(); /* บรรทัดที่ 11 */
} /* บรรทัดที่ 12 */
ผลลัพธ์ที่ได้จากโปรแกรม
จากโปรแกรมตัวอย่าง สามารถอธิบายการทางานของโปรแกรมที่สาคัญ ๆ ได้ดังนี้
บรรทัดที่ 8 คาสั่ง printf(“%.4fn”,log(n)); ฟังก์ชันที่ใช้หาค่า log ฐาน n (natural
logorithm) ของค่าคงที่หรือตัวแปร n โดยที่ n เป็นค่าคงที่หรือตัวแปรที่มีค่าเป็นลบ
ไม่ได้ และแสดงผลที่ได้ออกจอภาพ
บรรทัดที่ 9 คาสั่ง printf("%.4fn",log10(m)); ฟังก์ชันที่ใช้หาค่า log ฐาน 10 ของ
ค่าคงที่หรือตัวแปร m โดยที่ m เป็นค่าคงที่หรือตัวแปรที่มีค่าเป็นลบไม่ได้และแสดงผลที่
ได้ออกจอภาพ
บรรทัดที่ 10 และ 11 พิมพ์ข้อความให้กดคีย์ใด ๆ เพื่อกลับสู่โปรแกรม และหยุดรอรับค่าใด
ๆ เช่น กด enter จะกลับเข้าสู่โปรแกรม
12) ฟังก์ชัน ceil(x)
เป็นฟังก์ชันที่ใช้ในการปัดเศษทศนิยมขึ้นของตัวแปร x ถ้า x เป็นตัวเลขจานวนทศนิยม แต่
ถ้า x เป็นเลขจานวนเต็มจะไม่มีการปัดเศษทศนิยม
รูปแบบ ceil(x);
13) ฟังก์ชัน floor(x)
เป็นฟังก์ชันที่ใช้ในการตัดเศษทศนิยมทิ้งของตัวแปร x ถ้า x เป็นตัวเลขจานวนทศนิยม แต่
ถ้า x เป็นเลขจานวนเต็มจะไม่มีการตัดเศษทศนิยมทิ้ง
รูปแบบ floor(x);
โปรแกรมตัวอย่าง แสดงการใช้งานฟังก์ชัน ceil(x) และ floor(x)
/* math4.c */
#include<stdio.h> /* บรรทัดที่ 1 */
#include<math.h> /* บรรทัดที่ 2 */
#include<conio.h> /* บรรทัดที่ 3 */
void main(void) /* บรรทัดที่ 4 */
{ /* บรรทัดที่ 5 */
clrscr(); /* บรรทัดที่ 6 */
printf("%.4fn", ceil(9.8765)); /* บรรทัดที่ 7 */
printf("%.4fn", ceil(-3.7654)); /* บรรทัดที่ 8 */
printf("%.4fn", ceil(80)); /* บรรทัดที่ 9 */
printf("%.4fn", floor(7.9876)); /* บรรทัดที่ 10 */
printf("%.4fn", floor(-3.321)); /* บรรทัดที่ 11 */
printf("%.4fn", floor(180)); /* บรรทัดที่ 12 */
printf("nPress any key back to program ..."); /* บรรทัดที่ 13 */
getch(); /* บรรทัดที่ 14 */
} /* บรรทัดที่ 15 */
ผลลัพธ์ที่ได้จากโปรแกรม
จากโปรแกรมตัวอย่าง สามารถอธิบายการทางานของโปรแกรมที่สาคัญ ๆ ได้ดังนี้
บรรทัดที่ 7 คาสั่ง printf(“%.4fn”,ceil(9.8765)); ฟังก์ชันที่ใช้ในการปัดเศษทศนิยม
ขึ้นของตัวเลข 9.8765 และแสดงผลออกที่จอภาพ
บรรทัดที่ 8 คาสั่ง printf(“%.4fn”,ceil(-3.7654)); ฟังก์ชันที่ใช้ในการปัดเศษ
ทศนิยมขึ้นของตัวเลข -3.7654 และแสดงผลออกที่จอภาพ
บรรทัดที่ 9 คาสั่ง printf(“%.4fn”,ceil(80)); ฟังก์ชันที่ใช้ในการปัดเศษทศนิยมขึ้นของ
ตัวเลข 80 และแสดงผลออกที่จอภาพ
บรรทัดที่ 10 คาสั่ง printf(“%.4fn”,floor(7.9876)); ฟังก์ชันที่ใช้ในการตัดเศษ
ทศนิยมทิ้งของตัวเลข 7.9876 และแสดงผลออกที่จอภาพ
บรรทัดที่ 11 คาสั่ง printf(“%.4fn”,floor(-3.321)); ฟังก์ชันที่ใช้ในการตัดเศษ
ทศนิยมทิ้งของตัวเลข -3.321 และแสดงผลออกที่จอภาพ
บรรทัดที่ 12 คาสั่ง printf(“%.4fn”,floor(180)); ฟังก์ชันที่ใช้ในการตัดเศษทศนิยมทิ้ง
ของตัวเลข 180 และแสดงผลออกที่จอภาพ
บรรทัดที่ 13 และ 14 พิมพ์ข้อความให้กดคีย์ใด ๆ เพื่อกลับสู่โปรแกรม และหยุดรอรับค่าใด
ๆ เช่น กด enter จะกลับเข้าสู่โปรแกรม
14. ฟังก์ชัน fabs(x)
เป็นฟังก์ชันที่ใช้หาค่าสัมบูรณ์ (absolute value) ของค่าคงที่หรือตัวแปร x โดย
ที่ x เป็นค่าคงที่หรือตัวแปรที่เก็บค่าตัวเลขจุดทศนิยมที่มีค่าบวกหรือลบก็ได้
รูปแบบ fabs(x);
โปรแกรมตัวอย่าง แสดงการใช้งานฟังก์ชัน fabs(x)
/* math5.c */
#include<stdio.h> /* บรรทัดที่ 1 */
#include<math.h> /* บรรทัดที่ 2 */
#include<conio.h> /* บรรทัดที่ 3 */
void main(void) /* บรรทัด
ที่ 4 */
{ /* บรรทัดที่ 5 */
double x = 123.4567, y = -891.2345; /* บรรทัดที่ 6 */
clrscr(); /* บรรทัดที่ 7 */
printf("Absolute value of x = %.5fn",fabs(x)); /* บรรทัดที่ 8 */
printf("Absolute value of y = %.5fn",fabs(y)); /* บรรทัดที่ 9 */
printf("nPress any key back to program ..."); /* บรรทัดที่ 10 */
getch(); /* บรรทัดที่ 11 */
} /* บรรทัดที่ 12 */
ผลลัพธ์ที่ได้จากโปรแกรม
จากโปรแกรมตัวอย่าง สามารถอธิบายการทางานของโปรแกรมที่สาคัญ ๆ ได้ดังนี้
บรรทัดที่ 8 และ 9 ใช้ฟังก์ชัน fabs( ) หาค่าสัมบูรณ์ (absolute value) ของค่าคงที่หรือ
ตัวแปร x และ y และแสดงผลออกที่จอภาพ ตามลาดับ
บรรทัดที่ 10 และ 11 พิมพ์ข้อความให้กดคีย์ใด ๆ เพื่อกลับสู่โปรแกรม และหยุดรอรับค่าใด
ๆ เช่น กด enter จะกลับเข้าสู่โปรแกรม
ฟังก์ชันเกี่ยวกับตัวอักษร (character functions)
เป็นฟังก์ชันที่ใช้กับข้อมูลที่มีชนิดเป็น single char (ใช้เนื้อ
ที่ 1 byte) เท่านั้น และก่อนที่จะใช้ฟังก์ชันประเภทนี้จะต้องใช้คาสั่ง
#include<ctype.h> แทรกอยู่ตอนต้นของโปรแกรม จึงจะสามารถเรียกใช้ฟังก์ชัน
ประเภทนี้ได้
ฟังก์ชันที่เกี่ยวกับตัวอักษรที่ควรทราบ มีดังนี้
isalnum(ch) isalpha(ch) isdigit(ch) islower(ch)
isupper(ch)
tolower(ch) toupper(ch)
isspace(ch) isxdigit(ch)
มีรายละเอียดของฟังก์ชันแต่ละฟังก์ชันดังต่อไปนี้
1) ฟังก์ชัน isalnum(ch)
เป็นฟังก์ชันที่ใช้ตรวจสอบว่าข้อมูลที่เก็บไว้ในตัวแปร ch เป็นตัวอักษรหรือ
ตัวเลข (letter or digit) ถ้าข้อมูลที่เก็บไว้เป็นตัวอักษรหรือตัวเลขก็จะส่งค่ากลับที่
เป็นจานวนเต็มที่มีค่าไม่เท่ากับศูนย์มายังฟังก์ชัน และถ้าข้อมูลที่เก็บไว้ในตัว
แปร ch ไม่ได้เก็บตัวอักษรหรือตัวเลขก็จะส่งค่ากลับที่มีค่าเป็นศูนย์มายังฟังก์ชัน
รูปแบบ isalnum(ch);
2) ฟังก์ชัน isalpha(ch)
เป็นฟังก์ชันที่ใช้ตรวจสอบว่าข้อมูลที่เก็บไว้ในตัวแปร ch เป็น
ตัวอักษร (letter) หรือไม่ ถ้าใช่ฟังก์ชันนี้จะให้ค่าส่งกลับเป็นเลขจานวนเต็มที่ไม่เท่ากับ
ศูนย์ ถ้าไม่ใช่ฟังก์ชันนี้จะให้ค่าส่งกลับมาเป็นเลขศูนย์ (0)
รูปแบบ isalpha(ch);
3) ฟังก์ชัน isdigit(ch)
เป็นฟังก์ชันที่ใช้ตรวจสอบว่าข้อมูลที่เก็บไว้ในตัวแปร ch เป็น
ตัวเลข 0 ถึง 9 หรือไม่ ถ้าใช่ฟังก์ชันนี้จะให้ค่าส่งกลับเป็นเลขจานวนเต็มที่ไม่เท่ากับศูนย์ ถ้า
ไม่ใช่ฟังก์ชันนี้จะไม่มีการส่งค่ากลับ
รูปแบบ isdigit(ch);
โปรแกรมตัวอย่าง แสดงการใช้งานฟังก์ชัน isalnum(ch), isalpha(ch) และ isdigit(ch)
/* char1.c */
#include<stdio.h> /* บรรทัดที่ 1 */
#include<ctype.h> /* บรรทัดที่ 2 */
#include<conio.h> /* บรรทัดที่ 3 */
void main(void) /* บรรทัดที่ 4 */
{ /* บรรทัดที่ 5 */
char ch1 = '6', ch2 = 'K', ch3 = '*'; /* บรรทัดที่ 6 */
clrscr( ); /* บรรทัดที่ 7 */
printf("%dn",isalnum(ch1)); /* บรรทัดที่ 8 */
printf("%dn",isalnum(ch2)); /* บรรทัดที่ 9 */
printf("%dn",isalnum(ch3)); /* บรรทัดที่ 10 */
printf("%dn",isalpha(ch1)); /* บรรทัดที่ 11 */
printf("%dn",isalpha(ch2)); /* บรรทัดที่ 12 */
printf("%dn",isalpha(ch3)); /* บรรทัดที่ 13 */
printf("%dn",isdigit(ch1)); /* บรรทัดที่ 14 */
printf("%dn",isdigit(ch2)); /* บรรทัดที่ 15 */
printf("%dn",isdigit(ch3)); /* บรรทัดที่ 16 */
printf("nPress any key back to program ..."); /* บรรทัดที่ 17 */
getch(); /* บรรทัดที่ 18 */
} /* บรรทัดที่ 19 */
ผลลัพธ์ที่ได้จากโปรแกรม
จากโปรแกรมตัวอย่าง สามารถอธิบายการทางานของโปรแกรมที่สาคัญ ๆ ได้ดังนี้
บรรทัดที่ 8 ถึง 10 ใช้ฟังก์ชัน isalnum( ) ใช้ตรวจสอบว่าข้อมูลที่เก็บไว้ในตัวแปร ch1,
ch2 และ ch3 ตามลาดับ เป็นตัวอักษรหรือตัวเลข ซึ่งถ้าข้อมูลที่เก็บไว้เป็นตัวอักษรหรือ
ตัวเลขจะส่งค่ากลับที่เป็นจานวนเต็มที่มีค่าไม่เท่ากับศูนย์มายังฟังก์ชัน แต่ถ้าข้อมูลในตัวแปร
ไม่ได้เก็บตัวอักษรหรือตัวเลขจะส่งค่าศูนย์กลับมายังฟังก์ชัน แล้วแสดงผลที่ได้ออกมาจอภาพ
บรรทัดที่ 11 ถึง 13 ใช้ฟังก์ชัน isalpha( ) ใช้ตรวจสอบว่าข้อมูลในตัวแปร ch1,
ch2 และ ch3 ตามลาดับ เป็นตัวอักษรหรือไม่ ถ้าใช่ฟังก์ชันจะให้ค่ากลับเป็นเลขจานวน
เต็มที่ไม่เท่ากับศูนย์ถ้าไม่ใช่ฟังก์ชันจะให้ค่ากลับเป็นศูนย์แล้วแสดงผลที่ได้ออกจอภาพ
บรรทัดที่ 14 ถึง 16 ใช้ฟังก์ชัน isdigit( ) ใช้ตรวจสอบว่าข้อมูลที่เก็บในตัวแปร ch1,
ch2 และ ch3 ตามลาดับ เป็นตัวเลข 0 ถึง 9 หรือไม่ ถ้าใช่ฟังก์ชันจะให้ค่ากลับเป็นเลข
จานวนเต็มที่ไม่เท่ากับศูนย์ ถ้าไม่ใช่ฟังก์ชันจะไม่มีการส่งค่ากลับ
บรรทัดที่ 17 และ 18 พิมพ์ข้อความให้กดคีย์ใด ๆ เพื่อกลับสู่โปรแกรม และหยุดรอรับค่าใด
ๆ เช่น กด enter จะกลับเข้าสู่โปรแกรม
4) ฟังก์ชัน islower(ch)
เป็นฟังก์ชันที่ใช้ตรวจสอบว่าข้อมูลที่เก็บไว้ในตัวแปร ch เป็นตัวอักษรตัวเล็กหรือไม่ ถ้าใช่
ให้ส่งค่ากลับเป็นเลขจานวนเต็มที่ไม่เท่ากับศูนย์ ถ้าไม่ใช่ฟังก์ชันนี้จะให้ค่าส่งกลับเป็นเลข
ศูนย์ (0)
รูปแบบ islower(ch);
5) ฟังก์ชัน isupper(ch)
เป็นฟังก์ชันที่ใช้ตรวจสอบว่าข้อมูลที่เก็บไว้ในตัวแปร ch เป็นตัวอักษรตัวใหญ่หรือไม่ ถ้าใช่
ให้ส่งค่ากลับเป็นเลขจานวนเต็มที่ไม่เท่ากับศูนย์ ถ้าไม่ใช่ฟังก์ชันนี้จะให้ค่าส่งกลับเป็นเลข
ศูนย์ (0)
รูปแบบ isupper(ch);
6) ฟังก์ชัน tolower(ch)
เป็นฟังก์ชันที่ใช้เปลี่ยนตัวอักษรตัวใหญ่ที่เก็บไว้ในตัวแปร ch ให้เป็นอักษรตัวเล็ก
รูปแบบ tolower(ch);
7) ฟังก์ชัน toupper(ch)
เป็นฟังก์ชันที่ใช้เปลี่ยนตัวอักษรตัวเล็กที่เก็บไว้ในตัวแปร ch ให้เป็นอักษรตัวใหญ่
รูปแบบ toupper(ch);
โปรแกรมตัวอย่าง แสดงการใช้งานฟังก์ชัน islower(ch), isupper(ch),
tolower(ch) และ toupper(ch)
/* char2.c */
#include<stdio.h> /* บรรทัดที่ 1 */
#include<ctype.h> /* บรรทัดที่ 2 */
#include<conio.h> /* บรรทัดที่ 3 */
void main(void) /* บรรทัดที่ 4 */
{ /* บรรทัดที่ 5 */
char ch1 = 'm', ch2 = 'N'; clrscr( ); /* บรรทัดที่ 6 */
printf("%dt%dn",islower(ch1),islower(ch2)); /* บรรทัดที่ 7 */
printf("%dt%dn",isupper(ch1),isupper(ch2)); /* บรรทัดที่ 8 */
printf("%ct%cn",tolower(ch1),toupper(ch2)); /* บรรทัดที่ 9 */
printf("nPress any key back to program ..."); /* บรรทัดที่ 10 */
getch(); /* บรรทัดที่ 11 */
} /* บรรทัดที่ 12 */
ผลลัพธ์ที่ได้จากโปรแกรม
จากโปรแกรมตัวอย่าง สามารถอธิบายการทางานของโปรแกรมที่สาคัญ ๆ ได้ดังนี้
บรรทัดที่ 7 ใช้ฟังก์ชัน islower( ) ตรวจสอบตัวอักษรที่เก็บไว้ในตัว
แปร ch1 และ ch2 เป็นตัวอักษรตัวพิมพ์เล็กหรือไม่ ถ้าใช่ฟังก์ชันจะให้ค่ากลับเป็นเลข
จานวนเต็มที่ไม่เท่ากับศูนย์ ถ้าไม่ใช่ฟังก์ชันจะให้ค่ากลับเป็นเลขศูนย์ แล้วแสดงผลออกที่
จอภาพ
บรรทัดที่ 8 ใช้ฟังก์ชัน isupper( ) ตรวจสอบตัวอักษรที่เก็บไว้ในตัว
แปร ch1 และ ch2 เป็นตัวอักษรตัวพิมพ์ใหญ่หรือไม่ ถ้าใช่ฟังก์ชันจะให้ค่ากลับเป็นเลข
จานวนเต็มที่ไม่เท่ากับศูนย์ ถ้าไม่ใช่ฟังก์ชันจะให้ค่ากลับเป็นเลขศูนย์ แล้วแสดงผลออกที่
จอภาพ
บรรทัดที่ 9 ใช้ฟังก์ชัน tolower( ) ใช้เปลี่ยนตัวอักษรตัวพิมพ์ใหญ่ที่เก็บไว้ในตัว
แปร ch1 ให้เป็นตัวอักษรตัวพิมพ์เล็ก และใช้ฟังก์ชัน toupper( ) ใช้เปลี่ยนตัวอักษร
ตัวพิมพ์เล็กที่เก็บไว้ในตัวแปร ch2 ให้เป็นตัวอักษรตัวพิมพ์ใหญ่ แล้วแสดงผลออกจอภาพ
บรรทัดที่ 10 และ 11 พิมพ์ข้อความให้กดคีย์ใด ๆ เพื่อกลับสู่โปรแกรม และหยุดรอรับค่าใด
ๆ เช่น กด enter จะกลับเข้าสู่โปรแกรม
8) ฟังก์ชัน isspace(ch)
เป็นฟังก์ชันที่ใช้ตรวจสอบว่าค่าข้อมูลที่อยู่ในตัวแปร ch มีค่า
เป็น whitespace หรือไม่ (whitespace) ได้แก่ space, tab, vertical
tab, formfeed, carriage return และ new line ถ้า
เป็น whitespace เพียงแค่ตัวใดตัวหนึ่ง ฟังก์ชันนี้จะให้ค่าส่งกลับที่เป็นเลขจานวนเต็มที่
ไม่เท่ากับศูนย์ถ้าไม่ป็น whitespace ฟังก์ชันนี้จะให้ค่าส่งกลับเป็นเลขศูนย์ (0)
รูปแบบ isspace(ch);
9) ฟังก์ชัน isxdigit(ch)
เป็นฟังก์ชันที่ใช้ตรวจสอบว่าข้อมูลตัวเลขที่อยู่ในตัวแปร ch เป็นตัวเลขฐานสิบหก (0-9,
A-F, หรือ a-f) หรือไม่ ถ้าใช่ฟังก์ชันนี้จะมีการส่งค่ากลับตัวเลขที่ไม่เท่ากับศูนย์มายัง
ฟังก์ชัน ถ้าไม่ใช่ฟังก์ชันนี้จะส่งค่าเป็นตัวเลขศูนย์กลับมายังฟังก์ชัน
รูปแบบ isxdigit(ch);
โปรแกรมตัวอย่าง แสดงการใช้งานฟังก์ชัน isspace(ch) และ isxdigit(ch)
/* char3.c */
#include<stdio.h> /* บรรทัดที่ 1 */
#include<ctype.h> /* บรรทัดที่ 2 */
#include<conio.h> /* บรรทัดที่ 3 */
void main(void) /* บรรทัดที่ 4 */
{ /* บรรทัดที่ 5 */
char ch1 = '0', ch2 = 'n', ch3 = 't', ch4 = 'J' ; /* บรรทัดที่ 6 */
clrscr( ); /* บรรทัดที่ 7 */
printf("%dt%dn",isspace(ch1),isspace(ch2)); /* บรรทัดที่ 8 */
printf("%dt%dn",isspace(ch3),isxdigit(ch4)); /* บรรทัดที่ 9 */
printf("nPress any key back to program ..."); /* บรรทัดที่ 10 */
getch(); /* บรรทัดที่ 11 */
} /* บรรทัดที่ 12 */
ผลลัพธ์ที่ได้จากโปรแกรม
จากโปรแกรมตัวอย่าง สามารถอธิบายการทางานของโปรแกรมที่สาคัญ ๆ ได้ดังนี้
บรรทัดที่ 8 ใช้ฟังก์ชัน isspace( ) ตรวจสอบว่าข้อมูลที่อยู่ในตัวแปร ch1 และ ch2 มีค่า
เป็น whitespace หรือไม่ ถ้าเป็นฟังก์ชันจะให้ค่ากลับที่เป็นเลขจานวนเต็มที่ไม่เท่ากับ
ศูนย์ ถ้าไม่ใช่ฟังก์ชันจะให้ค่ากลับเป็นเลขศูนย์ แล้วแสดงผลที่ได้ออกจอภาพ
บรรทัดที่ 9 ใช้ฟังก์ชัน isspace( ) ตรวจสอบว่าข้อมูลที่อยู่ในตัวแปร ch3 มีค่า
เป็น whitespace หรือไม่ ถ้าเป็นฟังก์ชันจะให้ค่ากลับที่เป็นเลขจานวนเต็มที่ไม่เท่ากับ
ศูนย์ ถ้าไม่ใช่ฟังก์ชันจะให้ค่ากลับเป็นเลขศูนย์ แล้วแสดงผลที่ได้ออกจอภาพ และใช้
ฟังก์ชัน isxdigit( ) ตรวจสอบว่าข้อมูลตัวเลขที่อยู่ในตัวแปร ch4 ว่าเป็นตัวเลขฐานสิบ
หกหรือไม่ ถ้าใช่ฟังก์ชันจะส่งค่ากลับเป็นตัวเลขที่ไม่เท่ากับศูนย์ ถ้าไม่ใช่ฟังก์ชันจะส่งตัวเลข
ศูนย์กลับมายังฟังก์ชัน
บรรทัดที่ 10 และ 11 พิมพ์ข้อความให้กดคีย์ใด ๆ เพื่อกลับสู่โปรแกรม และหยุดรอรับค่าใด
ๆ เช่น กด enter จะกลับเข้าสู่โปรแกรม
ฟังก์ชันเกี่ยวกับสตริง (string functions)
เป็นฟังก์ชันที่ใช้กับข้อมูลชนิดสตริง (string) โดยก่อนที่จะใช้ฟังก์ชันประเภทนี้
จะต้องใช้คาสั่ง #include<string.h> แทรกอยู่ตอนต้นของโปรแกรมเสียก่อน จึงจะ
เรียกใช้ฟังก์ชันประเภทนี้ได้
ฟังก์ชันที่เกี่ยวข้องกับสตริงที่ควรทราบ มีดังนี้
strlen(s) strcmp(s1,s2)
strcpy(s) strcat(s1,s2)
สาหรับรายละเอียดของฟังก์ชันแต่ละฟังก์ชันได้เคยกล่าวมาแล้วในบท
ที่ 5 เกี่ยวกับ array และ string จึงไม่ขอกล่าวซ้าอีก
นางสาวกาญจนา ถึกจรูญ เลขที่ 21
สมาชิก
นางสาวรุจิรา ตั้งมั่น เลขที่ 24
นางสาวขวัญจิรา โพธิ์ล้อม เลขที่ 28
นางสาวจิดาภา บารุงวงศ์ เลขที่ 29
นางสาวณัฐฐา ศรีอินทร์ เลขที่ 30
นางสาวสุทธิดา มากมี เลขที่ 33
นางสาวเกสรา วัจนะ เลขที่ 38
ครูที่ปรึกษารายวิชา
ครูทรงศักดิ์ โพธิ์เอี่ยม
โรงเรียนเฉลิมพระเกียรติ สมเด็จพระศรีนครินทร์ กาญจนบุรี

More Related Content

What's hot

บทที่6 งานคอม
บทที่6 งานคอมบทที่6 งานคอม
บทที่6 งานคอมIce Ice
 
59170249 ธิดารัตน์
59170249 ธิดารัตน์59170249 ธิดารัตน์
59170249 ธิดารัตน์Beam Suna
 
Java Programming [9/12]: Exception Handling
Java Programming [9/12]: Exception HandlingJava Programming [9/12]: Exception Handling
Java Programming [9/12]: Exception HandlingIMC Institute
 
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐานโปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐานPrapatsorn Keawnoun
 
4.ฟังก์ชันในภาษาซี
4.ฟังก์ชันในภาษาซี4.ฟังก์ชันในภาษาซี
4.ฟังก์ชันในภาษาซีmansuang1978
 
Error handle-OOP(รูปแบบและลักษณะการ Error ในโปรแกรม)
Error handle-OOP(รูปแบบและลักษณะการ Error ในโปรแกรม)Error handle-OOP(รูปแบบและลักษณะการ Error ในโปรแกรม)
Error handle-OOP(รูปแบบและลักษณะการ Error ในโปรแกรม)Anekwong Yoddumnern
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาAeew Autaporn
 
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1Little Tukta Lita
 
โปรแกรมย่อยและฟังก์ชั่นมาตรฐาน
โปรแกรมย่อยและฟังก์ชั่นมาตรฐานโปรแกรมย่อยและฟังก์ชั่นมาตรฐาน
โปรแกรมย่อยและฟังก์ชั่นมาตรฐานWorapod Khomkham
 

What's hot (20)

บทที่6 งานคอม
บทที่6 งานคอมบทที่6 งานคอม
บทที่6 งานคอม
 
โปรแกรมย่อยและฟังก์ชันมาตรฐาน 1
โปรแกรมย่อยและฟังก์ชันมาตรฐาน 1โปรแกรมย่อยและฟังก์ชันมาตรฐาน 1
โปรแกรมย่อยและฟังก์ชันมาตรฐาน 1
 
59170249 ธิดารัตน์
59170249 ธิดารัตน์59170249 ธิดารัตน์
59170249 ธิดารัตน์
 
Presenter
PresenterPresenter
Presenter
 
Java Programming [9/12]: Exception Handling
Java Programming [9/12]: Exception HandlingJava Programming [9/12]: Exception Handling
Java Programming [9/12]: Exception Handling
 
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐานโปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
 
3.2 ตัวแปรและคำสงวน
3.2 ตัวแปรและคำสงวน3.2 ตัวแปรและคำสงวน
3.2 ตัวแปรและคำสงวน
 
Presenter1234567
Presenter1234567Presenter1234567
Presenter1234567
 
4.ฟังก์ชันในภาษาซี
4.ฟังก์ชันในภาษาซี4.ฟังก์ชันในภาษาซี
4.ฟังก์ชันในภาษาซี
 
โปรแกรมย่อยและฟังก์ชัน
โปรแกรมย่อยและฟังก์ชันโปรแกรมย่อยและฟังก์ชัน
โปรแกรมย่อยและฟังก์ชัน
 
งานทำ Blog บทที่ 13
งานทำ Blog บทที่ 13งานทำ Blog บทที่ 13
งานทำ Blog บทที่ 13
 
งานทำBlog บทที่ 10
งานทำBlog บทที่ 10งานทำBlog บทที่ 10
งานทำBlog บทที่ 10
 
Error handle-OOP(รูปแบบและลักษณะการ Error ในโปรแกรม)
Error handle-OOP(รูปแบบและลักษณะการ Error ในโปรแกรม)Error handle-OOP(รูปแบบและลักษณะการ Error ในโปรแกรม)
Error handle-OOP(รูปแบบและลักษณะการ Error ในโปรแกรม)
 
โครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซีโครงสร้างโปรแกรมภาษาซี
โครงสร้างโปรแกรมภาษาซี
 
Pbl 2
Pbl 2Pbl 2
Pbl 2
 
3.7 การเขียนผังงาน
3.7 การเขียนผังงาน3.7 การเขียนผังงาน
3.7 การเขียนผังงาน
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 
Chapter1
Chapter1Chapter1
Chapter1
 
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1
ฟังก์ชั่นย่อยและโปรแกรมมาตรฐาน ม.6.1
 
โปรแกรมย่อยและฟังก์ชั่นมาตรฐาน
โปรแกรมย่อยและฟังก์ชั่นมาตรฐานโปรแกรมย่อยและฟังก์ชั่นมาตรฐาน
โปรแกรมย่อยและฟังก์ชั่นมาตรฐาน
 

Similar to กลุ่มที่ 6 โปรแกรมย่อยและฟังก์ชันมาตรฐาน

โปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐานโปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐานchanamanee Tiya
 
คอมพิวเตอร์โอลิมปิก
คอมพิวเตอร์โอลิมปิกคอมพิวเตอร์โอลิมปิก
คอมพิวเตอร์โอลิมปิกSumalee Sonamthiang
 
Pbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นPbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นDararat Worasut
 
บทที่ 9 การพ้องรูป
บทที่ 9 การพ้องรูปบทที่ 9 การพ้องรูป
บทที่ 9 การพ้องรูปTheeravaj Tum
 
2. โครงสร้างภาษาซี
2. โครงสร้างภาษาซี2. โครงสร้างภาษาซี
2. โครงสร้างภาษาซีmansuang1978
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาSaranporn Rungrueang
 

Similar to กลุ่มที่ 6 โปรแกรมย่อยและฟังก์ชันมาตรฐาน (20)

โปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐานโปรแกรมย่อยและฟังก์ชันมาตรฐาน
โปรแกรมย่อยและฟังก์ชันมาตรฐาน
 
3.8 การทำงานแบบลำดับ
3.8 การทำงานแบบลำดับ3.8 การทำงานแบบลำดับ
3.8 การทำงานแบบลำดับ
 
Lab intro-5-1
Lab intro-5-1Lab intro-5-1
Lab intro-5-1
 
3.8 การทำงานแบบลำดับ
3.8 การทำงานแบบลำดับ3.8 การทำงานแบบลำดับ
3.8 การทำงานแบบลำดับ
 
3.8 การทำงานตามลำดับ
3.8 การทำงานตามลำดับ3.8 การทำงานตามลำดับ
3.8 การทำงานตามลำดับ
 
3.8 การทำงานแบบลำดับ
3.8 การทำงานแบบลำดับ3.8 การทำงานแบบลำดับ
3.8 การทำงานแบบลำดับ
 
ฟังก์ชั่น Switch
ฟังก์ชั่น Switchฟังก์ชั่น Switch
ฟังก์ชั่น Switch
 
คอมพิวเตอร์โอลิมปิก
คอมพิวเตอร์โอลิมปิกคอมพิวเตอร์โอลิมปิก
คอมพิวเตอร์โอลิมปิก
 
C lang
C langC lang
C lang
 
Pbl2
Pbl2Pbl2
Pbl2
 
power point.
power point.power point.
power point.
 
Pbl2 docx
Pbl2 docxPbl2 docx
Pbl2 docx
 
Pbl2 docx
Pbl2 docxPbl2 docx
Pbl2 docx
 
Pbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้นPbl2 นะแนนxปิ้น
Pbl2 นะแนนxปิ้น
 
งานทำBlog บทที่ 10
งานทำBlog บทที่ 10งานทำBlog บทที่ 10
งานทำBlog บทที่ 10
 
3.6 ฟังก์ชัน
3.6 ฟังก์ชัน3.6 ฟังก์ชัน
3.6 ฟังก์ชัน
 
งานทำBlog บทที่ 10
งานทำBlog บทที่ 10งานทำBlog บทที่ 10
งานทำBlog บทที่ 10
 
บทที่ 9 การพ้องรูป
บทที่ 9 การพ้องรูปบทที่ 9 การพ้องรูป
บทที่ 9 การพ้องรูป
 
2. โครงสร้างภาษาซี
2. โครงสร้างภาษาซี2. โครงสร้างภาษาซี
2. โครงสร้างภาษาซี
 
พื้นฐานภาษาจาวา
พื้นฐานภาษาจาวาพื้นฐานภาษาจาวา
พื้นฐานภาษาจาวา
 

More from Kanchana Theugcharoon (18)

Melioidosis infection diseases
Melioidosis infection diseasesMelioidosis infection diseases
Melioidosis infection diseases
 
It news
It newsIt news
It news
 
บทที่ 8 Methods
บทที่ 8 Methodsบทที่ 8 Methods
บทที่ 8 Methods
 
It news1
It news1It news1
It news1
 
It news
It newsIt news
It news
 
IT NEWS Lenovo smart cast
IT NEWS Lenovo smart castIT NEWS Lenovo smart cast
IT NEWS Lenovo smart cast
 
present
presentpresent
present
 
Present1
Present1Present1
Present1
 
สำรวจการใช้รถยนต์ของนักเรียนโรงเรียนเฉลิมพระเกียรติฯกาญจนบุรี ในปีการศึกษา 2557
สำรวจการใช้รถยนต์ของนักเรียนโรงเรียนเฉลิมพระเกียรติฯกาญจนบุรี  ในปีการศึกษา 2557สำรวจการใช้รถยนต์ของนักเรียนโรงเรียนเฉลิมพระเกียรติฯกาญจนบุรี  ในปีการศึกษา 2557
สำรวจการใช้รถยนต์ของนักเรียนโรงเรียนเฉลิมพระเกียรติฯกาญจนบุรี ในปีการศึกษา 2557
 
บทที่2
บทที่2บทที่2
บทที่2
 
Cars
CarsCars
Cars
 
รถล้นโลก
รถล้นโลก รถล้นโลก
รถล้นโลก
 
โครงงาน รถล้นโลก
โครงงาน รถล้นโลกโครงงาน รถล้นโลก
โครงงาน รถล้นโลก
 
IT NEWS
IT NEWSIT NEWS
IT NEWS
 
It news
It newsIt news
It news
 
It news
It newsIt news
It news
 
It news
It news It news
It news
 
It news
It newsIt news
It news
 

กลุ่มที่ 6 โปรแกรมย่อยและฟังก์ชันมาตรฐาน

  • 2. โปรแกรมย่อย ประเภทของโปรแกรมย่อย ประเภทของโปรแกรมย่อย (Procedure) เป็ นส่วนหนึ่งของโปรแกรม มี หน้าที่เฉพาะตัวโดยแยกการทางานออกจาก โปรแกรมอย่างอิสระ การเขียนโปรแกรมที่มีการทางานแบบโปรแกรมย่อยจะช่วยลดความ ซับซ้อนของโปรแกรม ซึ่งจะทาให้สามารถแก้ไขและเพิ่มเติม การทางานของ โปรแกรมได้ง่ายขึ้น ในบางครั้งโปรแกรมหลักจะมีการส่งข้อมูลไปทางานใน โปรแกรมย่อยด้วย โดยข้อมูลนั้นจะเก็บอยู่ในรูป ตัวแปรพิเศษเรียกว่า พารามิเตอร์ (Parameter)
  • 3. Visual Basic 2008 สามารแบ่งโปรแกรมย่อยได้ 2 ประเภท คือ Sub มาจากคาเต็มว่า ซับรูทีน (Subroutine) เป็นโปรแกรมย่อยเมื่อทางานแล้ว จะ ไม่มีการส่งผลการทางานกลับไปยังโปรแกรม ที่เรียกซับรูทีนนี้ใช้งาน Function เป็นโปรแกรมย่อยเมื่อทางานเสร็จแล้ว จะต้องมีการส่งผลการทางาน กลับไปยังโปรแกรมที่เรียกฟังก์ชันนี้ใช้งาน ในที่นี้ผู้เรียกใช้ Sub หรือ Function จะเป็นตัวโปรแกรมหลัก หรือโปรแกรมย่อย อื่นๆก็ได้
  • 4. โปรแกรมย่อยไม่ว่าจะเป็น Sub หรือ Function นั้น จะมีหรือไม่มีการส่งข้อมูล ผ่านตัวพารามิเตอร์ก็ได้ขึ้นอยู่กับว่าโปรแกรมย่อยนั้นระบุ ให้มีการกาหนดตาแหน่งให้ ค่าพารามิเตอร์หรือไม่
  • 6. ตัวอย่างการใช้งาน Subroutine : ตัวอย่างนี้จะสร้างแอพพลิเคชัน แบบระบบลงทะเบียนซึ่งจะมีการใช้งาน Subroutine ที่เราเขียนขึ้นมา 1. ออกแบบหน้าตาแอพพลิเคชัน และตั้งชื่อคอนโทรลต่างๆ ดังนี้
  • 7. 2. ดับเบิลคลิกที่ฟอร์มเพื่อเขียนโค้ดใน Even Load โดยจะเริ่มแนะนาให้ผู้ใช้งานทราบวิธีการ ทางานโดยจะเรียก Sub ที่ชื่อว่า InformUser
  • 8. 3. ให้หน้าต่างโค้ดของ Sub InformUser โดยเขียนต่อท้ายไปได้เลย
  • 9. 4. ดับเบิลคลิกที่ปุ่ม ลงทะเบียน แล้วเขียนโค้ดเพื่อตรวจสอบความครบถ้วนถูกต้องของข้อมูลที่ป้อนเข้าไป ถ้าเรียบร้อยถือว่าลงทะเบียนได้แต่ถ้าไม่เรียนร้อยแจ้งให้ผู้ใช้ทราบ
  • 10. 5 . สาหรับ Sub CheckPassword นั้นมีหลักการตรวจสอบความ ถูกต้องอยู่ 3 ข้อ ดังรายละเอียดที่แสดดงในโค้ดต่อไปนี้
  • 11. 6 . ดับเบิลคลิกปุ่ม เคลียร์ แล้วเขียนโค้ดเพื่อเคลียร์ค่าข้อมูลใน TexBox ต่างๆ ดังนี้
  • 12. 7 . กดปุ่ม F5 เพื่อทดสอบการทางานของแอพ พลิเคชัน ได้ผลดังนี้
  • 13.
  • 14. การใช้ฟังก์ชันมาตรฐานภาษาซี สาหรับเนื้อหาในบทนี้จะกล่าวถึงฟังก์ชันในภาษา C โดยจะประกอบไป ด้วยเนื้อหาหลัก ๆ คือ เรื่องที่หนึ่ง ฟังก์ชันมาตรฐาน เป็นฟังก์ชันที่บริษัท ที่ผลิตภาษา C ได้เขียนขึ้นและเก็บไว้ ใน header file ภาษา C คือเก็บไว้ในแฟ้ มที่มีนามสกุล *.h ต่าง ๆ ส่วนเรื่องที่สอง เป็นฟังก์ชันที่เขียนขึ้นหรือเรียกอีกอย่างว่าโปรแกรม ย่อย ที่ผู้เขียนโปรแกรมเขียนขึ้นมาใช้งานอย่างใดอย่างหนึ่งตามความ ต้องการของงานนั้น ๆ โดยรายละเอียดของแต่ละฟังก์ชันมีดังต่อไปนี้
  • 15. ฟังก์ชันมาตรฐาน (standard functions) เป็นฟังก์ชันที่บริษัทที่ผลิตภาษา C ได้เขียนขึ้นและเก็บไว้ ใน header file ภาษา C คือเก็บไว้ในแฟ้มที่มีนามสกุล *.h ต่าง ๆ เมื่อต้องการใช้ ฟังก์ชันใด จะต้องรู้ว่าฟังก์ชันนั้นอยู่ใน header file ใดจากนั้นจึงค่อยใช้ คาสั่ง #include<header file.h> เข้ามาในส่วนตอนต้นของโปรแกรม จึงจะสามารถ ใช้ฟังก์ชันที่ต้องการได้ ซึ่งฟังก์ชันมาตรฐานเป็นฟังก์ชันที่ บริษัทผู้ผลิต C compiler เขียนขึ้นเพื่อให้ผู้ใช้นาไปช่วยในการเขียนโปรแกรมทาให้การ เขียนโปรแกรมสะดวกและง่ายขึ้น บางครั้งเราอาจจะเรียกฟังก์ชันมาตรฐานว่า ”ไลบรารี ฟังก์ชัน” (library functions)
  • 16. สาหรับฟังก์ชันมาตรฐานที่จะกล่าวถึงในหัวข้อนี้จะกล่าว เฉพาะฟังก์ชันมาตรฐานที่ จาเป็น และเรียกใช้งานบ่อย ๆ เท่านั้น ซึ่งมีดังต่อไปนี้ ฟังก์ชันทางคณิตศาสตร์ (mathematic functions) เป็นฟังก์ชันที่ใช้สาหรับการคานวณทางคณิตศาสตร์ และก่อนที่จะใช้ฟังก์ชันประเภท นี้ จะต้องใช้คาสั่ง #include <math.h> แทรกอยู่ตอนต้นของโปรแกรม และตัวแปร ที่จะใช้ฟังก์ชันประเภทนี้จะต้องมีชนิด (type) เป็น double เนื่องจากผลลัพธ์ที่ได้จาก ฟังก์ชันประเภทนี้จะได้ค่าส่งกลับของข้อมูลเป็น double เช่นกัน
  • 17. 1) ฟังก์ชัน acos(x) เป็นฟังก์ชันที่ใช้คานวณหาค่า arc cosine ของ x โดยที่ x เป็นค่ามุมในหน่วยเรเดียน (radian) รูปแบบ acos(x); 2) ฟังก์ชัน asin(x) เป็นฟังก์ชันที่ใช้คานวณหาค่า arc sine ของ x โดยที่ x เป็นค่ามุมในหน่วยเรเดียน รูปแบบ asin(x); 3) ฟังก์ชัน atan(x) เป็นฟังก์ชันที่ใช้คานวณหาค่า arc tan ของ x โดยที่ x เป็นค่ามุมในหน่วยเรเดียน รูปแบบ atan(x); 4) ฟังก์ชัน sin(x) เป็นฟังก์ชันที่ใช้คานวณหาค่า sine ของ x โดยที่ x เป็นค่ามุมในหน่วยเรเดียน รูปแบบ sin(x); 5) ฟังก์ชัน cos(x) เป็นฟังก์ชันที่ใช้คานวณหาค่า cosine ของ x โดยที่ x เป็นค่ามุมในหน่วยเรเดียนรูปแบบ cos(x); 6) ฟังก์ชัน tan(x) เป็นฟังก์ชันที่ใช้คานวณหาค่า tan ของ x โดยที่ x เป็นค่ามุมในหน่วยเรเดียน รูปแบบ tan(x);
  • 18. โปรแกรมตัวอย่าง แสดงการใช้งานฟังก์ชัน 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("%fn",asin(r)); /* บรรทัดที่ 9 */ printf("%fn",acos(r)); /* บรรทัดที่ 10 */ printf("%fn",atan(r)); /* บรรทัดที่ 11 */ printf("%fn",sin(r)); /* บรรทัดที่ 12 */ printf("%fn",cos(r)); /* บรรทัดที่ 13 */ printf("%fn",tan(r)); /* บรรทัดที่ 14 */ printf("nPress any key back to program ..."); /* บรรทัดที่ 15 */ getch(); /* บรรทัดที่ 16 */ } /* บรรทัดที่ 17 */
  • 20. สามารถอธิบายการทางานของโปรแกรมที่สาคัญ ๆ ได้ดังนี้ บรรทัดที่ 9 คาสั่ง printf("%fn",asin(r)); ฟังก์ชันคานวณหาค่า arc sin ของตัวแปร r โดย r เป็นมุมในหน่วยเรเดียน และแสดงผลลัพธ์ที่ได้ออกจอภาพ บรรทัดที่ 10 คาสั่ง printf("%fn",acos(r)); ฟังก์ชันคานวณหาค่า arc cosine ของตัว แปร r โดย r เป็นมุมในหน่วยเรเดียน และแสดงผลลัพธ์ที่ได้ออกจอภาพ บรรทัดที่ 11 คาสั่ง printf("%fn",atan(r)); ฟังก์ชันคานวณหาค่า arc tan ของตัว แปร r โดย r เป็นมุมในหน่วยเรเดียน และแสดงผลลัพธ์ที่ได้ออกจอภาพ บรรทัดที่ 12 คาสั่ง printf("%fn",sin(r)); ฟังก์ชันคานวณหาค่า sine ของตัวแปร r โดย r เป็นมุมในหน่วยเรเดียน และแสดงผลลัพธ์ที่ได้ออกจอภาพ บรรทัดที่ 13 คาสั่ง printf("%fn",cos(r)); ฟังก์ชันคานวณหาค่า cosine ของตัวแปร r โดย r เป็นมุมในหน่วยเรเดียน และแสดงผลลัพธ์ที่ได้ออกจอภาพ บรรทัดที่ 14 คาสั่ง printf("%fn",tan(r)); ฟังก์ชันคานวณหาค่า tan ของตัวแปร r โดย r เป็นมุมในหน่วยเรเดียน และแสดงผลลัพธ์ที่ได้ออกจอภาพ บรรทัดที่ 15 และ 16 พิมพ์ข้อความให้กดคีย์ใด ๆ เพื่อกลับสู่โปรแกรม และหยุดรอรับค่า ใดๆ เช่น กด enter จะกลับเข้าสู่โปรแกรม
  • 21. 7) ฟังก์ชัน sqrt(x) เป็นฟังก์ชันที่ใช้หาค่ารากที่ 2 (square root) ของค่าคงที่หรือตัวแปร x โดย ที่ x จะต้องเป็นค่าคงที่ชนิดตัวเลขหรือตัวแปรที่มีค่าไม่ติดลบ รูปแบบ sqrt(x); 8) ฟังก์ชัน exp(x) เป็นฟังก์ชันที่ใช้หาค่า ex โดยที่ x เป็นค่าคงที่หรือตัวแปรที่จะใช้เป็นค่ายกกาลัง ของ e โดยที่ e มีค่าประมาณ 2.718282 รูปแบบ exp(x); 9) ฟังก์ชัน pow(x,y) เป็นฟังก์ชันที่ใช้หาค่า xy โดยที x เป็นค่าคงที่หรือตัวแปรที่ใช้เป็นตัวฐานซึ่งจะต้องมีค่ามากกว่าศูนย์ y เป็นค่าคงที่หรือตัวแปรที่ใช้เป็นค่ายกกาลัง รูปแบบ pow(x, y);
  • 22. โปรแกรมตัวอย่าง แสดงการใช้งานฟังก์ชัน 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("%.4fn",pow(x,y)); /* บรรทัดที่ 8 */ printf("%.4fn",sqrt(z)); /* บรรทัดที่ 9 */ printf("%.4fn",exp(y)); /* บรรทัดที่ 10 */ printf("nPress any key back to program ..."); /* บรรทัดที่ 11 */ getch(); /* บรรทัดที่ 12 */ } /* บรรทัดที่ 13 */
  • 24. จากโปรแกรมตัวอย่าง สามารถอธิบายการทางานของโปรแกรมที่สาคัญ ๆ ได้ดังนี้ บรรทัดที่ 8 คาสั่ง printf("%.4fn",pow(x,y)); ฟังก์ชันคานวณหาค่า xy โดยที่ x เป็น ค่าคงที่หรือตัวแปรที่ใช้ตัวฐานซึ่งจะต้องมีค่ามากกว่าศูนย์ และ y เป็นค่าคงที่หรือตัวแปรที่ใช้ เป็นค่ายกกาลัง และแสดงผลที่ได้ออกจอภาพ บรรทัดที่ 9 คาสั่ง printf("%.4fn",sqrt(z)); ฟังก์ชันคานวณหาค่ารากที่สอง (square root) ของค่าคงที่หรือตัวแปร z โดยที่ z จะต้องเป็นค่าคงที่ชนิดตัวเลขหรือตัว แปรที่มีค่าไม่ติดลบ และแสดงผลที่ได้ออกจอภาพ บรรทัดที่ 10 คาสั่ง printf("%.4fn",exp(y)); ฟังก์ชันคานวณหาค่า ey โดยที่ y เป็น ค่าคงที่หรือตัวแปรที่จะใช้เป็นค่ายกกาลังของ e โดยที่ e มีค่าประมาณ 2.718282 และ แสดงผลที่ได้ออกจอภาพ บรรทัดที่ 11 และ 12 พิมพ์ข้อความให้กดคีย์ใด ๆ เพื่อกลับสู่โปรแกรม และหยุดรอรับค่าใด ๆ เช่น กด enter จะกลับเข้าสู่โปรแกรม
  • 25. 10) ฟังก์ชัน log(x) เป็นฟังก์ชันที่ใช้หาค่า log ฐาน n (natural logarithm) ของค่าคงที่หรือตัว แปร x โดยที่ x เป็นค่าคงที่หรือตัวแปรที่มีค่าเป็นลบไม่ได้ รูปแบบ log(x); 11) ฟังก์ชัน log10(x) เป็นฟังก์ชันที่ใช้หาค่า log ฐาน 10 ของค่าคงที่หรือตัวแปร x โดยที่ x เป็นค่าคงที่หรือตัว แปรที่มีค่าเป็นลบไม่ได้ รูปแบบ log10(x);
  • 26. โปรแกรมตัวอย่างแสดงการใช้งานฟังก์ชัน 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("%.4fn",log(n)); /* บรรทัดที่ 8 */ printf("%.4fn",log10(m)); /* บรรทัดที่ 9 */ printf("nPress any key back to program ..."); /* บรรทัดที่ 10 */ getch(); /* บรรทัดที่ 11 */ } /* บรรทัดที่ 12 */
  • 28. จากโปรแกรมตัวอย่าง สามารถอธิบายการทางานของโปรแกรมที่สาคัญ ๆ ได้ดังนี้ บรรทัดที่ 8 คาสั่ง printf(“%.4fn”,log(n)); ฟังก์ชันที่ใช้หาค่า log ฐาน n (natural logorithm) ของค่าคงที่หรือตัวแปร n โดยที่ n เป็นค่าคงที่หรือตัวแปรที่มีค่าเป็นลบ ไม่ได้ และแสดงผลที่ได้ออกจอภาพ บรรทัดที่ 9 คาสั่ง printf("%.4fn",log10(m)); ฟังก์ชันที่ใช้หาค่า log ฐาน 10 ของ ค่าคงที่หรือตัวแปร m โดยที่ m เป็นค่าคงที่หรือตัวแปรที่มีค่าเป็นลบไม่ได้และแสดงผลที่ ได้ออกจอภาพ บรรทัดที่ 10 และ 11 พิมพ์ข้อความให้กดคีย์ใด ๆ เพื่อกลับสู่โปรแกรม และหยุดรอรับค่าใด ๆ เช่น กด enter จะกลับเข้าสู่โปรแกรม
  • 29. 12) ฟังก์ชัน ceil(x) เป็นฟังก์ชันที่ใช้ในการปัดเศษทศนิยมขึ้นของตัวแปร x ถ้า x เป็นตัวเลขจานวนทศนิยม แต่ ถ้า x เป็นเลขจานวนเต็มจะไม่มีการปัดเศษทศนิยม รูปแบบ ceil(x); 13) ฟังก์ชัน floor(x) เป็นฟังก์ชันที่ใช้ในการตัดเศษทศนิยมทิ้งของตัวแปร x ถ้า x เป็นตัวเลขจานวนทศนิยม แต่ ถ้า x เป็นเลขจานวนเต็มจะไม่มีการตัดเศษทศนิยมทิ้ง รูปแบบ floor(x);
  • 30. โปรแกรมตัวอย่าง แสดงการใช้งานฟังก์ชัน ceil(x) และ floor(x) /* math4.c */ #include<stdio.h> /* บรรทัดที่ 1 */ #include<math.h> /* บรรทัดที่ 2 */ #include<conio.h> /* บรรทัดที่ 3 */ void main(void) /* บรรทัดที่ 4 */ { /* บรรทัดที่ 5 */ clrscr(); /* บรรทัดที่ 6 */ printf("%.4fn", ceil(9.8765)); /* บรรทัดที่ 7 */ printf("%.4fn", ceil(-3.7654)); /* บรรทัดที่ 8 */ printf("%.4fn", ceil(80)); /* บรรทัดที่ 9 */ printf("%.4fn", floor(7.9876)); /* บรรทัดที่ 10 */ printf("%.4fn", floor(-3.321)); /* บรรทัดที่ 11 */ printf("%.4fn", floor(180)); /* บรรทัดที่ 12 */ printf("nPress any key back to program ..."); /* บรรทัดที่ 13 */ getch(); /* บรรทัดที่ 14 */ } /* บรรทัดที่ 15 */
  • 32. จากโปรแกรมตัวอย่าง สามารถอธิบายการทางานของโปรแกรมที่สาคัญ ๆ ได้ดังนี้ บรรทัดที่ 7 คาสั่ง printf(“%.4fn”,ceil(9.8765)); ฟังก์ชันที่ใช้ในการปัดเศษทศนิยม ขึ้นของตัวเลข 9.8765 และแสดงผลออกที่จอภาพ บรรทัดที่ 8 คาสั่ง printf(“%.4fn”,ceil(-3.7654)); ฟังก์ชันที่ใช้ในการปัดเศษ ทศนิยมขึ้นของตัวเลข -3.7654 และแสดงผลออกที่จอภาพ บรรทัดที่ 9 คาสั่ง printf(“%.4fn”,ceil(80)); ฟังก์ชันที่ใช้ในการปัดเศษทศนิยมขึ้นของ ตัวเลข 80 และแสดงผลออกที่จอภาพ บรรทัดที่ 10 คาสั่ง printf(“%.4fn”,floor(7.9876)); ฟังก์ชันที่ใช้ในการตัดเศษ ทศนิยมทิ้งของตัวเลข 7.9876 และแสดงผลออกที่จอภาพ บรรทัดที่ 11 คาสั่ง printf(“%.4fn”,floor(-3.321)); ฟังก์ชันที่ใช้ในการตัดเศษ ทศนิยมทิ้งของตัวเลข -3.321 และแสดงผลออกที่จอภาพ บรรทัดที่ 12 คาสั่ง printf(“%.4fn”,floor(180)); ฟังก์ชันที่ใช้ในการตัดเศษทศนิยมทิ้ง ของตัวเลข 180 และแสดงผลออกที่จอภาพ บรรทัดที่ 13 และ 14 พิมพ์ข้อความให้กดคีย์ใด ๆ เพื่อกลับสู่โปรแกรม และหยุดรอรับค่าใด ๆ เช่น กด enter จะกลับเข้าสู่โปรแกรม
  • 33. 14. ฟังก์ชัน fabs(x) เป็นฟังก์ชันที่ใช้หาค่าสัมบูรณ์ (absolute value) ของค่าคงที่หรือตัวแปร x โดย ที่ x เป็นค่าคงที่หรือตัวแปรที่เก็บค่าตัวเลขจุดทศนิยมที่มีค่าบวกหรือลบก็ได้ รูปแบบ fabs(x);
  • 34. โปรแกรมตัวอย่าง แสดงการใช้งานฟังก์ชัน fabs(x) /* math5.c */ #include<stdio.h> /* บรรทัดที่ 1 */ #include<math.h> /* บรรทัดที่ 2 */ #include<conio.h> /* บรรทัดที่ 3 */ void main(void) /* บรรทัด ที่ 4 */ { /* บรรทัดที่ 5 */ double x = 123.4567, y = -891.2345; /* บรรทัดที่ 6 */ clrscr(); /* บรรทัดที่ 7 */ printf("Absolute value of x = %.5fn",fabs(x)); /* บรรทัดที่ 8 */ printf("Absolute value of y = %.5fn",fabs(y)); /* บรรทัดที่ 9 */ printf("nPress any key back to program ..."); /* บรรทัดที่ 10 */ getch(); /* บรรทัดที่ 11 */ } /* บรรทัดที่ 12 */
  • 35. ผลลัพธ์ที่ได้จากโปรแกรม จากโปรแกรมตัวอย่าง สามารถอธิบายการทางานของโปรแกรมที่สาคัญ ๆ ได้ดังนี้ บรรทัดที่ 8 และ 9 ใช้ฟังก์ชัน fabs( ) หาค่าสัมบูรณ์ (absolute value) ของค่าคงที่หรือ ตัวแปร x และ y และแสดงผลออกที่จอภาพ ตามลาดับ บรรทัดที่ 10 และ 11 พิมพ์ข้อความให้กดคีย์ใด ๆ เพื่อกลับสู่โปรแกรม และหยุดรอรับค่าใด ๆ เช่น กด enter จะกลับเข้าสู่โปรแกรม
  • 36. ฟังก์ชันเกี่ยวกับตัวอักษร (character functions) เป็นฟังก์ชันที่ใช้กับข้อมูลที่มีชนิดเป็น single char (ใช้เนื้อ ที่ 1 byte) เท่านั้น และก่อนที่จะใช้ฟังก์ชันประเภทนี้จะต้องใช้คาสั่ง #include<ctype.h> แทรกอยู่ตอนต้นของโปรแกรม จึงจะสามารถเรียกใช้ฟังก์ชัน ประเภทนี้ได้ ฟังก์ชันที่เกี่ยวกับตัวอักษรที่ควรทราบ มีดังนี้ isalnum(ch) isalpha(ch) isdigit(ch) islower(ch) isupper(ch) tolower(ch) toupper(ch) isspace(ch) isxdigit(ch)
  • 37. มีรายละเอียดของฟังก์ชันแต่ละฟังก์ชันดังต่อไปนี้ 1) ฟังก์ชัน isalnum(ch) เป็นฟังก์ชันที่ใช้ตรวจสอบว่าข้อมูลที่เก็บไว้ในตัวแปร ch เป็นตัวอักษรหรือ ตัวเลข (letter or digit) ถ้าข้อมูลที่เก็บไว้เป็นตัวอักษรหรือตัวเลขก็จะส่งค่ากลับที่ เป็นจานวนเต็มที่มีค่าไม่เท่ากับศูนย์มายังฟังก์ชัน และถ้าข้อมูลที่เก็บไว้ในตัว แปร ch ไม่ได้เก็บตัวอักษรหรือตัวเลขก็จะส่งค่ากลับที่มีค่าเป็นศูนย์มายังฟังก์ชัน รูปแบบ isalnum(ch); 2) ฟังก์ชัน isalpha(ch) เป็นฟังก์ชันที่ใช้ตรวจสอบว่าข้อมูลที่เก็บไว้ในตัวแปร ch เป็น ตัวอักษร (letter) หรือไม่ ถ้าใช่ฟังก์ชันนี้จะให้ค่าส่งกลับเป็นเลขจานวนเต็มที่ไม่เท่ากับ ศูนย์ ถ้าไม่ใช่ฟังก์ชันนี้จะให้ค่าส่งกลับมาเป็นเลขศูนย์ (0) รูปแบบ isalpha(ch); 3) ฟังก์ชัน isdigit(ch) เป็นฟังก์ชันที่ใช้ตรวจสอบว่าข้อมูลที่เก็บไว้ในตัวแปร ch เป็น ตัวเลข 0 ถึง 9 หรือไม่ ถ้าใช่ฟังก์ชันนี้จะให้ค่าส่งกลับเป็นเลขจานวนเต็มที่ไม่เท่ากับศูนย์ ถ้า ไม่ใช่ฟังก์ชันนี้จะไม่มีการส่งค่ากลับ รูปแบบ isdigit(ch);
  • 38. โปรแกรมตัวอย่าง แสดงการใช้งานฟังก์ชัน isalnum(ch), isalpha(ch) และ isdigit(ch) /* char1.c */ #include<stdio.h> /* บรรทัดที่ 1 */ #include<ctype.h> /* บรรทัดที่ 2 */ #include<conio.h> /* บรรทัดที่ 3 */ void main(void) /* บรรทัดที่ 4 */ { /* บรรทัดที่ 5 */ char ch1 = '6', ch2 = 'K', ch3 = '*'; /* บรรทัดที่ 6 */ clrscr( ); /* บรรทัดที่ 7 */ printf("%dn",isalnum(ch1)); /* บรรทัดที่ 8 */ printf("%dn",isalnum(ch2)); /* บรรทัดที่ 9 */ printf("%dn",isalnum(ch3)); /* บรรทัดที่ 10 */ printf("%dn",isalpha(ch1)); /* บรรทัดที่ 11 */ printf("%dn",isalpha(ch2)); /* บรรทัดที่ 12 */ printf("%dn",isalpha(ch3)); /* บรรทัดที่ 13 */ printf("%dn",isdigit(ch1)); /* บรรทัดที่ 14 */ printf("%dn",isdigit(ch2)); /* บรรทัดที่ 15 */ printf("%dn",isdigit(ch3)); /* บรรทัดที่ 16 */ printf("nPress any key back to program ..."); /* บรรทัดที่ 17 */ getch(); /* บรรทัดที่ 18 */ } /* บรรทัดที่ 19 */
  • 40. จากโปรแกรมตัวอย่าง สามารถอธิบายการทางานของโปรแกรมที่สาคัญ ๆ ได้ดังนี้ บรรทัดที่ 8 ถึง 10 ใช้ฟังก์ชัน isalnum( ) ใช้ตรวจสอบว่าข้อมูลที่เก็บไว้ในตัวแปร ch1, ch2 และ ch3 ตามลาดับ เป็นตัวอักษรหรือตัวเลข ซึ่งถ้าข้อมูลที่เก็บไว้เป็นตัวอักษรหรือ ตัวเลขจะส่งค่ากลับที่เป็นจานวนเต็มที่มีค่าไม่เท่ากับศูนย์มายังฟังก์ชัน แต่ถ้าข้อมูลในตัวแปร ไม่ได้เก็บตัวอักษรหรือตัวเลขจะส่งค่าศูนย์กลับมายังฟังก์ชัน แล้วแสดงผลที่ได้ออกมาจอภาพ บรรทัดที่ 11 ถึง 13 ใช้ฟังก์ชัน isalpha( ) ใช้ตรวจสอบว่าข้อมูลในตัวแปร ch1, ch2 และ ch3 ตามลาดับ เป็นตัวอักษรหรือไม่ ถ้าใช่ฟังก์ชันจะให้ค่ากลับเป็นเลขจานวน เต็มที่ไม่เท่ากับศูนย์ถ้าไม่ใช่ฟังก์ชันจะให้ค่ากลับเป็นศูนย์แล้วแสดงผลที่ได้ออกจอภาพ บรรทัดที่ 14 ถึง 16 ใช้ฟังก์ชัน isdigit( ) ใช้ตรวจสอบว่าข้อมูลที่เก็บในตัวแปร ch1, ch2 และ ch3 ตามลาดับ เป็นตัวเลข 0 ถึง 9 หรือไม่ ถ้าใช่ฟังก์ชันจะให้ค่ากลับเป็นเลข จานวนเต็มที่ไม่เท่ากับศูนย์ ถ้าไม่ใช่ฟังก์ชันจะไม่มีการส่งค่ากลับ บรรทัดที่ 17 และ 18 พิมพ์ข้อความให้กดคีย์ใด ๆ เพื่อกลับสู่โปรแกรม และหยุดรอรับค่าใด ๆ เช่น กด enter จะกลับเข้าสู่โปรแกรม
  • 41. 4) ฟังก์ชัน islower(ch) เป็นฟังก์ชันที่ใช้ตรวจสอบว่าข้อมูลที่เก็บไว้ในตัวแปร ch เป็นตัวอักษรตัวเล็กหรือไม่ ถ้าใช่ ให้ส่งค่ากลับเป็นเลขจานวนเต็มที่ไม่เท่ากับศูนย์ ถ้าไม่ใช่ฟังก์ชันนี้จะให้ค่าส่งกลับเป็นเลข ศูนย์ (0) รูปแบบ islower(ch); 5) ฟังก์ชัน isupper(ch) เป็นฟังก์ชันที่ใช้ตรวจสอบว่าข้อมูลที่เก็บไว้ในตัวแปร ch เป็นตัวอักษรตัวใหญ่หรือไม่ ถ้าใช่ ให้ส่งค่ากลับเป็นเลขจานวนเต็มที่ไม่เท่ากับศูนย์ ถ้าไม่ใช่ฟังก์ชันนี้จะให้ค่าส่งกลับเป็นเลข ศูนย์ (0) รูปแบบ isupper(ch); 6) ฟังก์ชัน tolower(ch) เป็นฟังก์ชันที่ใช้เปลี่ยนตัวอักษรตัวใหญ่ที่เก็บไว้ในตัวแปร ch ให้เป็นอักษรตัวเล็ก รูปแบบ tolower(ch); 7) ฟังก์ชัน toupper(ch) เป็นฟังก์ชันที่ใช้เปลี่ยนตัวอักษรตัวเล็กที่เก็บไว้ในตัวแปร ch ให้เป็นอักษรตัวใหญ่ รูปแบบ toupper(ch);
  • 42. โปรแกรมตัวอย่าง แสดงการใช้งานฟังก์ชัน islower(ch), isupper(ch), tolower(ch) และ toupper(ch) /* char2.c */ #include<stdio.h> /* บรรทัดที่ 1 */ #include<ctype.h> /* บรรทัดที่ 2 */ #include<conio.h> /* บรรทัดที่ 3 */ void main(void) /* บรรทัดที่ 4 */ { /* บรรทัดที่ 5 */ char ch1 = 'm', ch2 = 'N'; clrscr( ); /* บรรทัดที่ 6 */ printf("%dt%dn",islower(ch1),islower(ch2)); /* บรรทัดที่ 7 */ printf("%dt%dn",isupper(ch1),isupper(ch2)); /* บรรทัดที่ 8 */ printf("%ct%cn",tolower(ch1),toupper(ch2)); /* บรรทัดที่ 9 */ printf("nPress any key back to program ..."); /* บรรทัดที่ 10 */ getch(); /* บรรทัดที่ 11 */ } /* บรรทัดที่ 12 */
  • 44. จากโปรแกรมตัวอย่าง สามารถอธิบายการทางานของโปรแกรมที่สาคัญ ๆ ได้ดังนี้ บรรทัดที่ 7 ใช้ฟังก์ชัน islower( ) ตรวจสอบตัวอักษรที่เก็บไว้ในตัว แปร ch1 และ ch2 เป็นตัวอักษรตัวพิมพ์เล็กหรือไม่ ถ้าใช่ฟังก์ชันจะให้ค่ากลับเป็นเลข จานวนเต็มที่ไม่เท่ากับศูนย์ ถ้าไม่ใช่ฟังก์ชันจะให้ค่ากลับเป็นเลขศูนย์ แล้วแสดงผลออกที่ จอภาพ บรรทัดที่ 8 ใช้ฟังก์ชัน isupper( ) ตรวจสอบตัวอักษรที่เก็บไว้ในตัว แปร ch1 และ ch2 เป็นตัวอักษรตัวพิมพ์ใหญ่หรือไม่ ถ้าใช่ฟังก์ชันจะให้ค่ากลับเป็นเลข จานวนเต็มที่ไม่เท่ากับศูนย์ ถ้าไม่ใช่ฟังก์ชันจะให้ค่ากลับเป็นเลขศูนย์ แล้วแสดงผลออกที่ จอภาพ บรรทัดที่ 9 ใช้ฟังก์ชัน tolower( ) ใช้เปลี่ยนตัวอักษรตัวพิมพ์ใหญ่ที่เก็บไว้ในตัว แปร ch1 ให้เป็นตัวอักษรตัวพิมพ์เล็ก และใช้ฟังก์ชัน toupper( ) ใช้เปลี่ยนตัวอักษร ตัวพิมพ์เล็กที่เก็บไว้ในตัวแปร ch2 ให้เป็นตัวอักษรตัวพิมพ์ใหญ่ แล้วแสดงผลออกจอภาพ บรรทัดที่ 10 และ 11 พิมพ์ข้อความให้กดคีย์ใด ๆ เพื่อกลับสู่โปรแกรม และหยุดรอรับค่าใด ๆ เช่น กด enter จะกลับเข้าสู่โปรแกรม
  • 45. 8) ฟังก์ชัน isspace(ch) เป็นฟังก์ชันที่ใช้ตรวจสอบว่าค่าข้อมูลที่อยู่ในตัวแปร ch มีค่า เป็น whitespace หรือไม่ (whitespace) ได้แก่ space, tab, vertical tab, formfeed, carriage return และ new line ถ้า เป็น whitespace เพียงแค่ตัวใดตัวหนึ่ง ฟังก์ชันนี้จะให้ค่าส่งกลับที่เป็นเลขจานวนเต็มที่ ไม่เท่ากับศูนย์ถ้าไม่ป็น whitespace ฟังก์ชันนี้จะให้ค่าส่งกลับเป็นเลขศูนย์ (0) รูปแบบ isspace(ch); 9) ฟังก์ชัน isxdigit(ch) เป็นฟังก์ชันที่ใช้ตรวจสอบว่าข้อมูลตัวเลขที่อยู่ในตัวแปร ch เป็นตัวเลขฐานสิบหก (0-9, A-F, หรือ a-f) หรือไม่ ถ้าใช่ฟังก์ชันนี้จะมีการส่งค่ากลับตัวเลขที่ไม่เท่ากับศูนย์มายัง ฟังก์ชัน ถ้าไม่ใช่ฟังก์ชันนี้จะส่งค่าเป็นตัวเลขศูนย์กลับมายังฟังก์ชัน รูปแบบ isxdigit(ch);
  • 46. โปรแกรมตัวอย่าง แสดงการใช้งานฟังก์ชัน isspace(ch) และ isxdigit(ch) /* char3.c */ #include<stdio.h> /* บรรทัดที่ 1 */ #include<ctype.h> /* บรรทัดที่ 2 */ #include<conio.h> /* บรรทัดที่ 3 */ void main(void) /* บรรทัดที่ 4 */ { /* บรรทัดที่ 5 */ char ch1 = '0', ch2 = 'n', ch3 = 't', ch4 = 'J' ; /* บรรทัดที่ 6 */ clrscr( ); /* บรรทัดที่ 7 */ printf("%dt%dn",isspace(ch1),isspace(ch2)); /* บรรทัดที่ 8 */ printf("%dt%dn",isspace(ch3),isxdigit(ch4)); /* บรรทัดที่ 9 */ printf("nPress any key back to program ..."); /* บรรทัดที่ 10 */ getch(); /* บรรทัดที่ 11 */ } /* บรรทัดที่ 12 */
  • 48. จากโปรแกรมตัวอย่าง สามารถอธิบายการทางานของโปรแกรมที่สาคัญ ๆ ได้ดังนี้ บรรทัดที่ 8 ใช้ฟังก์ชัน isspace( ) ตรวจสอบว่าข้อมูลที่อยู่ในตัวแปร ch1 และ ch2 มีค่า เป็น whitespace หรือไม่ ถ้าเป็นฟังก์ชันจะให้ค่ากลับที่เป็นเลขจานวนเต็มที่ไม่เท่ากับ ศูนย์ ถ้าไม่ใช่ฟังก์ชันจะให้ค่ากลับเป็นเลขศูนย์ แล้วแสดงผลที่ได้ออกจอภาพ บรรทัดที่ 9 ใช้ฟังก์ชัน isspace( ) ตรวจสอบว่าข้อมูลที่อยู่ในตัวแปร ch3 มีค่า เป็น whitespace หรือไม่ ถ้าเป็นฟังก์ชันจะให้ค่ากลับที่เป็นเลขจานวนเต็มที่ไม่เท่ากับ ศูนย์ ถ้าไม่ใช่ฟังก์ชันจะให้ค่ากลับเป็นเลขศูนย์ แล้วแสดงผลที่ได้ออกจอภาพ และใช้ ฟังก์ชัน isxdigit( ) ตรวจสอบว่าข้อมูลตัวเลขที่อยู่ในตัวแปร ch4 ว่าเป็นตัวเลขฐานสิบ หกหรือไม่ ถ้าใช่ฟังก์ชันจะส่งค่ากลับเป็นตัวเลขที่ไม่เท่ากับศูนย์ ถ้าไม่ใช่ฟังก์ชันจะส่งตัวเลข ศูนย์กลับมายังฟังก์ชัน บรรทัดที่ 10 และ 11 พิมพ์ข้อความให้กดคีย์ใด ๆ เพื่อกลับสู่โปรแกรม และหยุดรอรับค่าใด ๆ เช่น กด enter จะกลับเข้าสู่โปรแกรม
  • 49. ฟังก์ชันเกี่ยวกับสตริง (string functions) เป็นฟังก์ชันที่ใช้กับข้อมูลชนิดสตริง (string) โดยก่อนที่จะใช้ฟังก์ชันประเภทนี้ จะต้องใช้คาสั่ง #include<string.h> แทรกอยู่ตอนต้นของโปรแกรมเสียก่อน จึงจะ เรียกใช้ฟังก์ชันประเภทนี้ได้ ฟังก์ชันที่เกี่ยวข้องกับสตริงที่ควรทราบ มีดังนี้ strlen(s) strcmp(s1,s2) strcpy(s) strcat(s1,s2) สาหรับรายละเอียดของฟังก์ชันแต่ละฟังก์ชันได้เคยกล่าวมาแล้วในบท ที่ 5 เกี่ยวกับ array และ string จึงไม่ขอกล่าวซ้าอีก