12
โโโโโโโโโโโโโโโโโโโโโโ โโโโโโโ

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

Embed Size (px)

Citation preview

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

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

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

ฟงกชนมาตรฐานภาษาซ ฟงกชนในภาษาซแบงตามทมาของฟงกชนแบงไดเปน 2 ประเภท

คอ1. ฟงกชนทผเขยนโปรแกรมสรางขนเอง (User-defined Function) เปนฟงกชนหรอโปรแกรมยอยทผใชสรางขนมาใชในการเขยนโปรแกรมเพอทางานอยางใดอยางหนง2. ฟงกชนมาตรฐาน (Standard Function) เปนฟงกชนทถก

สรางขนและ เกบไวในไลบราร ในการใชงานเราตองเรยกใชinclude directives เพอเรยก header file ขนมากอนจงจะสามารถใชงานฟงกชนนนได

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

ฟงกชนทผเขยนโปรแกรมสรางขนเอง

โปรแกรมยอยเปนวธเขยนโปรแกรมทตองการแยก

ระบบงานเปนสวน เชน ระบบงาน เปนระเบยบเพราะแบงเปนสวนงาน

สามารถสรางทมงานชวยพฒนาระบบได เมอเกด ขอผด พลาดจดใด สามารถแกไขไดแทนท

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

โครงสรางของฟงกชน type function_name(type1 arg1, type2 arg2,.., typeN argN) { local variable declaration; statement(s); return( varlue); }

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

คาอธบายโปรแกรม จากโปรแกรม สามารถอธบายการทางานของโปรแกรมท

สาคญๆ ไดดงนบรรทดท 3 และ 4 คาสง void one(void); และvoid two(void); คาสงประกาศชอ ฟงกชนและชนดของการสง

คากลบมายงฟงกชน ซงในกรณนทงฟงกชน one( ) และtwo( ) เปนฟงกชนชนดทไมมการสงคาไปและรบคากลบ เนอง

จากคาวา void ทอยหนาชอฟงกชน one( ) และ two( ) เปนการ บอกวาไมมการรบคาทสงกลบ สวนคาวา void ทอยภายใน ( )

ของฟงกชน one( ) และ two เปนการบอกวาไมม argument นนคอไมมการสงคาไปนนเอง ขอสงเกต การประกาศชอและ

ชนดของฟงกชนจะตองประกาศไวกอนฟงกชน main( )

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

คาอธบายโปรแกรมเพราะจะทาใหเราสามารถใชฟงกชนทประกาศไวในสวนใด

ของโปรแกรมกได บรรทดท 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 จะกลบเขาสโปรแกรม

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

ฟงกชนมาตรฐาน ในการเขยนโปรแกรมคอมพวเตอร บอยครงจะตองม ชดคาสงบางชดทจะตองถกทางานบอยๆ ถาหากโปรแกรม

ตองทาชดคาสงเหลานนอกครงผเขยนโปรแกรมจะตองเขยน ชดคาสงชดเดมใหมอกครงทาให โปรแกรมมขนาดใหญขน แต

เราสามารถนาชดคาสงทจะตองถกใชงานบอย ๆ มารวม เปน ฟงกชนได แลวจงเรยกใชชอฟงกชนแทนการทจะตองเขยน

ชดคาสงนนใหมอกครงโครงสรางของฟงกชนการสรางฟงกชนทงฟงกชนมาตรฐานและฟงกชนทผใชสรางขนมรปแบบโครงสรางดงน

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

โปรแกรมยอยฟงกชนทเขยนขนเองใหมเพอใหทางานตามตองการนยมเขยนเพอทางานอยางใดอยางหนงสามารถเรยกใชฟงกชนน

หลายๆ ทได ประโยชน

ทาใหทงโปรแกรมมโครงสรางทด กะทดรด เขาใจงายงายตอ การทดสอบและแกไข นากลบมาใชงายและรวดเรว

ในการเขยนฟงกชนขนมาใชงานอยางใดอยางหนง เราสามารถจาแนกฟงกชนทเขยนขนตามลกษณะการสงคาไป

และรบคากลบได 3 แบบ คอ

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

1. ฟงกชนทไมมการสงคาไปและรบคากลบ 2.ฟงกชนทมการสงคาไปแตไมมรบคากลบ 3.ฟงกชนทมทงการสงคาไปและรบคากลบ

ซงฟงกชนแตละแบบกเหมาะกบงานแตละอยาง ดงนนผเขยนฟงกชนจงจาเปนทจะตองศกษาทาความเขาใจ

ฟงกชนแตละแบบ เพอจะไดมาประยกตใชกบงานไดอยางเหมาะสมขอแนะนาในการเขยนโปรแกรมยอย กรณเลอกวางโปรแกรมยอยไวหลงโปรแกรมหลก ตอง

ประกาศชอโปรแกรมยอยตอ จาก #include เสมอ มฉะนน จะเกดขอผดพลาดได กรณมโปรแกรมยอยหลายสวนงาน

วางโปรแกรมยอยไวหลงโปรแกรมหลก เพราะหลกกา รอานคาสงงานจะตองอานในสวนโปรแกรมหลกกอน แลว

จงโนยงไปทโปรแกรม ยอย หากมโปรแกรมยอยจานว นมากจะดนโปรแกรมหลกไปอยสวนลาง ทาใหเสยเวลา

คนหาโปรแกรมหลก

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

ฟงกชนทางคณตศาสตร เปนฟงกชนทใชสาหรบการคานวณทางคณตศาสตร

และกอนทจะใชฟงกชนประเภทน จะตองใชคาสง#include <math.h> แทรกอยตอนตนของ

โปรแกรม และตวแปรทจะใชฟงกชนประเภทนจะตองม ชนด (type) เปน double เนองจากผลลพธทไดจาก

ฟงกชนประเภทนจะไดคาสงกลบของขอมลเปนdouble

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

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);

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

จดทาโดย นายชานนท คนทะพล เลขท 6 นายเตชสทธ ดาบแกว เลขท7

นายธนกร เอกทงบว เลขท 9 นายธระ นาบารง เลขท10

นายอภวฒน อนหน เลขท13 นายวศษฏ มณศร เลขท19