57
โโโโโโโ โโโโโโโ โโโโโโโโ โโโโโโโ

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

Embed Size (px)

Citation preview

โปรแกรมย่�อย่และฟั งก�ชั�นมาตรฐาน

โปรแกรมย่�อย่

ประเภทของโปรแกรมย่�อย่ประเภทของโปรแกรมย่�อย่ (Procedure) เป�น

ส่�วนหน� งของโปรแกรม ม!หน"าท! เฉพาะต�วโดย่แย่กการท&างานออกจาก โปรแกรมอย่�างอ(ส่ระ

การเข!ย่นโปรแกรมท! ม!การท&างานแบบโปรแกรมย่�อย่จะชั�วย่ลดความซั�บซั"อนของโปรแกรม ซั� งจะท&าให"ส่ามารถแก"ไขและเพ( มเต(ม การท&างานของโปรแกรมได"ง�าย่ข�/น ในบางคร�/งโปรแกรมหล�กจะม!การส่�งข"อม0ลไปท&างานในโปรแกรมย่�อย่ด"วย่ โดย่ข"อม0ลน�/นจะเก1บอย่0�ในร0ป ต�วแปรพ(เศษเร!ย่กว�า พาราม(เตอร� (Parameter)

Visual Basic 2008 สามารแบ่�งโปรแกรมย่�อย่ได้� 2 ประเภท คื�อ

Sub มาจากคื�าเต็�มว่�า ซั�บ่ร�ท�น (Subroutine) เป!นโปรแกรม ย่�อย่เม�"อท�างานแล้�ว่ จะไม�ม�การส�งผล้การท�างานกล้�บ่ไปย่�ง

โปรแกรม ท�"เร�ย่กซั�บ่ร�ท�นน�%ใช้�งานFunction เป!นโปรแกรมย่�อย่เม�"อท�างานเสร�จแล้�ว่ จะต็�องม�

การส�งผล้การท�างานกล้�บ่ไปย่�งโปรแกรมท�"เร�ย่กฟั)งก*ช้�นน�%ใช้�งาน ในท�"น�%ผ��เร�ย่กใช้� Sub หร�อ Function จะเป!นต็�ว่โปรแกรมหล้�ก

หร�อโปรแกรมย่�อย่อ�"นๆก�ได้�

โปรแกรมย่�อย่ไม�ว่�าจะเป!น Sub หร�อ Function น�%น จะม�หร�อไม�ม�การส�งข้�อม�ล้ผ�านต็�ว่พาราม/เต็อร*ก�ได้�ข้0%นอย่��ก�บ่ว่�า

โปรแกรมย่�อย่น�%นระบ่1 ให�ม�การก�าหนด้ต็�าแหน�งให�คื�าพาราม/เต็อร*หร�อไม�

โปรแกรมย่�อย่ชัน(ด Sub

Sub เป!นโปรแกรมท�"เข้�ย่นข้0%นมาเพ�"อการ ท�างานอย่�างใด้อย่�างหน0"ง โด้ย่ท�"ไม�ม�การร�บ่

พาราม/เต็อร*หร�ออาจจะม�การร�บ่พาราม/เต็อร*มา ท�างานก�ได้� แต็�ไม�ม�การส�งผล้การท�างานกล้�บ่ไปย่�ง

โปรแกรมท�"เร�ย่กซั�บ่ร�ท�นน�%ใช้�งาน ม�ร�ปแบ่บ่การ เข้�ย่น Sub ด้�งน�%

ต็�ว่อย่�างการใช้�งาน Subroutine : ต็�ว่อย่�างน�%จะสร�างแอพพล้/เคืช้�นแบ่บ่ระบ่บ่ล้งทะเบ่�ย่นซั0"งจะม�การใช้�

งาน Subroutine ท�"เราเข้�ย่นข้0%นมา

1. ออกแบ่บ่หน�าต็าแอพพล้/เคืช้�น แล้ะต็�%งช้�"อคือนโทรล้ ต็�างๆ ด้�งน�%

2. ด้�บ่เบ่/ล้คืล้/กท�"ฟัอร*มเพ�"อเข้�ย่นโคื�ด้ใน Even Load โด้ย่จะเร/"มแนะน�าให� ผ��ใช้�งานทราบ่ว่/ธี�การท�างานโด้ย่จะเร�ย่ก Sub ท�"ช้�"อว่�า InformUser

3. ให�หน�าต็�างโคื�ด้ข้อง Sub InformUser โด้ย่เข้�ย่นต็�อท�าย่ไปได้�เล้ย่

4. ด้�บ่เบ่/ล้คืล้/กท�"ป13ม ล้งทะเบ่�ย่น แล้�ว่เข้�ย่นโคื�ด้เพ�"อต็รว่จสอบ่คืว่ามคืรบ่ ถ้�ว่นถ้�กต็�องข้องข้�อม�ล้ท�"ป5อนเข้�าไป ถ้�าเร�ย่บ่ร�อย่ถ้�อว่�าล้งทะเบ่�ย่นได้� แต็�

ถ้�าไม�เร�ย่นร�อย่แจ�งให�ผ��ใช้�ทราบ่

5 . ส�าหร�บ่ Sub CheckPassword น�%นม�หล้�กการต็รว่จ สอบ่คืว่ามถ้�กต็�องอย่�� 3 ข้�อ ด้�งราย่ล้ะเอ�ย่ด้ท�"แสด้

ด้งในโคื�ด้ต็�อไปน�%

6 . ด้�บ่เบ่/ล้คืล้/กป13ม เคืล้�ย่ร* แล้�ว่เข้�ย่นโคื�ด้เพ�"อเคืล้�ย่ร*คื�า ข้�อม�ล้ใน TexBox ต็�างๆ ด้�งน�%

7 . กด้ป13ม F5 เพ�"อทด้สอบ่การ ท�างานข้องแอพพล้/เคืช้�น ได้�ผล้

ด้�งน�%

การใชั"ฟั งก�ชั�นมาตรฐานภาษาซั!

  ส�าหร�บ่เน�%อหาในบ่ทน�%จะกล้�าว่ถ้0งฟั)งก*ช้�นในภาษา C     โด้ย่จะประกอบ่ไปด้�ว่ย่เน�%อหาหล้�ก ๆ คื�อ เร�"องท�"

    หน0"ง ฟั)งก*ช้�นมาต็รฐาน เป!นฟั)งก*ช้�นท�"บ่ร/ษ�ทท�"ผล้/ต็  ภาษา C   ได้�เข้�ย่นข้0%นแล้ะเก�บ่ไว่�ใน header file   ภาษา C   คื�อเก�บ่ไว่�ในแฟั5มท�"ม�นามสก1ล้ *.h   ต็�าง ๆ

  ส�ว่นเร�"องท�"สอง เป!นฟั)งก*ช้�นท�"เข้�ย่นข้0%นหร�อเร�ย่กอ�ก  อย่�างว่�าโปรแกรมย่�อย่ ท�"ผ��เข้�ย่นโปรแกรมเข้�ย่นข้0%น

มาใช้�งานอย่�างใด้อย่�างหน0"งต็ามคืว่ามต็�องการข้อง   งานน�%น ๆ โด้ย่ราย่ล้ะเอ�ย่ด้ข้องแต็�ล้ะฟั)งก*ช้�นม�ด้�งต็�อ

ไปน�%

  ฟั งก�ชั�นมาตรฐาน (standard  functions)

  เป!นฟั)งก*ช้�นท�"บ่ร/ษ�ทท�"ผล้/ต็ภาษา C ได้�เข้�ย่นข้0%นแล้ะเก�บ่ไว่�  ใน header file   ภาษา C   คื�อเก�บ่ไว่�ในแฟั5มท�"ม�นามสก1ล้ *.h ต็�าง

      ๆ เม�"อต็�องการใช้�ฟั)งก*ช้�นใด้ จะต็�องร� �ว่�าฟั)งก*ช้�นน�%นอย่��ใน header file   ใด้จากน�%นจ0งคื�อย่ใช้�คื�าส�"ง #include<header file.h> เข้�ามาใน

    ส�ว่นต็อนต็�นข้องโปรแกรม จ0งจะสามารถ้ใช้�ฟั)งก*ช้�นท�"ต็�องการได้�  ซั0"งฟั)งก*ช้�นมาต็รฐานเป!นฟั)งก*ช้�นท�"บ่ร/ษ�ทผ��ผล้/ต็ C compiler

เข้�ย่นข้0%นเพ�"อให�ผ��ใช้�น�าไปช้�ว่ย่ในการเข้�ย่นโปรแกรมท�าให�การเข้�ย่น  โปรแกรมสะด้ว่กแล้ะง�าย่ข้0%น บ่างคืร�%งเราอาจจะเร�ย่กฟั)งก*ช้�น

” ”  มาต็รฐานว่�า ไล้บ่ราร�ฟั)งก*ช้�น (library functions)

ส�าหร�บ่ฟั)งก*ช้�นมาต็รฐานท�"จะกล้�าว่ถ้0งในห�ว่ข้�อน�%จะกล้�าว่       เฉพาะฟั)งก*ช้�นมาต็รฐานท�"จ�าเป!น แล้ะเร�ย่กใช้�งานบ่�อย่ ๆ เท�าน�%น

 ซั0"งม�ด้�งต็�อไปน�%

  ฟั งก�ชั�นทางคณิ(ตศาส่ตร� (mathematic  functions)  เป!นฟั)งก*ช้�นท�"ใช้�ส�าหร�บ่การคื�านว่ณทางคืณ/ต็ศาสต็ร* แล้ะ

     ก�อนท�"จะใช้�ฟั)งก*ช้�นประเภทน�% จะต็�องใช้�คื�าส�"ง #include <math.h>   แทรกอย่��ต็อนต็�นข้องโปรแกรม แล้ะต็�ว่แปรท�"จะใช้�

  ฟั)งก*ช้�นประเภทน�%จะต็�องม�ช้น/ด้ (type)   เป!น double เน�"องจาก  ผล้ล้�พธี*ท�"ได้�จากฟั)งก*ช้�นประเภทน�%จะได้�คื�าส�งกล้�บ่ข้องข้�อม�ล้เป!น

double เช้�นก�น

1)   ฟั งก�ชั�น acos(x)   เป!นฟั)งก*ช้�นท�"ใช้�คื�านว่ณหาคื�า arc cosine   ข้อง x   โด้ย่ท�" x เป!นคื�าม1มในหน�ว่ย่

  เรเด้�ย่น (radian)   ร0ปแบบ acos(x);

2)    ฟั งก�ชั�น asin(x)    เป!นฟั)งก*ช้�นท�"ใช้�คื�านว่ณหาคื�า arc sine   ข้อง x   โด้ย่ท�" x เป!นคื�าม1มในหน�ว่ย่

เรเด้�ย่นร0ปแบบ  asin(x);

3)    ฟั งก�ชั�น atan(x)    เป!นฟั)งก*ช้�นท�"ใช้�คื�านว่ณหาคื�า arc tan   ข้อง x   โด้ย่ท�" x เป!นคื�าม1มในหน�ว่ย่

เรเด้�ย่น ร0ปแบบ atan(x);

4)    ฟั งก�ชั�น sin(x)    เป!นฟั)งก*ช้�นท�"ใช้�คื�านว่ณหาคื�า sine   ข้อง x   โด้ย่ท�" x เป!นคื�าม1มในหน�ว่ย่เรเด้�ย่น

ร0ปแบบ  sin(x);5)    ฟั งก�ชั�น cos(x)  

  เป!นฟั)งก*ช้�นท�"ใช้�คื�านว่ณหาคื�า cosine   ข้อง x   โด้ย่ท�" x เป!นคื�าม1มในหน�ว่ย่เรเด้�ย่นร0ปแบบ  cos(x);

6)    ฟั งก�ชั�น tan(x)   เป!นฟั)งก*ช้�นท�"ใช้�คื�านว่ณหาคื�า tan   ข้อง x   โด้ย่ท�" x เป!นคื�าม1มในหน�ว่ย่เรเด้�ย่น

ร0ปแบบ 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("%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 */

ผล้ล้�พธี*ท�"ได้�จากโปรแกรม

  สามารถ้อธี/บ่าย่การท�างานข้องโปรแกรมท�"ส�าคื�ญ ๆ ได้�ด้�งน�%  บรรท�ดท! 9   คื�าส�"ง printf("%f\n",asin(r));   ฟั)งก*ช้�นคื�านว่ณหาคื�า arc

sin   ข้องต็�ว่แปร r   โด้ย่ r   เป!นม1มในหน�ว่ย่เรเด้�ย่น แล้ะแสด้งผล้ล้�พธี*ท�"ได้�ออกจอภาพ

 บรรท�ดท! 10   คื�าส�"ง printf("%f\n",acos(r));   ฟั)งก*ช้�นคื�านว่ณหาคื�า arc cosine   ข้องต็�ว่แปร r   โด้ย่ r   เป!นม1มในหน�ว่ย่เรเด้�ย่น แล้ะแสด้งผล้ล้�พธี*ท�"ได้�ออกจอภาพ

  บรรท�ดท! 11   คื�าส�"ง printf("%f\n",atan(r));   ฟั)งก*ช้�นคื�านว่ณหาคื�า arc tan   ข้องต็�ว่แปร r   โด้ย่ r   เป!นม1มในหน�ว่ย่เรเด้�ย่น แล้ะแสด้งผล้ล้�พธี*ท�"ได้�ออกจอภาพ

  บรรท�ดท! 12   คื�าส�"ง printf("%f\n",sin(r));    ฟั)งก*ช้�นคื�านว่ณหาคื�า sine   ข้องต็�ว่แปร r   โด้ย่ r   เป!นม1มในหน�ว่ย่เรเด้�ย่น แล้ะแสด้งผล้ล้�พธี*ท�"ได้�

ออกจอภาพ  บรรท�ดท! 13   คื�าส�"ง printf("%f\n",cos(r));    ฟั)งก*ช้�นคื�านว่ณหาคื�า

cosine   ข้องต็�ว่แปร r   โด้ย่ r   เป!นม1มในหน�ว่ย่เรเด้�ย่น แล้ะแสด้งผล้ล้�พธี*ท�"ได้�ออกจอภาพ

  บรรท�ดท! 14   คื�าส�"ง printf("%f\n",tan(r));   ฟั)งก*ช้�นคื�านว่ณหาคื�า tan   ข้องต็�ว่แปร r   โด้ย่ r   เป!นม1มในหน�ว่ย่เรเด้�ย่น แล้ะแสด้งผล้ล้�พธี*ท�"ได้�

ออกจอภาพ  บรรท�ดท! 15  และ 16   พ/มพ*ข้�อคืว่ามให�กด้คื�ย่*ใด้ ๆ เพ�"อกล้�บ่ส��โปรแกรม

      แล้ะหย่1ด้รอร�บ่คื�าใด้ๆ เช้�น กด้ enter จะกล้�บ่เข้�าส��โปรแกรม

7)    ฟั งก�ชั�น sqrt(x)    เป!นฟั)งก*ช้�นท�"ใช้�หาคื�ารากท�" 2 (square root) ข้องคื�าคืงท�"หร�อ

  ต็�ว่แปร x   โด้ย่ท�" x จะต็�องเป!นคื�าคืงท�"ช้น/ด้ต็�ว่เล้ข้หร�อต็�ว่แปรท�"ม�คื�าไม�ต็/ด้ล้บ่ร0ปแบบ sqrt(x);

8)    ฟั งก�ชั�น exp(x)    เป!นฟั)งก*ช้�นท�"ใช้�หาคื�า ex   โด้ย่ท�" x เป!นคื�าคืงท�"หร�อต็�ว่แปรท�"จะใช้�

  เป!นคื�าย่กก�าล้�งข้อง e   โด้ย่ท�" e   ม�คื�าประมาณ 2.718282ร0ปแบบ exp(x);

9)    ฟั งก�ชั�น pow(x,y)   เป!นฟั)งก*ช้�นท�"ใช้�หาคื�า xy โด้ย่ท�

x เป!นคื�าคืงท�"หร�อต็�ว่แปรท�"ใช้�เป!นต็�ว่ฐานซั0"งจะต็�องม�คื�ามากกว่�าศ�นย่*y เป!นคื�าคืงท�"หร�อต็�ว่แปรท�"ใช้�เป!นคื�าย่กก�าล้�ง

 ร0ปแบบ 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("%.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 */

ผลล�พธ์�ท! ได"จากโปรแกรม

  จากโปรแกรมต็�ว่อย่�าง สามารถ้อธี/บ่าย่การท�างานข้องโปรแกรมท�"   ส�าคื�ญ ๆ ได้�ด้�งน�%  บรรท�ดท! 8  ค&าส่� ง  printf("%.4f\n",pow(x,y)); ฟั)งก*ช้�นคื�านว่ณหา

คื�า xy โด้ย่ท�" x เป!นคื�าคืงท�"หร�อต็�ว่แปรท�"ใช้�ต็�ว่ฐานซั0"งจะต็�องม�คื�า  มากกว่�าศ�นย่* แล้ะ 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 พ/มพ*ข้�อคืว่ามให�กด้คื�ย่*ใด้ ๆ เพ�"อกล้�บ่ส��        โปรแกรม แล้ะหย่1ด้รอร�บ่คื�าใด้ ๆ เช้�น กด้ 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("%.4f\n",log(n)); /*   บ่รรท�ด้ท�" 8 */ printf("%.4f\n",log10(m)); /*   บ่รรท�ด้ท�" 9 */ printf("\nPress any key back to program ..."); /*   บ่รรท�ด้ท�" 10 */ getch(); /*   บ่รรท�ด้ท�" 11 */} /*   บ่รรท�ด้ท�" 12 */

ผล้ล้�พธี*ท�"ได้�จากโปรแกรม

  จากโปรแกรมต�วอย่�าง สามารถ้อธี/บ่าย่การท�างานข้องโปรแกรมท�"   ส�าคื�ญ ๆ ได้�ด้�งน�%

  บรรท�ดท! 8   ค&าส่� ง printf(“%.4f\n”,log(n)); ฟั)งก*ช้�นท�"ใช้�หาคื�า log ฐาน n (natural logorithm)   ข้องคื�าคืงท�"หร�อต็�ว่แปร n   โด้ย่ท�" n

 เป!นคื�าคืงท�"หร�อต็�ว่แปรท�"ม�คื�าเป!นล้บ่ไม�ได้� แล้ะแสด้งผล้ท�"ได้�ออก  จอภาพ

  บรรท�ดท! 9  ค&าส่� ง  printf("%.4f\n",log10(m)); ฟั)งก*ช้�นท�"ใช้�หาคื�าlog ฐาน 10   ข้องคื�าคืงท�"หร�อต็�ว่แปร m   โด้ย่ท�" m เป!นคื�าคืงท�"หร�อ

ต็�ว่แปรท�"ม�คื�าเป!นล้บ่ไม�ได้� แล้ะแสด้งผล้ท�"ได้�ออกจอภาพ  บรรท�ดท! 10  และ 11  พ/มพ*ข้�อคืว่ามให�กด้คื�ย่*ใด้ ๆ เพ�"อกล้�บ่ส��

        โปรแกรม แล้ะหย่1ด้รอร�บ่คื�าใด้ ๆ เช้�น กด้ enter จะกล้�บ่เข้�าส��โปรแกรม

12)    ฟั งก�ชั�น ceil(x)    เป!นฟั)งก*ช้�นท�"ใช้�ในการป)ด้เศษทศน/ย่มข้0%นข้องต็�ว่แปร x   ถ้�า x เป!น

    ต็�ว่เล้ข้จ�านว่นทศน/ย่ม แต็�ถ้�า x เป!นเล้ข้จ�านว่นเต็�มจะไม�ม�การป)ด้เศษทศน/ย่มร0ปแบบ ceil(x);

13)    ฟั งก�ชั�น floor(x)    เป!นฟั)งก*ช้�นท�"ใช้�ในการต็�ด้เศษทศน/ย่มท/%งข้องต็�ว่แปร x   ถ้�า x เป!น

    ต็�ว่เล้ข้จ�านว่นทศน/ย่ม แต็�ถ้�า x เป!นเล้ข้จ�านว่นเต็�มจะไม�ม�การต็�ด้เศษทศน/ย่มท/%ง               ร0ปแบบ 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("%.4f\n", ceil(9.8765)); /*   บ่รรท�ด้ท�" 7 */ printf("%.4f\n", ceil(-3.7654)); /*   บ่รรท�ด้ท�" 8 */ printf("%.4f\n", ceil(80)); /*   บ่รรท�ด้ท�" 9 */ printf("%.4f\n", floor(7.9876)); /*   บ่รรท�ด้ท�" 10 */ printf("%.4f\n", floor(-3.321)); /*   บ่รรท�ด้ท�" 11 */ printf("%.4f\n", floor(180)); /*   บ่รรท�ด้ท�" 12 */ printf("\nPress any key back to program ..."); /*   บ่รรท�ด้ท�" 13 */ getch(); /*   บ่รรท�ด้ท�" 14 */} /*   บ่รรท�ด้ท�" 15 */

ผลล�พธ์�ท! ได"จากโปรแกรม

 จากโปรแกรมต�วอย่�าง   สามารถ้อธี/บ่าย่การท�างานข้องโปรแกรมท�"ส�าคื�ญ  ๆ ได้�ด้�งน�%

  บรรท�ดท! 7     ค&าส่� ง printf(“%.4f\n”,ceil(9.8765)); ฟั)งก*ช้�นท�"ใช้�ในการ  ป)ด้เศษทศน/ย่มข้0%นข้องต็�ว่เล้ข้ 9.8765 แล้ะแสด้งผล้ออกท�"จอภาพ

  บรรท�ดท! 8  ค&าส่� ง  printf(“%.4f\n”,ceil(-3.7654)); ฟั)งก*ช้�นท�"ใช้�ในการ  ป)ด้เศษทศน/ย่มข้0%นข้องต็�ว่เล้ข้ -3.7654 แล้ะแสด้งผล้ออกท�"จอภาพ

  บรรท�ดท! 9  ค&าส่� ง  printf(“%.4f\n”,ceil(80)); ฟั)งก*ช้�นท�"ใช้�ในการป)ด้เศษ  ทศน/ย่มข้0%นข้องต็�ว่เล้ข้ 80 แล้ะแสด้งผล้ออกท�"จอภาพ

  บรรท�ดท! 10 ค&าส่� ง  printf(“%.4f\n”,floor(7.9876)); ฟั)งก*ช้�นท�"ใช้�ในการ  ต็�ด้เศษทศน/ย่มท/%งข้องต็�ว่เล้ข้ 7.9876 แล้ะแสด้งผล้ออกท�"จอภาพ

  บรรท�ดท! 11 ค&าส่� ง  printf(“%.4f\n”,floor(-3.321)); ฟั)งก*ช้�นท�"ใช้�ในการ  ต็�ด้เศษทศน/ย่มท/%งข้องต็�ว่เล้ข้ -3.321 แล้ะแสด้งผล้ออกท�"จอภาพ

  บรรท�ดท! 12 ค&าส่� ง  printf(“%.4f\n”,floor(180)); ฟั)งก*ช้�นท�"ใช้�ในการต็�ด้  เศษทศน/ย่มท/%งข้องต็�ว่เล้ข้ 180 แล้ะแสด้งผล้ออกท�"จอภาพ

  บรรท�ดท! 13     และ 14     พ/มพ*ข้�อคืว่ามให�กด้คื�ย่*ใด้ ๆ เพ�"อกล้�บ่ส��โปรแกรม       แล้ะหย่1ด้รอร�บ่คื�าใด้ ๆ เช้�น กด้ enter จะกล้�บ่เข้�าส��โปรแกรม

14.    ฟั งก�ชั�น fabs(x)   เป!นฟั)งก*ช้�นท�"ใช้�หาคื�าส�มบ่�รณ* (absolute value) ข้องคื�าคืงท�"หร�อ

  ต็�ว่แปร x   โด้ย่ท�" x เป!นคื�าคืงท�"หร�อต็�ว่แปรท�"เก�บ่คื�าต็�ว่เล้ข้จ1ด้ทศน/ย่มท�"ม�คื�าบ่ว่กหร�อล้บ่ก�ได้�ร0ปแบบ 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 = %.5f\n",fabs(x)); /*   บ่รรท�ด้ท�" 8 */ printf("Absolute value of y = %.5f\n",fabs(y)); /*   บ่รรท�ด้ท�" 9 */ printf("\nPress any key back to program ..."); /*   บ่รรท�ด้ท�" 10 */ getch(); /*   บ่รรท�ด้ท�" 11 */} /*   บ่รรท�ด้ท�" 12 */

ผลล�พธ์�ท! ได"จากโปรแกรม

  จากโปรแกรมต�วอย่�าง สามารถ้อธี/บ่าย่การท�างานข้องโปรแกรมท�"   ส�าคื�ญ ๆ ได้�ด้�งน�%  บรรท�ดท! 8     และ 9    ใช้�ฟั)งก*ช้�น fabs( ) หาคื�าส�มบ่�รณ* (absolute

value)   ข้องคื�าคืงท�"หร�อต็�ว่แปร x   แล้ะ y แล้ะแสด้งผล้ออกท�"  จอภาพ ต็ามล้�าด้�บ่

  บรรท�ดท! 10   และ 11   พ/มพ*ข้�อคืว่ามให�กด้คื�ย่*ใด้ ๆ เพ�"อกล้�บ่ส��โปรแกรม       แล้ะหย่1ด้รอร�บ่คื�าใด้ ๆ เช้�น กด้ enter จะกล้�บ่เข้�าส��โปรแกรม

ฟั งก�ชั�นเก! ย่วก�บต�วอ�กษร (character  functions)  เป!นฟั)งก*ช้�นท�"ใช้�ก�บ่ข้�อม�ล้ท�"ม�ช้น/ด้เป!น single char (ใช้�

  เน�%อท�" 1 byte)   เท�าน�%น แล้ะก�อนท�"จะใช้�ฟั)งก*ช้�นประเภทน�%จะต็�องใช้� คื�าส�"ง #include<ctype.h>   แทรกอย่��ต็อนต็�นข้องโปรแกรม จ0งจะ

สามารถ้เร�ย่กใช้�ฟั)งก*ช้�นประเภทน�%ได้�

  ฟั)งก*ช้�นท�"เก�"ย่ว่ก�บ่ต็�ว่อ�กษรท�"คืว่รทราบ่ ม�ด้�งน�%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 ไม�ได้�เก�บ่

ต็�ว่อ�กษรหร�อต็�ว่เล้ข้ก�จะส�งคื�ากล้�บ่ท�"ม�คื�าเป!นศ�นย่*มาย่�งฟั)งก*ช้�นร0ปแบบ isalnum(ch);

2)    ฟั งก�ชั�น isalpha(ch)    เป!นฟั)งก*ช้�นท�"ใช้�ต็รว่จสอบ่ว่�าข้�อม�ล้ท�"เก�บ่ไว่�ในต็�ว่แปร ch เป!น

  ต็�ว่อ�กษร (letter)   หร�อไม� ถ้�าใช้�ฟั)งก*ช้�นน�%จะให�คื�าส�งกล้�บ่เป!น   เล้ข้จ�านว่นเต็�มท�"ไม�เท�าก�บ่ศ�นย่* ถ้�าไม�ใช้�ฟั)งก*ช้�นน�%จะให�คื�าส�งกล้�บ่

  มาเป!นเล้ข้ศ�นย่* (0)ร0ปแบบ isalpha(ch);

3)    ฟั งก�ชั�น isdigit(ch)   เป!นฟั)งก*ช้�นท�"ใช้�ต็รว่จสอบ่ว่�าข้�อม�ล้ท�"เก�บ่ไว่�ในต็�ว่แปร ch เป!น

  ต็�ว่เล้ข้ 0   ถ้0ง 9   หร�อไม� ถ้�าใช้�ฟั)งก*ช้�นน�%จะให�คื�าส�งกล้�บ่เป!น  เล้ข้จ�านว่นเต็�มท�"ไม�เท�าก�บ่ศ�นย่* ถ้�าไม�ใช้�ฟั)งก*ช้�นน�%จะไม�ม�การส�งคื�า

กล้�บ่ ร0ปแบบ 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("%d\n",isalnum(ch1)); /*   บ่รรท�ด้ท�" 8 */ printf("%d\n",isalnum(ch2)); /*   บ่รรท�ด้ท�" 9 */ printf("%d\n",isalnum(ch3)); /*   บ่รรท�ด้ท�" 10 */ printf("%d\n",isalpha(ch1)); /*   บ่รรท�ด้ท�" 11 */ printf("%d\n",isalpha(ch2)); /*   บ่รรท�ด้ท�" 12 */ printf("%d\n",isalpha(ch3)); /*   บ่รรท�ด้ท�" 13 */ printf("%d\n",isdigit(ch1)); /*   บ่รรท�ด้ท�" 14 */ printf("%d\n",isdigit(ch2)); /*   บ่รรท�ด้ท�" 15 */ printf("%d\n",isdigit(ch3)); /*   บ่รรท�ด้ท�" 16 */ printf("\nPress any key back to program ..."); /*   บ่รรท�ด้ท�" 17 */ getch(); /*   บ่รรท�ด้ท�" 18 */} /*   บ่รรท�ด้ท�" 19 */

ผล้ล้�พธี*ท�"ได้�จากโปรแกรม

จากโปรแกรมต�วอย่�าง ส่ามารถอธ์(บาย่การท&างานของโปรแกรมท! ส่&าค�ญ  ๆ ได"ด�งน!/

  บรรท�ดท! 8    ถ�ง 10   ใช้�ฟั)งก*ช้�น isalnum( ) ใช้�ต็รว่จสอบ่ว่�าข้�อม�ล้ท�"เก�บ่ไว่�  ในต็�ว่แปร ch1, ch2   แล้ะ ch3   ต็ามล้�าด้�บ่ เป!นต็�ว่อ�กษรหร�อต็�ว่เล้ข้ ซั0"ง

ถ้�าข้�อม�ล้ท�"เก�บ่ไว่�เป!นต็�ว่อ�กษรหร�อต็�ว่เล้ข้จะส�งคื�ากล้�บ่ท�"เป!นจ�านว่นเต็�มท�"  ม�คื�าไม�เท�าก�บ่ศ�นย่*มาย่�งฟั)งก*ช้�น แต็�ถ้�าข้�อม�ล้ในต็�ว่แปรไม�ได้�เก�บ่ต็�ว่อ�กษร

  หร�อต็�ว่เล้ข้จะส�งคื�าศ�นย่*กล้�บ่มาย่�งฟั)งก*ช้�น แล้�ว่แสด้งผล้ท�"ได้�ออกมาจอภาพ

  บรรท�ดท! 11     ถ�ง 13   ใช้�ฟั)งก*ช้�น isalpha( ) ใช้�ต็รว่จสอบ่ว่�าข้�อม�ล้ใน  ต็�ว่แปร ch1, ch2   แล้ะ ch3   ต็ามล้�าด้�บ่ เป!นต็�ว่อ�กษรหร�อไม� ถ้�าใช้�

ฟั)งก*ช้�นจะให�คื�ากล้�บ่เป!นเล้ข้จ�านว่นเต็�มท�"ไม�เท�าก�บ่ศ�นย่* ถ้�าไม�ใช้�ฟั)งก*ช้�นจะ ให�คื�ากล้�บ่เป!นศ�นย่* แล้�ว่แสด้งผล้ท�"ได้�ออกจอภาพ

  บรรท�ดท! 14    ถ�ง 16     ใช้�ฟั)งก*ช้�น isdigit( ) ใช้�ต็รว่จสอบ่ว่�าข้�อม�ล้ท�"เก�บ่ใน  ต็�ว่แปร ch1, ch2   แล้ะ ch3     ต็ามล้�าด้�บ่ เป!นต็�ว่เล้ข้ 0   ถ้0ง 9   หร�อไม� ถ้�า

  ใช้�ฟั)งก*ช้�นจะให�คื�ากล้�บ่เป!นเล้ข้จ�านว่นเต็�มท�"ไม�เท�าก�บ่ศ�นย่* ถ้�าไม�ใช้�ฟั)งก*ช้�นจะไม�ม�การส�งคื�ากล้�บ่

  บรรท�ดท! 17     และ 18   พ/มพ*ข้�อคืว่ามให�กด้คื�ย่*ใด้ ๆ เพ�"อกล้�บ่ส��โปรแกรม       แล้ะหย่1ด้รอร�บ่คื�าใด้ ๆ เช้�น กด้ enter จะกล้�บ่เข้�าส��โปรแกรม

4)   ฟั)งก*ช้�น islower(ch)   เป!นฟั)งก*ช้�นท�"ใช้�ต็รว่จสอบ่ว่�าข้�อม�ล้ท�"เก�บ่ไว่�ในต็�ว่แปร ch เป!นต็�ว่

  อ�กษรต็�ว่เล้�กหร�อไม� ถ้�าใช้�ให�ส�งคื�ากล้�บ่เป!นเล้ข้จ�านว่นเต็�มท�"ไม�    เท�าก�บ่ศ�นย่* ถ้�าไม�ใช้�ฟั)งก*ช้�นน�%จะให�คื�าส�งกล้�บ่เป!นเล้ข้ศ�นย่* (0)

ร�ปแบ่บ่ islower(ch);5)   ฟั)งก*ช้�น isupper(ch)

  เป!นฟั)งก*ช้�นท�"ใช้�ต็รว่จสอบ่ว่�าข้�อม�ล้ท�"เก�บ่ไว่�ในต็�ว่แปร ch เป!นต็�ว่  อ�กษรต็�ว่ใหญ�หร�อไม� ถ้�าใช้�ให�ส�งคื�ากล้�บ่เป!นเล้ข้จ�านว่นเต็�มท�"ไม�

    เท�าก�บ่ศ�นย่* ถ้�าไม�ใช้�ฟั)งก*ช้�นน�%จะให�คื�าส�งกล้�บ่เป!นเล้ข้ศ�นย่* (0)ร0ปแบบ isupper(ch);

6)   ฟั)งก*ช้�น tolower(ch)   เป!นฟั)งก*ช้�นท�"ใช้�เปล้�"ย่นต็�ว่อ�กษรต็�ว่ใหญ�ท�"เก�บ่ไว่�ในต็�ว่แปร ch ให�

เป!นอ�กษรต็�ว่เล้�กร�ปแบ่บ่ tolower(ch);

7)   ฟั)งก*ช้�น toupper(ch)   เป!นฟั)งก*ช้�นท�"ใช้�เปล้�"ย่นต็�ว่อ�กษรต็�ว่เล้�กท�"เก�บ่ไว่�ในต็�ว่แปร ch ให�

เป!นอ�กษรต็�ว่ใหญ�ร0ปแบบ 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("%d\t%d\n",islower(ch1),islower(ch2)); /*   บ่รรท�ด้ท�" 7 */ printf("%d\t%d\n",isupper(ch1),isupper(ch2)); /*   บ่รรท�ด้ท�" 8 */ printf("%c\t%c\n",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    พ/มพ*ข้�อคืว่ามให�กด้คื�ย่*ใด้ ๆ เพ�"อกล้�บ่ส��โปรแกรม       แล้ะหย่1ด้รอร�บ่คื�าใด้ ๆ เช้�น กด้ enter จะกล้�บ่เข้�าส��โปรแกรม

8)    ฟั งก�ชั�น isspace(ch) เป!นฟั)งก*ช้�นท�"ใช้�ต็รว่จสอบ่ว่�าคื�าข้�อม�ล้ท�"อย่��ในต็�ว่แปร ch  ม�คื�าเป!น

whitespace   หร�อไม� (whitespace)   ได้�แก� space, tab, vertical tab, formfeed, carriage return   แล้ะ new line   ถ้�าเป!นwhitespace   เพ�ย่งแคื�ต็�ว่ใด้ต็�ว่หน0"ง ฟั)งก*ช้�นน�%จะให�คื�าส�งกล้�บ่ท�"เป!น

  เล้ข้จ�านว่นเต็�มท�"ไม�เท�าก�บ่ศ�นย่*ถ้�าไม�ป!น whitespace ฟั)งก*ช้�นน�%จะ  ให�คื�าส�งกล้�บ่เป!นเล้ข้ศ�นย่* (0)

ร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("%d\t%d\n",isspace(ch1),isspace(ch2)); /*   บ่รรท�ด้ท�" 8 */ printf("%d\t%d\n",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   พ/มพ*ข้�อคืว่ามให�กด้คื�ย่*ใด้ ๆ เพ�"อกล้�บ่ส��โปรแกรม

      แล้ะหย่1ด้รอร�บ่คื�าใด้ ๆ เช้�น กด้ enter จะกล้�บ่เข้�าส��โปรแกรม

  ฟั งก�ชั�นเก! ย่วก�บส่ตร(ง (string  functions)  เป!นฟั)งก*ช้�นท�"ใช้�ก�บ่ข้�อม�ล้ช้น/ด้สต็ร/ง (string) โด้ย่ก�อนท�"จะ

ใช้�ฟั)งก*ช้�นประเภทน�%จะต็�องใช้�คื�าส�"ง #include<string.h> แทรกอย่�� ต็อนต็�นข้องโปรแกรมเส�ย่ก�อน จ0งจะเร�ย่กใช้�ฟั)งก*ช้�นประเภทน�%ได้�

 ฟั งก�ชั�นท! เก! ย่วข"องก�บส่ตร(งท! ควรทราบ    ม�ด้�งน�%strlen(s) strcmp(s1,s2)strcpy(s) strcat(s1,s2)

ส�าหร�บ่ราย่ล้ะเอ�ย่ด้ข้องฟั)งก*ช้�นแต็�ล้ะฟั)งก*ช้�นได้�เคืย่กล้�าว่  มาแล้�ว่ในบ่ทท�" 5   เก�"ย่ว่ก�บ่ array   แล้ะ string จ0งไม�ข้อกล้�าว่ซั�%าอ�ก

นางสาว่กาญจนา ถ้0กจร�ญ เล้ข้ท�" 21

ส่มาชั(ก

นางสาว่ร1จ/รา ต็�%งม�"น เล้ข้ท�" 24

นางสาว่ข้ว่�ญจ/รา โพธี/<ล้�อม เล้ข้ท�" 28

นางสาว่จ/ด้าภา บ่�าร1งว่งศ* เล้ข้ท�" 29

นางสาว่ณ�ฐฐา ศร�อ/นทร* เล้ข้ท�" 30

นางสาว่ส1ทธี/ด้า มากม� เล้ข้ท�" 33

นางสาว่เกสรา ว่�จนะ เล้ข้ท�" 38

คร0ท! ปร�กษาราย่ว(ชัา

คืร�ทรงศ�กด้/< โพธี/<เอ�"ย่ม โรงเร�ย่นเฉล้/มพระเก�ย่รต็/ สมเด้�จพระศร�นคืร/นทร*

กาญจนบ่1ร�