18
โโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโ

โปรแกรมย่อยและฟังก์ชันมาตรฐาน. (1)

Embed Size (px)

Citation preview

Page 1: โปรแกรมย่อยและฟังก์ชันมาตรฐาน. (1)

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

Page 2: โปรแกรมย่อยและฟังก์ชันมาตรฐาน. (1)

โปรแกรมย่�อย่ (Procedure) เป�นส่�วนหน��งของโปรแกรม ม�หน าที่��เฉพาะในแต�ละต�ว โดย่แย่กการที่&างานออกจากโปรแกรมหล�กอย่�างอ(ส่ระ การแย่กโปรแกรมออกเป�นส่�วนย่�อย่ๆ น�*ม�ข อด�คื,อ• ลดคืวามซ้ำ&*าซ้ำ อนในการเข�ย่นโปรแกรมในส่�วนที่��ที่&างานอย่�าง

เด�ย่วก�น ถ้ าน&าโปรแกรมส่�วนที่��ต องใชั ซ้ำ&*าๆ มาที่&าเป�นโปรแกรมย่�อย่จะที่&าให โปรแกรมม�ขนาดเล/กลง

• ชั�วย่ให ที่&าคืวามเข าใจโปรแกรมได ง�าย่ เพราะม�การแบ่�งเป�นส่�วนย่�อย่ๆ

• ที่&าให ส่ามารถ้แก ไขและเพ(�มเต(มการที่&างานของโปรแกรมได ง�าย่ข�*น

• ชั�วย่ให น&าโปรแกรมที่��ส่ร างไปใชั งานในโปรแกรมอ,�นได ถ้ าในโปรแกรมน�*นต องการฟั งก�ชั�นในการที่&างานที่��เหม,อนก�น

1.การเขี�ยนโปรแกรมแบบโปรแกรมย�อย

Page 3: โปรแกรมย่อยและฟังก์ชันมาตรฐาน. (1)

โปรแกรมย�อยที่��ใช้�งานอย��ใน VB.NET ม�อย�� 2 ประเภที่คื�อ• โปรแกรมย่�อย่ Sub มาจากคื&าว�า

Subroutine – ซ้ำ�บ่ร2ที่�นเป�นโปรแกรมย่�อย่ที่��เม,�อที่&างานอย่�างหน��งเส่ร/จแล วจะไม�ม�การส่�งผลการที่&างานกล�บ่ไปย่�งโปรแกรมที่��เร�ย่กใชั งานซ้ำ�บ่ร2ที่�นน�*

- Private หร,อ Public เป�นการประกาศขอบ่เขตว�าต องการให โปรแกรมย่�อย่น�*ม�ขอบ่เขตอย่2�ในเฉพาะในโมด2ลน�*หร,อที่5กโมด2ลในโปรเจ/กต� - Exit Sub จะที่&าให ออกจากโปรแกรมย่�อย่ที่�นที่� - End Sub เป�นคื&าส่��งที่��บ่อกว�าจบ่การที่&างานของโปรแกรมย่�อย่น�*

Page 4: โปรแกรมย่อยและฟังก์ชันมาตรฐาน. (1)

• โปรแกรมย่�อย่ Function เป�นโปรแกรมย่�อย่ที่��เม,�อที่&างานเส่ร/จแล วจะคื,นผลล�พธ์�ที่��ได จากการที่&างานกล�บ่ไปย่�งโปรแกรมที่��เร�ย่กใชั งานฟั งก�ชั�นน�*

- Private หร,อ Public เป�นการประกาศขอบ่เขตว�าต องการให โปรแกรมย่�อย่น�*ม�ขอบ่เขตอย่2�ในเฉพาะในโมด2ลน�*หร,อที่5กโมด2ลในโปรเจ/กต�- Exit Function เป�นคื&าส่��งให ออกจากโปรแกรมย่�อย่ที่�นที่�- End Function เป�นคื&าส่��งที่��บ่อกว�าจบ่การที่&างานของโปรแกรมย่�อย่น�*- As Type ใชั ก&าหนดชัน(ดข อม2ลที่��ฟั งก�ชั�นส่�งกล�บ่มาให โปรแกรมหล�ก

Page 5: โปรแกรมย่อยและฟังก์ชันมาตรฐาน. (1)

2.การใช้�ฟั�งก�ช้�นมาตรฐานภาษาซี�

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

เป�นฟั งก�ชั�นที่��บ่ร(ษั�ที่ที่��ผล(ตภาษัา C ได เข�ย่นข�*นและเก/บ่ไว ใน header file ภาษัา C คื,อเก/บ่ไว ในแฟั9มที่��ม�นามส่ก5ล *.h ต�าง ๆ เม,�อต องการใชั ฟั งก�ชั�นใด จะต องร2 ว�าฟั งก�ชั�นน�*นอย่2�ใน header file ใดจากน�*นจ�งคื�อย่ใชั คื&าส่��ง #include เข ามาในส่�วนตอนต นของโปรแกรม จ�งจะส่ามารถ้ใชั ฟั งก�ชั�นที่��ต องการได ซ้ำ��งฟั งก�ชั�นมาตรฐานเป�นฟั งก�ชั�นที่��บ่ร(ษั�ที่ผ2 ผล(ต C compiler เข�ย่นข�*นเพ,�อให ผ2 ใชั น&าไปชั�วย่ในการเข�ย่นโปรแกรมที่&าให การเข�ย่นโปรแกรมส่ะดวกและง�าย่ข�*น บ่างคืร�*งเราอาจจะเร�ย่กฟั งก�ชั�นมาตรฐานว�า ไลบ่ราร�”ฟั งก�ชั�น ” (library functions)

Page 6: โปรแกรมย่อยและฟังก์ชันมาตรฐาน. (1)

1.1 ฟั งก�ชั�นที่างคืณิ(ตศาส่ตร�(mathematic functions)

เป�นฟั งก�ชั�นที่��ใชั ส่&าหร�บ่การคื&านวณิที่าง คืณิ(ตศาส่ตร� และก�อนที่��จะใชั ฟั งก�ชั�นประเภที่น�*

จะต องใชั คื&าส่��ง #include แที่รกอย่2�ตอนต น ของโปรแกรม และต�วแปรที่��จะใชั ฟั งก�ชั�น

ประเภที่น�*จะต องม�ชัน(ด (type) เป�นdouble เน,�องจากผลล�พธ์�ที่��ได จากฟั งก�ชั�น

ประเภที่น�*จะได คื�าส่�งกล�บ่ของข อม2ลเป�นdouble เชั�นก�น 1) ฟั งก�ชั�น acos(x)เป�นฟั งก�ชั�นที่��ใชั

คื&านวณิหาคื�า arc cosine ของ x โดย่ที่�� x เป�นคื�าม5มในหน�วย่เรเด�ย่น (radian) ม�ร2ป

แบ่บ่ acos(x); 2) ฟั งก�ชั�น asin(x) เป�นฟั งก�ชั�นที่��ใชั

คื&านวณิหาคื�า arc sine ของ x โดย่ที่�� x เป�น คื�าม5มในหน�วย่เรเด�ย่น ม�ร2ปแบ่บ่ asin(x);

Page 7: โปรแกรมย่อยและฟังก์ชันมาตรฐาน. (1)

3) ฟั งก�ชั�น atan(x) เป�นฟั งก�ชั�นที่��ใชั คื&านวณิหาคื�าarc tan ของ x โดย่ที่�� x เป�นคื�าม5มในหน�วย่

เรเด�ย่น ม�ร2ปแบ่บ่atan(x);4) ฟั งก�ชั�น sin(x) เป�นฟั งก�ชั�นที่��ใชั คื&านวณิหาคื�าsine ของ x โดย่ที่�� x เป�นคื�าม5มในหน�วย่เรเด�ย่นร2ปแบ่บ่sin(x);5) ฟั งก�ชั�น cos(x) เป�นฟั งก�ชั�นที่��ใชั คื&านวณิหาคื�าcosine ของ x โดย่ที่�� x เป�นคื�าม5มในหน�วย่เรเด�ย่นม�ร2ปแบ่บ่cos(x); 6) ฟั งก�ชั�น tan(x) เป�นฟั งก�ชั�นที่��ใชั คื&านวณิหาคื�าtan ของ x โดย่ที่�� x เป�นคื�าม5มในหน�วย่เรเด�ย่นร2ปแบ่บ่tan(x);7) ฟั งก�ชั�น sqrt(x) เป�นฟั งก�ชั�นที่��ใชั หาคื�ารากที่�� 2 (square root) ของคื�าคืงที่��หร,อต�วแปร x โดย่ที่��x จะต องเป�นคื�าคืงที่��ชัน(ดต�วเลขหร,อต�วแปรที่��ม�คื�าไม�ต(ดลบ่ร2ปแบ่บ่sqrt(x);

Page 8: โปรแกรมย่อยและฟังก์ชันมาตรฐาน. (1)

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

ก&าล�งของ e โดย่ที่�� e ม�คื�าประมาณิ2.718282ร2ปแบ่บ่exp(x); 9) ฟั งก�ชั�น pow(x,y) เป�นฟั งก�ชั�นที่��ใชั หาคื�า xy โดย่ที่��

x เป�นคื�าคืงที่��หร,อต�วแปรที่��ใชั เป�นต�วฐานซ้ำ��งจะต องม�คื�ามากกว�าศ2นย่�

y เป�นคื�าคืงที่��หร,อต�วแปรที่��ใชั เป�นคื�าย่กก&าล�ง ร2ปแบ่บ่ pow(x, y);10) ฟั งก�ชั�น log(x) เป�นฟั งก�ชั�นที่��ใชั หาคื�า log

ฐาน n (natural logarithm) ของคื�าคืงที่�� หร,อต�วแปร x โดย่ที่�� x เป�นคื�าคืงที่��หร,อต�วแปรที่��ม�

คื�าเป�นลบ่ไม�ได ร2ปแบ่บ่log(x);

Page 9: โปรแกรมย่อยและฟังก์ชันมาตรฐาน. (1)

11) ฟั งก�ชั�น log10(x) เป�นฟั งก�ชั�นที่��ใชั หาคื�า log ฐาน 10 ของคื�าคืงที่��หร,อต�วแปร x โดย่ที่�� x เป�นคื�า

คืงที่��หร,อต�วแปรที่��ม�คื�าเป�นลบ่ไม�ได ร2ปแบ่บ่log10(x);12) ฟั งก�ชั�น ceil(x) เป�นฟั งก�ชั�นที่��ใชั ในการป ดเศษั

ที่ศน(ย่มข�*นของต�วแปร x ถ้ า x เป�นต�วเลขจ&านวน ที่ศน(ย่ม แต�ถ้ า x เป�นเลขจ&านวนเต/มจะไม�ม�การ

ป ดเศษัที่ศน(ย่มร2ปแบ่บ่ceil(x);13) ฟั งก�ชั�น floor(x) เป�นฟั งก�ชั�นที่��ใชั ในการต�ด

เศษัที่ศน(ย่มที่(*งของต�วแปร x ถ้ า x เป�นต�วเลขจ&านวน ที่ศน(ย่ม แต�ถ้ า x เป�นเลขจ&านวนเต/มจะไม�ม�การต�ด

เศษัที่ศน(ย่มที่(*งร2ปแบ่บ่floor(x);14. ฟั งก�ชั�น fabs(x) เป�นฟั งก�ชั�นที่��ใชั หาคื�าส่�มบ่2รณิ�(absolute value) ของคื�าคืงที่��หร,อต�วแปร x

โดย่ที่�� x เป�นคื�าคืงที่��หร,อต�วแปรที่��เก/บ่คื�าต�วเลข จ5ดที่ศน(ย่มที่��ม�คื�าบ่วกหร,อลบ่ก/ได ร2ปแบ่บ่fabs(x);

Page 10: โปรแกรมย่อยและฟังก์ชันมาตรฐาน. (1)

1.2 ฟั งก�ชั�นเก��ย่วก�บ่ต�วอ�กษัร (character functions)

เป�นฟั งก�ชั�นที่��ใชั ก�บ่ข อม2ลที่��ม�ชัน(ดเป�น single char (ใชั เน,*อที่�� 1 byte) เที่�าน�*น และก�อนที่��จะใชั ฟั งก�ชั�นประเภที่น�*จะต องใชั คื&าส่��ง #include แที่รกอย่2�ตอนต นของโปรแกรม จ�งจะส่ามารถ้

เร�ย่กใชั ฟั งก�ชั�นประเภที่น�*ได ฟั งก�ชั�นที่��เก��ย่วก�บ่ต�วอ�กษัรที่��คืวรที่ราบ่ ม�ด�งน�*

1) ฟั งก�ชั�น isalnum(ch) เป�นฟั งก�ชั�นที่��ใชั ตรวจส่อบ่ว�า ข อม2ลที่��เก/บ่ไว ในต�วแปร ch เป�นต�วอ�กษัรหร,อต�วเลข (letter or

digit) ถ้ าข อม2ลที่��เก/บ่ไว เป�นต�วอ�กษัรหร,อต�วเลขก/จะส่�งคื�ากล�บ่ที่�� เป�นจ&านวนเต/มที่��ม�คื�าไม�เที่�าก�บ่ศ2นย่�มาย่�งฟั งก�ชั�น และถ้ าข อม2ลที่��เก/บ่

ไว ในต�วแปร ch ไม�ได เก/บ่ต�วอ�กษัรหร,อต�วเลขก/จะส่�งคื�ากล�บ่ที่��ม�คื�าเป�นศ2นย่�มาย่�งฟั งก�ชั�น

ร2ปแบ่บ่isalnum(ch);

Page 11: โปรแกรมย่อยและฟังก์ชันมาตรฐาน. (1)

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

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

ไม�ใชั�ฟั งก�ชั�นน�*จะให คื�าส่�งกล�บ่มาเป�นเลขศ2นย่�(0)ร2ปแบ่บ่isalpha(ch); 3) ฟั งก�ชั�น isdigit(ch) เป�นฟั งก�ชั�นที่��ใชั ตรวจ

ส่อบ่ว�าข อม2ลที่��เก/บ่ไว ในต�วแปร ch เป�นต�วเลข 0 ถ้�ง 9 หร,อไม� ถ้ าใชั�ฟั งก�ชั�นน�*จะให คื�าส่�งกล�บ่เป�น

เลขจ&านวนเต/มที่��ไม�เที่�าก�บ่ศ2นย่� ถ้ าไม�ใชั�ฟั งก�ชั�นน�*จะไม�ม�การส่�งคื�ากล�บ่ ร2ปแบ่บ่isdigit(ch); 4) ฟั งก�ชั�น islower(ch) เป�นฟั งก�ชั�นที่��ใชั

ตรวจส่อบ่ว�าข อม2ลที่��เก/บ่ไว ในต�วแปร ch เป�นต�ว อ�กษัรต�วเล/กหร,อไม� ถ้ าใชั�ให ส่�งคื�ากล�บ่เป�น

เลขจ&านวนเต/มที่��ไม�เที่�าก�บ่ศ2นย่� ถ้ าไม�ใชั�ฟั งก�ชั�นน�* จะให คื�าส่�งกล�บ่เป�นเลขศ2นย่� (0)

ร2ปแบ่บ่islower(ch);

Page 12: โปรแกรมย่อยและฟังก์ชันมาตรฐาน. (1)

5) ฟั งก�ชั�น isupper(ch) เป�นฟั งก�ชั�นที่��ใชั ตรวจส่อบ่ว�าข อม2ลที่��เก/บ่ไว ใน

ต�วแปร ch เป�นต�วอ�กษัรต�วใหญ่�หร,อไม� ถ้ าใชั�ให ส่�งคื�ากล�บ่เป�นเลขจ&านวนเต/มที่��ไม�เที่�าก�บ่

ศ2นย่� ถ้ าไม�ใชั�ฟั งก�ชั�นน�*จะให คื�าส่�งกล�บ่เป�น เลขศ2นย่� (0)

ร2ปแบ่บ่isupper(ch);6) ฟั งก�ชั�น tolower(ch) เป�นฟั งก�ชั�นที่��

ใชั เปล��ย่นต�วอ�กษัรต�วใหญ่�ที่��เก/บ่ไว ในต�วแปรch ให เป�นอ�กษัรต�วเล/ก ร2ปแบ่บ่tolower(ch); 7) ฟั งก�ชั�น toupper(ch) เป�นฟั งก�ชั�น

ที่��ใชั เปล��ย่นต�วอ�กษัรต�วเล/กที่��เก/บ่ไว ในต�วแปรch ให เป�นอ�กษัรต�วใหญ่� ร2ปแบ่บ่toupper(ch);

Page 13: โปรแกรมย่อยและฟังก์ชันมาตรฐาน. (1)

1.3 ฟั งก�ชั�นเก��ย่วก�บ่ส่ตร(ง (string functions) เป�นฟั งก�ชั�นที่��ใชั ก�บ่ข อม2ลชัน(ดส่ตร(ง (string) โดย่ก�อนที่��จะ

ใชั ฟั งก�ชั�นประเภที่น�*จะต องใชั คื&าส่��ง #include แที่รกอย่2�ตอนต น ของโปรแกรมเส่�ย่ก�อน จ�งจะเร�ย่กใชั ฟั งก�ชั�นประเภที่น�*ได

1. ฟั งก�ชั�น strlen( ) เป�นฟั งก�ที่��ใชั น�บ่คืวามย่าวของคื�าคืงที่�� ส่ตร(ง หร,อต�วแปรส่ตร(งร2ปแบ่บ่การใชั strlen(string

variable); หร,อstrlen(“string constant”);2. ฟั งก�ชั�น strcmp( ) เป�นฟั งก�ชั�นที่��ใชั เปร�ย่บ่เที่�ย่บ่ข อม2ลชัน(ด

ส่ตร(ง 2 คื�า ว�าม�คื�าเที่�าก�น หร,อมากกว�า หร,อน อย่กว�าอย่�างใดอย่�าง หน��ง ซ้ำ��งการเปร�ย่บ่เที่�ย่บ่ส่ตร(งจะใชั คื�ารห�ส่ ASCII เปร�ย่บ่เที่�ย่บ่ที่�

ละต�วอ�กขระร2ปแบ่บ่การใชั strcmp(str1var, str2var);หร,อstrcmp(str1constant, str2constant);

Page 14: โปรแกรมย่อยและฟังก์ชันมาตรฐาน. (1)

3. ฟั งก�ชั�น strcpy( ) เป�นฟั งก�ชั�นที่��ใชั คื�ดลอกข อม2ลจาก string คื�าหน��งไปย่�ง string อ�กคื�าหน��ง ร2ปแบ่บ่ที่��ใชั strcpy(str2, str1);4. ฟั งก�ชั�น strcat( ) เป�นฟั งก�ชั�นที่��ใชั เชั,�อมคื�าคืงที่��ชัน(ดส่ตร(ง 2 คื�า เข าด วย่ก�น โดย่ผลล�พธ์�จะเก/บ่เอาไว ในต�วแปรส่ตร(งต�วแรกเส่มอร2ปแบ่บ่การใชั strcat(str1,str2);

Page 15: โปรแกรมย่อยและฟังก์ชันมาตรฐาน. (1)

จะกล�าวเฉพาะฟั งก�ชั�นที่��ใชั บ่�อย่ ๆ เที่�าน�*น ซ้ำ��งม�ฟั งก�ชั�นด�งน�*1) ฟั งก�ชั�น clrscr( ) เป�นฟั งก�ชั�นที่��ใชั ในการลบ่ข อม2ล

ออกจากจอภาพแบ่บ่ text modeร2ปแบ่บ่clrscr( );

2) ฟั งก�ชั�น gotoxy(x,y)เป�นฟั งก�ชั�นที่��ใชั คื&าส่��ง ให ต�วชั�*ต&าแหน�ง (cursor) เคืล,�อนที่��ไปย่�งต&าแหน�ง

ที่��ระบ่5ไว บ่นจอภาพร2ปแบ่บ่gotoxy(x,y );โดย่ที่�� x คื,อ ต&าแหน�ง column บ่นจอม�คื�าต�*งแต� 1 ถ้�ง79 ส่�วน column ที่�� 80 ส่งวนไว y คื,อ ต&าแหน�ง row บ่นจอภาพม�คื�าต�*งแต� 1

ถ้�ง 24 ส่�วน row ที่�� 25 ส่งวนไว

1.4 ฟั งก�ชั�นที่��วไปที่��ใชั งานบ่�อย่ ๆ

Page 16: โปรแกรมย่อยและฟังก์ชันมาตรฐาน. (1)

3) ฟั งก�ชั�น clreol( ) เป�นฟั งก�ชั�นที่��ใชั ลบ่ ข อคืวามในบ่รรที่�ดที่��ต�ว cursor อย่2� โดย่ลบ่

ข อคืวามถ้�ดจากต&าแหน�งของ cursor ไปจนกระที่��งจบ่บ่รรที่�ด

ร2ปแบ่บ่clreol( );4) ฟั งก�ชั�น atol(s) เป�นฟั งก�ชั�นที่��ใชั เปล��ย่นคื�าstring ให เป�นต�วเลขจ&านวนเต/มชัน(ด long integer ที่��ส่ามารถ้น&าไปใชั คื&านวณิได

ร2ปแบ่บ่atol(s);

Page 17: โปรแกรมย่อยและฟังก์ชันมาตรฐาน. (1)

แหล�งที่��มาhttps://nemo2475.wordpress.com/

สื�บคื�นเม��อ 1 กรกฎาคืม

พ.ศ. 2558

Page 18: โปรแกรมย่อยและฟังก์ชันมาตรฐาน. (1)

จ�ดที่&าโดย่ นายบ(ญวิ+เศษ แซี�ฮ้�อ เลขีที่�� 3

นางสืาวิฌั�ช้ร+นที่ร� สื(ขีสืม เลขีที่�� 13 นางสืาวิไอร+นที่ร� น+ธิ+ภ�ที่รพรป�ญญา เลขีที่��14

นางสืาวิปณิ+ดา ธินก+จ เลขีที่�� 15 นางสืาวิมนต�นภา อ+นที่ร�แสืง เลขีที่�� 16

นางสืาวิลาภ+ศ อ(ที่าที่+พย� เลขีที่�� 18 นางสืาวิสื(ปราณิ� บ(ญม� เลขีที่�� 19

ช้�4นม�ธิยมศ5กษาป6ที่�� 5/1