View
183
Download
0
Category
Preview:
Citation preview
โปรแกรมยอยและฟงกชนมาตรฐาน
ฟงกชนมาตรฐานภาษาซ ฟงกชนในภาษาซแบงตามทมาของฟงกชนแบงไดเปน 2 ประเภท
คอ1. ฟงกชนทผเขยนโปรแกรมสรางขนเอง (User-defined Function) เปนฟงกชนหรอโปรแกรมยอยทผใชสรางขนมาใชในการเขยนโปรแกรมเพอทางานอยางใดอยางหนง2. ฟงกชนมาตรฐาน (Standard Function) เปนฟงกชนทถก
สรางขนและ เกบไวในไลบราร ในการใชงานเราตองเรยกใชinclude directives เพอเรยก header file ขนมากอนจงจะสามารถใชงานฟงกชนนนได
ฟงกชนทผเขยนโปรแกรมสรางขนเอง
โปรแกรมยอยเปนวธเขยนโปรแกรมทตองการแยก
ระบบงานเปนสวน เชน ระบบงาน เปนระเบยบเพราะแบงเปนสวนงาน
สามารถสรางทมงานชวยพฒนาระบบได เมอเกด ขอผด พลาดจดใด สามารถแกไขไดแทนท
โครงสรางของฟงกชน type function_name(type1 arg1, type2 arg2,.., typeN argN) { local variable declaration; statement(s); return( varlue); }
คาอธบายโปรแกรม จากโปรแกรม สามารถอธบายการทางานของโปรแกรมท
สาคญๆ ไดดงนบรรทดท 3 และ 4 คาสง void one(void); และvoid two(void); คาสงประกาศชอ ฟงกชนและชนดของการสง
คากลบมายงฟงกชน ซงในกรณนทงฟงกชน one( ) และtwo( ) เปนฟงกชนชนดทไมมการสงคาไปและรบคากลบ เนอง
จากคาวา void ทอยหนาชอฟงกชน one( ) และ two( ) เปนการ บอกวาไมมการรบคาทสงกลบ สวนคาวา void ทอยภายใน ( )
ของฟงกชน one( ) และ two เปนการบอกวาไมม argument นนคอไมมการสงคาไปนนเอง ขอสงเกต การประกาศชอและ
ชนดของฟงกชนจะตองประกาศไวกอนฟงกชน main( )
คาอธบายโปรแกรมเพราะจะทาใหเราสามารถใชฟงกชนทประกาศไวในสวนใด
ของโปรแกรมกได บรรทดท 8 และ 9 คาสง one( ); และtwo( ); เปนการเรยกใชฟงกชนชอ one( ) และ two( ) ตา
มลาดบ โดยฟงกชน one( ) อยทคาสงบรรทดท 14 ถง 18 และ ฟงกชน two( ) อยท20 ถง 25 บรรทดท 14 ถง 18
ฟงกชน one( ) ใหพมพคาทเกบไวในตวแปร a และ b แสดงทจอภาพ บรรทดท 20 ถง 25 ฟงกชน two( ) ให
พมพคาทเกบไวในตวแปร p และ q และพมพคาตวแปร q แสดงทจอภาพ บรรทดท10 และ 11 ภายหลงจากทางาน
ตามฟงกชน one( ) และ two( ) แลว พมพขอความให กด คยใด ๆ เพอกลบสโปรแกรม และหยดรอรบคาใด ๆ เชน
กด enter จะกลบเขาสโปรแกรม
ฟงกชนมาตรฐาน ในการเขยนโปรแกรมคอมพวเตอร บอยครงจะตองม ชดคาสงบางชดทจะตองถกทางานบอยๆ ถาหากโปรแกรม
ตองทาชดคาสงเหลานนอกครงผเขยนโปรแกรมจะตองเขยน ชดคาสงชดเดมใหมอกครงทาให โปรแกรมมขนาดใหญขน แต
เราสามารถนาชดคาสงทจะตองถกใชงานบอย ๆ มารวม เปน ฟงกชนได แลวจงเรยกใชชอฟงกชนแทนการทจะตองเขยน
ชดคาสงนนใหมอกครงโครงสรางของฟงกชนการสรางฟงกชนทงฟงกชนมาตรฐานและฟงกชนทผใชสรางขนมรปแบบโครงสรางดงน
โปรแกรมยอยฟงกชนทเขยนขนเองใหมเพอใหทางานตามตองการนยมเขยนเพอทางานอยางใดอยางหนงสามารถเรยกใชฟงกชนน
หลายๆ ทได ประโยชน
ทาใหทงโปรแกรมมโครงสรางทด กะทดรด เขาใจงายงายตอ การทดสอบและแกไข นากลบมาใชงายและรวดเรว
ในการเขยนฟงกชนขนมาใชงานอยางใดอยางหนง เราสามารถจาแนกฟงกชนทเขยนขนตามลกษณะการสงคาไป
และรบคากลบได 3 แบบ คอ
1. ฟงกชนทไมมการสงคาไปและรบคากลบ 2.ฟงกชนทมการสงคาไปแตไมมรบคากลบ 3.ฟงกชนทมทงการสงคาไปและรบคากลบ
ซงฟงกชนแตละแบบกเหมาะกบงานแตละอยาง ดงนนผเขยนฟงกชนจงจาเปนทจะตองศกษาทาความเขาใจ
ฟงกชนแตละแบบ เพอจะไดมาประยกตใชกบงานไดอยางเหมาะสมขอแนะนาในการเขยนโปรแกรมยอย กรณเลอกวางโปรแกรมยอยไวหลงโปรแกรมหลก ตอง
ประกาศชอโปรแกรมยอยตอ จาก #include เสมอ มฉะนน จะเกดขอผดพลาดได กรณมโปรแกรมยอยหลายสวนงาน
วางโปรแกรมยอยไวหลงโปรแกรมหลก เพราะหลกกา รอานคาสงงานจะตองอานในสวนโปรแกรมหลกกอน แลว
จงโนยงไปทโปรแกรม ยอย หากมโปรแกรมยอยจานว นมากจะดนโปรแกรมหลกไปอยสวนลาง ทาใหเสยเวลา
คนหาโปรแกรมหลก
ฟงกชนทางคณตศาสตร เปนฟงกชนทใชสาหรบการคานวณทางคณตศาสตร
และกอนทจะใชฟงกชนประเภทน จะตองใชคาสง#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);
จดทาโดย นายชานนท คนทะพล เลขท 6 นายเตชสทธ ดาบแกว เลขท7
นายธนกร เอกทงบว เลขท 9 นายธระ นาบารง เลขท10
นายอภวฒน อนหน เลขท13 นายวศษฏ มณศร เลขท19