13
0 จัดทำโดย นำงพรพนำรัตน์ ชมภูนุช ตำแหน่ง ครู วิชา การพัฒนาโปรแกรม (ภาษาซี) รหัสวิชา ว31293 หน่วยการเรียนรู้ที8 โปรแกรมโมดูล ผลการเรียนรู ออกแบบโปรแกรมแบบโมดูลในรูปแบบของฟังก์ชันย่อย และสามารถเลือกใช้งานตัวแปร พอยน์เตอร์เพื่อประยุกต์ใช้งานในโปรแกรมได้อย่างถูกต้องเหมาะสม จุดประสงค์การเรียนรู 1. เข้าใจหลักการอาร์เรย์ และสามารถนาไปประยุกต์ใช้งานได้อย่างถูกต้อง 2. เปรียบเทียบความแตกต่างระหว่างอาร์เรย์ 1 มิติ และอาร์เรย์ 2 มิติได้ 3. สามารถเขียนโปรแกรมเพื่อจัดเก็บข้อมูลลงในตัวแปรอาร์เรย์ได้ 4. สามารถเขียนโปรแกรมเพื่อจัดการกับข้อความหรือสตริงได้ 5. สามารถแปลงข้อความที่เป็นตัวเลข นาไปใช้เพื่อการคานวณได้ สาระการเรียนรู 1. รู้จักกับฟังก์ชันภาษาซี 2. รูปแบบการเข้าถึงฟังก์ชัน 3. ฟังก์ชันต้นแบบ (Protptype)

วิชา การพัฒนาโปรแกรม ภาษาซี)3 จ ดท ำโดย นำงพรพนำร ตน ชมภ น ช ต ำแหน ง คร

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: วิชา การพัฒนาโปรแกรม ภาษาซี)3 จ ดท ำโดย นำงพรพนำร ตน ชมภ น ช ต ำแหน ง คร

0

จดท ำโดย นำงพรพนำรตน ชมภนช ต ำแหนง คร

วชา การพฒนาโปรแกรม (ภาษาซ) รหสวชา ว31293

หนวยการเรยนรท 8 โปรแกรมโมดล

ผลการเรยนร

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

จดประสงคการเรยนร

1. เขาใจหลกการอารเรย และสามารถน าไปประยกตใชงานไดอยางถกตอง 2. เปรยบเทยบความแตกตางระหวางอารเรย 1 มต และอารเรย 2 มตได 3. สามารถเขยนโปรแกรมเพอจดเกบขอมลลงในตวแปรอารเรยได 4. สามารถเขยนโปรแกรมเพอจดการกบขอความหรอสตรงได 5. สามารถแปลงขอความทเปนตวเลข น าไปใชเพอการค านวณได

สาระการเรยนร 1. รจกกบฟงกชนภาษาซ 2. รปแบบการเขาถงฟงกชน 3. ฟงกชนตนแบบ (Protptype)

Page 2: วิชา การพัฒนาโปรแกรม ภาษาซี)3 จ ดท ำโดย นำงพรพนำร ตน ชมภ น ช ต ำแหน ง คร

1

จดท ำโดย นำงพรพนำรตน ชมภนช ต ำแหนง คร

ใบความรท 8 เรอง โปรแกรมโมดล

จดท าโดย นางพรพนารตน ชมภนช

จากความรหลกการเขยนโปรแกรมในบทท 1 ทมการกลาววา ควรออกแบบโปรแกรมเปนสวน ๆ หรอทเรยกวา โมดล เพอใหแตละโมดลท างานในสวนเฉพาะสวนนน ๆ ซงสงเหลานจะชวยลดความซบซอนของโปรแกรมลงได อกทงยงชวยใหการตรวจสอบ และแกไขโปรแกรมท าไดงายขน และจากตวอยางโปรแกรมทผานมา ไมไดมการแตกกระบวนการออกเปนโมดลยอยเลย ซงจะพบชดค าสงท างานทงหมด จะอยภายในฟงกชน main() ทงสน กระบวนการท างานของโปรแกรม ลวนรวมอยทเดยวกน และหากมกระบวนการทตองท าซ า แทนทจะเรยกใชงานสวนทซ าได กลบตองเขยนโปรแกรมสวนนนซ าอก สงผลใหเกดความซ าซอน และนบวาเปนแนวทางทไมถกตองนก

ฟงกชนจงเปนสวนของโปรแกรมทมความสมบรณภายในตวเอง ในภาษาซจะประกอบดวยฟงกชนหนงฟงกชนหรอหลายฟงกชน โดยในแตละโปรแกรมจะตองมอยางนอย 1 ฟงกชน คอ ฟงกชน main() สวนฟงกชนอน ๆ จะเปนสวนยอยทอยในฟงกชน main() หรออาจเปนสวนยอยของฟงกชนอน ๆ กได ฟงกชนในภาษาซจะมลกษณะคลายโปรแกรมยอย หรอทเรยกวา สบรทน (Subrutine Funchtion)

ฟงกชนเปนองคประกอบพนฐานของโปรแกรมในภาษาซ การท างานตาง ๆ ของโปรแกรมจะตองเขยนอยในรปฟงกชน โดยทฟงกชน main() ซงเปนฟงกชนแรกของโปรแกรมภาษาซทจะถกเรยกใหท างาน และนกเขยนโปรแกรมกสามารถเขยนฟงกชนทมขนาดเลกเพอใหท างานเฉพาะเจาะจงบางอยาง และยงสามารถน าฟงกชนเหลานมาใชไดอกในภายหลง ความสามารถของภาษาซเหลานจงท าใหเกดความสะดวกในการท าโปรแกรมขนาดใหญ และชวยใหการตรวจสอบความถกตองของโปรแกรม หรอการแกไขโปรแกรมในภายหลงท างานไดงายขน ดงนน ในการเขยนโปรแกรมภาษาซทดจงจ าเปนตองออกแบบโปรแกรมใหเปนโมดลหรอทเรยกวาฟงกชนยอย ๆ กเพราะวา

1. เพอเปนไปตามหลกการเขยนโปรแกรมเชงโครงสราง 2. เพองายตอการตรวจสอบและการบ ารงรกษา 3. เพอหลกเลยงการเขยนชดค าสงเดม ทท างานซ า ๆ 4. เพอสรางกลมค าสงประมวลผลเฉพาะงาน

Page 3: วิชา การพัฒนาโปรแกรม ภาษาซี)3 จ ดท ำโดย นำงพรพนำร ตน ชมภ น ช ต ำแหน ง คร

2

จดท ำโดย นำงพรพนำรตน ชมภนช ต ำแหนง คร

ดงนนในบทน จงมจดประสงคเพอฝกแนวคดการเขยนโปรแกรมแบบใหม ดวยการแตกการท างานออกเปนโมดล ซงในภาษาซเรยกวา ฟงกชน (Funchtion) ซงโปรแกรมเมอรจะตองจะตองสรางขนเอง โดยรปแบบการเขาถงฟงกชนกจะมหลายวธดวยกน อกทงภาษาซยงอนญาตใหสรางฟงกชนเพอใชงานไดโดยไมจ ากด

รจกกบฟงกชนภาษาซ

ฟงกชนภาษาซ สามารถแบงไดเปน 2 ประเภท คอ

ฟงกชนมาตรฐาน หรอ ไลบรารฟงกชน (Library Funchtion)

ฟงกชนทผใชสรางขนเอง (User defined funchtion)

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

ฟงกชนมาตรฐานในภาษาซ ซงจะอยในไลบรารภาษาซมาตรฐาน (C Standard Library) ไลบรารภาษาซมาตรฐานประกอบดวยฟงกชนตางๆมากมาย ไมวาจะใชส าหรบการค านวณทางคณตศาสตร การจดการกบขอความ การจดการกบ input/output และอนๆ ซงจะท าใหงานของโปรแกรมเมอรงายขน โดยการใชงานฟงกชนประเภทนจะตองรวม (include) ไลบรารทตองการใชงาน เพอใหตวแปลภาษารวาฟงกชนทโปรแกรมเมอรตองการใชอยในไลบรารมาตรฐานตวใด ตวอยางเชน หากตองการใชฟงกชน printf() หรอ scanf() ซงอยในไลบรารมาตรฐานส าหรบเกยวกบอนพตและเอาตพต (standard input/output) ทชอ stdio.h 1.1 ฟงกชนทางคณตศาสตร (mathematic functions) เปนฟงกชนทใชส าหรบการค านวณทางคณตศาสตร และกอนทจะใชฟงกชนประเภทน จะตองใชค าสง #include <math.h> แทรกอยตอนตนของโปรแกรม และตวแปรทจะใชฟงกชนประเภทนจะตองมชนด (type) เปน double เนองจากผลลพธทไดจากฟงกชนประเภทนจะไดคาสงกลบของขอมลเปน double เชนกน ฟงกชนทางคณตศาสตรทส าคญ เชน ฟงกชน acos(x) เปนฟงกชนทใชค านวณหาคา arc cosine ของ x โดยท x เปนคามมในหนวยเรเดยน (radian) ฟงกชน exp(x) เปนฟงกชนทใชหาคา ex โดยท x เปนคาคงทหรอตวแปรทจะใชเปนคายกก าลงของ e โดยท e มคาประมาณ 2.718282 ฟงกชน log10(x) เปนฟงกชนทใชหาคา log ฐาน 10 ของคาคงทหรอตวแปร x โดยท x เปนคาคงทหรอตวแปรทมคาเปนลบไมได

Page 4: วิชา การพัฒนาโปรแกรม ภาษาซี)3 จ ดท ำโดย นำงพรพนำร ตน ชมภ น ช ต ำแหน ง คร

3

จดท ำโดย นำงพรพนำรตน ชมภนช ต ำแหนง คร

1.2 ฟงกชนเกยวกบตวอกษร (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.3 ฟงกชนเกยวกบสตรง (string functions) เปนฟงกชนทใชกบขอมลชนดสตรง (string) โดยกอนทจะใชฟงกชนประเภทนจะตองใชค าสง #include<string.h> แทรกอยตอนตนของโปรแกรมเสยกอน จงจะเรยกใชฟงกชนประเภทนได ฟงกชนเกยวกบสตรงทส าคญ เชน strlen(s), strcmp(s1,s2), strcpy(s), strcat(s1,s2) กจกรรมเสรมทกษะ

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

1 2 3 4 5 6 7 8 9

10

#include <stdio.h> #include<conio.h> main() { int x; for (x = 1; x <= 10; x++) printf(“%d “, x * x); printf(“\n”); return 0; }

รปภาพ แสดงผลลพธทไดจากการท างานของโปรแกรม

ex08_1.exe

2. ฟงกชนทเขยนขนเอง (user defined functions)

ฟงกชนทเขยนขนหรอบางครงเราเรยกวาโปรแกรมยอย คอ สวนของโปรแกรมทเขยนขนเพอใหสามารถท างานไดอยางใดอยางหนงตามความตองการ ส าหรบผเขยนโปรแกรมภาษา C นยมเรยกโปรแกรมยอยวา ”ฟงกชน” สวนผทเขยนโปรแกรมภาษาปาสคาล โคบอล ฟอรแทรน เบสก นยมเรยกวา ”โปรแกรมยอย” อยางไรกตามโปรแกรมยอยหรอฟงกชนกมลกษณะการท างานเหมอนกน

Page 5: วิชา การพัฒนาโปรแกรม ภาษาซี)3 จ ดท ำโดย นำงพรพนำร ตน ชมภ น ช ต ำแหน ง คร

4

จดท ำโดย นำงพรพนำรตน ชมภนช ต ำแหนง คร

เพยงแตเรยกชอตางกนเทานนส าหรบในเอกสารนจะเรยกวา ฟงกชน ซงในเนอหาสวนนจะเปนการเรยนรเกยวกบฟงชนทเขยนขน (user define functions : UDF) ตงแตการประกาศรปแบบฟงกชน การเขยนตวฟงกชนและการเรยกใชฟงกชนเพอใหสามารถใชฟงกชนทเขยนขนในโปรแกรมภาษา C

ไดอยางถกตอง

รปท 7.1 แสดงโครงสรางการสงคาของฟงกชน

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

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

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

Page 6: วิชา การพัฒนาโปรแกรม ภาษาซี)3 จ ดท ำโดย นำงพรพนำร ตน ชมภ น ช ต ำแหน ง คร

5

จดท ำโดย นำงพรพนำรตน ชมภนช ต ำแหนง คร

type เปนประเภทของฟงกชนทตองการประกาศ ซงขนกบคาผลลพธของฟงกชนเปนอะไร คณสามารถประกาศ function type ไดเหมอนกบ primitive datatype เชน int, float, char และอนๆ ส าหรบฟงกชนทไมมการสงคากลบจะม type เปน void name เปนชอของฟงกชนทคณตองการสราง ในการตงชอฟงกชนมนมกฏเชนเดยวกนเหมอนกบการตงชอตวแปร ชอของฟงกชนเปนสงทเราจะใชเมอตองการใชงานฟงกชน argument เปนตวแปรทสงเขามาในฟงกชน พารามเตอรเปนทางเลอกซงสามารถมหรอไมกได statement เปนค าสงของโปรแกรมเพอทจะใหฟงกชนท างานและไดผลลพธทตองการ

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

จดเปนฟงกชนทมงเนนใหท างานใด ๆ จนส าเรจเทานน โดยไมมการสงคาผานคาใด ๆ ลงไป และไมมการคนคาใด ๆ กลบไปยงฟงกชน ทงนภาษาซจะใชค าวา void โดยใหระบลงไปตรงสวนชนดขอมลทคนคา และระบ void ลงไปในอากวเมนตทอยเครองหมายวงเลบ โดยค าวา void เปนตวแจงใหคอมไพลเลอรทราบวา ฟงกชนนจะไมมการคนคา หรอไมมการสงผานขอมลใด ๆ ทงสน

รปแบบ void function (void) { statement_1; statement_2; … statement_n; } ตวอยางท 1 ฟงกชนทไมรบผานคาตวแปร และไมสงผานคากลบ

void main() { my_print(); } void my_print() { printf(“Hello world”); }

main my_print

1. ท างาน! 2. พมพ

3. เสรจแลวครบ

Page 7: วิชา การพัฒนาโปรแกรม ภาษาซี)3 จ ดท ำโดย นำงพรพนำร ตน ชมภ น ช ต ำแหน ง คร

6

จดท ำโดย นำงพรพนำรตน ชมภนช ต ำแหนง คร

กจกรรมเสรมทกษะ

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

1 2 3 4 5 6 7 8 9

10 11 12 13 14

#include <stdio.h> #include<conio.h> void prtline(void) { puts("========================="); } main() { prtline(); printf("\t Heading \n"); prtline(); getche(); }

รปภาพ แสดงผลลพธทไดจากการท างานของ

โปรแกรม ex08_2.exe

2. ฟงกชนทมการสงผานคาทางเดยว

เปนฟงกชนทมการสงผานคาผานอารกวเมนต และภายหลงเสรจสนการท างานของตวฟงกชนแลว จะไมมการคนคาใด ๆ กลบไป ดงนนอารกวเมนตภายในวงเลบ จงตองระบชนดขอมลลงไป ซงจะมกตวกได ในขณะทชนดขอมลทคนคากลบ ใหระบเปน void

รปแบบ void function (type arg1 , type arg2 , …) { statement_1; statement_2; … statement_n; }

Page 8: วิชา การพัฒนาโปรแกรม ภาษาซี)3 จ ดท ำโดย นำงพรพนำร ตน ชมภ น ช ต ำแหน ง คร

7

จดท ำโดย นำงพรพนำรตน ชมภนช ต ำแหนง คร

ตวอยาง

กรณท 1 ฟงกชนทมการรบผานคาตวแปร แตไมสงผานคากลบ

รปแบบท 1.1

void main() { my_print(2); } void my_print(int x) { printf(“%d”, x); }

รปแบบท 1.2

void main() {

my_print(‘a’, 5); } void my_print(char ch, int x) { while (x > 0) { printf(“%c”, ch); x--; } }

กรณท 2 ฟงกชนทไมมการสงคาไปแตมการสงคากลบ

เปนรปแบบฟงกชนทไมมการสงผานคาไปยงฟงกชน ยงมการคนคากลบไปดวยพจารณาจากตวอยางจะพบวา ฟงกชน add() จะมอารกวเมนตอย 2 ตวแปรและมการคนคากลบดวยตวเลขจ านวนเตม

main my_print

1. ท างาน (ดวย 2) ! 2. พมพ

3. เสรจแลวครบ

main my_print

1. ท างาน (ดวย ‘a’ และ 5) ! 2. พมพ

3. เสรจแลวครบ

Page 9: วิชา การพัฒนาโปรแกรม ภาษาซี)3 จ ดท ำโดย นำงพรพนำร ตน ชมภ น ช ต ำแหน ง คร

8

จดท ำโดย นำงพรพนำรตน ชมภนช ต ำแหนง คร

ตวอยางท 4

ฟงกชนทไมมการรบผานคา และแตมการสงผานคากลบ

void main() { char ch; ch = my_print(); printf(“%c\n”, ch); } char my_print(void) { char lch; printf(“Enter your character: ”); scanf(“%c”, &lch); printf(“\n”); return (lch);

}

main my_print

1. ท างาน ! 2. รบคาจากผใช

3. เสรจแลวครบ ผลคอ lch

Page 10: วิชา การพัฒนาโปรแกรม ภาษาซี)3 จ ดท ำโดย นำงพรพนำร ตน ชมภ น ช ต ำแหน ง คร

9

จดท ำโดย นำงพรพนำรตน ชมภนช ต ำแหนง คร

กจกรรมเสรมทกษะ

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

1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18

#include <stdio.h> #include<conio.h> void square (int); main() { int w; printf("Input width : "); scanf("%d",&w); square(w); return 0; } void square (int y) { float ans; ans=y*y; printf("Area is : %.2f ", ans ); getche(); }

รปภาพ แสดงผลลพธทไดจากการท างานของโปรแกรม

ex08_3.exe

3. ฟงกชนทสงผานคาและคนคากลบ

เปนรปแบบฟงกชนทนอกจากจะมการสงผานคาแลว ยงมการคนคากลบไปดวยพจารณาจากตวอยางจะพบวา ฟงกชน add() จะมอารกวเมนตอย 2 ตวแปรและมการคนคากลบดวยตวเลขจ านวนเตม

รปแบบ data_type function (type arg1,type arg2,…) { statement_1; statement_2; … statement_n; return(expression); }

Page 11: วิชา การพัฒนาโปรแกรม ภาษาซี)3 จ ดท ำโดย นำงพรพนำร ตน ชมภ น ช ต ำแหน ง คร

10

จดท ำโดย นำงพรพนำรตน ชมภนช ต ำแหนง คร

ตวอยางท 3

ฟงกชนทมทงการรบผานคา และสงผานคากลบ

void main() { char ch; ch = my_print(5); printf(“%c\n”, ch); } char my_print(int x) { char ans; printf(“Enter your character: ”); scanf(“%c”, &ans); while (x > 0) { printf(“%c”, ans); x--; } printf(“\n”); return ans; }

main my_print

1. ท างาน (ดวย 5) ! 2. รบคาแลวพมพ

3. เสรจแลวครบ ผลคอ ans

Page 12: วิชา การพัฒนาโปรแกรม ภาษาซี)3 จ ดท ำโดย นำงพรพนำร ตน ชมภ น ช ต ำแหน ง คร

11

จดท ำโดย นำงพรพนำรตน ชมภนช ต ำแหนง คร

กจกรรมเสรมทกษะ

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

1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16

#include <stdio.h> #include <conio.h> int square(int); main() { int x; for (x = 1; x <= 10; x++) printf(“%d “, square(x)); printf(“\n”); return 0; } int square(int y) { return y*y; }

รปภาพ แสดงผลลพธทไดจากการท างานของโปรแกรม

ex08_4.exe

ฟงกชนตนแบบ (Protptype)

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

การใชวธสรางฟงกชนตนแบบ (Function Prototype) กคอ ฟงกชนตนแบบจะเปนตวบอกใหตวแปลภาษารถงชนดของขอมลทจะสงคากลบ จ านวนของตวแปรพารามเตอร ทฟงกชนคาดหวงวาจะไดรบ ชนดของพารามเตอรแตละตว และล าดบของพารามเตอรเหลานน ตวแปลภาษาสามารถทจะน าขอมลเหลานในการตรวจสอบความถกตองของการเรยกใชฟงกชน ลองคดถงปญหาทตามมา หากตว

Page 13: วิชา การพัฒนาโปรแกรม ภาษาซี)3 จ ดท ำโดย นำงพรพนำร ตน ชมภ น ช ต ำแหน ง คร

12

จดท ำโดย นำงพรพนำรตน ชมภนช ต ำแหนง คร

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

ตามปกตถาตองการใหตวแปรภาษา C แปลความหมายโปรแกรมไดอยางถกตอง เราจะตองเขยนฟงกชนอนๆ ไวกอนฟงกชน main() แตการเขยนโปรโตไทปจะท าใหเราสามารถยายต าแหนงของฟงกชนไปไวทสวนใดของโปรแกรมกได โดยไมจ าเปนตองเขยนไวกอนฟงกชน main() ซงรปแบบการเขยนโปรโตไทปหรอฟงกชนตนแบบ จะเหมอนกบการเขยนบรรทดแรกของฟงกชน ดงตอไปน

รปแบบ data_type function (type-1 ,type-2 , … , type-n);

ตวอยาง #include <stdio.h> #include <conio.h> Int maximum(int , int , int); main() { int a, b, c; printf(“Enter three integers: “); scanf(“%d %d %d”, &a, &b, &c); printf(“Maximum is: %d\n”, maximum(a, b, c); return 0; }

int maximum(int x , int y, int z) { int max = x; if (y > max) max = y; if (z > max) max = z; return max; }

ประกำศฟงกชนตนแบบ (Function Prototype)

ประกำศตวแปรทใชในกำรรบคำในฟงกชนทชอวำ maximum

(Function Prototype)