43
C Programming C Programming Lecture no. 6: Lecture no. 6: Function Function

C Programming

Embed Size (px)

DESCRIPTION

C Programming. Lecture no. 6: Function. ความสัมพันธ์ (Relations). ตัวอย่างในชีวิตจริง ความสัมพันธ์ระหว่างงานกับรายได้ต่อเดือน ความสัมพันธ์ระหว่างการเป็นสมาชิกกับพรรคการเมือง ความสัมพันธ์ระหว่างแม่กับลูก ความสัมพันธ์ระหว่างจำนวนเต็มสองจำนวนที่หารด้วย 5 ลงตัว. ความสัมพันธ์ (Relations). - PowerPoint PPT Presentation

Citation preview

C ProgrammingC Programming

Lecture no. 6:Lecture no. 6:

FunctionFunction

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming2

ความสั�มพั�นธ์ ความสั�มพั�นธ์ (Relations)(Relations)

ตั�วอย่�างในชี�ว ตัจริ ง• ความสั�มพั�นธ์�ริะหว�างงานกั�บริาย่ได้�ตั�อเด้�อน• ความสั�มพั�นธ์�ริะหว�างกัาริเป็ นสัมาชี กักั�บ

พัริริคกัาริเม�อง• ความสั�มพั�นธ์�ริะหว�างแม�กั�บลู#กั• ความสั�มพั�นธ์�ริะหว�างจ$านวนเตั%มสัองจ$านวนที่�'

หาริด้�วย่ 5 ลูงตั�ว

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming3

ความสั�มพั�นธ์ ความสั�มพั�นธ์ (Relations)(Relations)

• ค#�อ�นด้�บ (a, b) พับว�า (a, b) ≠ (b, a)• น�ยาม 1. ให� (a, b) แลูะ (c, d) เป็ นค#�อ�นด้�บใด้ๆ

แลู�ว (a, b) = (c, d) กั%ตั�อเม�'อ (a=c) แลูะ (b=d)

• น�ยาม 2. ให� A แลูะ B เป็ นเซตัใด้ๆ ผลูค#ณคาริ�ที่�เซ�ย่นของเซตั A แลูะเซตั B จะเข�ย่นแที่นด้�วย่ AxB ค�อ เซตัของค#�อ�นด้�บ (a,b) ที่�' a Є A แลูะ b Є B น�.นค�อAxB = {(a, b) | a Є A แลูะ b Є B}

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming4

ความสั�มพั�นธ์ ความสั�มพั�นธ์ (Relations)(Relations)

• น�ยาม 3. ให� r เป็ นความสั�มพั�นธ์�จากั A ไป็ B แลูะ s เป็ นความสั�มพั�นธ์�จากั B ไป็ C ความสั�มพั�นธ์�ป็ริะกัอบของ r แลูะ s เป็ นความสั�มพั�นธ์�จากั A ไป็ C เข�ย่นแที่นด้�วย่ s ○ r กั$าหนด้โด้ย่ s ○ r = {(x,z)| ม� y Є B ที่�' (x,y) Є r แลูะ (y,z) Є S }

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming5

ฟั1งกั�ชี�นฟั1งกั�ชี�น (Function)(Function)

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming6

ฟั�งก์ชั�นในม�มมองของน�ก์ฟั�งก์ชั�นในม�มมองของน�ก์คณิ�ตศาสัตร์คณิ�ตศาสัตร์

สั$าหริ�บเซตั A แลูะเซตั B ใด้ๆ • เริาสัามาริถกั$าหนด้ความสั�มพั�นธ์�ริะหว�างเซตั A

แลูะเซตั B ได้�หลูาย่ริ#ป็แบบ• สัามาริถน�บจ$านวนความสั�มพั�นธ์�ได้� ถ�าเซตั A

แลูะเซตั B เป็ นเซตัจ$ากั�ด้– n(A) = m แลูะ n(B) = n แลู�ว n(A x B) = mn

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming7

ฟั�งก์ชั�นในม�มมองของน�ก์ฟั�งก์ชั�นในม�มมองของน�ก์คณิ�ตศาสัตร์คณิ�ตศาสัตร์

• ความสั�มพั�นธ์�ริะหว�างริะย่ะที่างกั�บเวลูา

• เป็ นความสั�มพั�นธ์�ริะหว�างเซตัของเวลูากั�บเซตัองริะย่ะที่าง จะสั�งเกัตัได้�ว�าเม�'อเวลูาเป็ลู�'ย่นริะย่ะที่างกั%จะเป็ลู�'ย่นด้�วย่

• ความสั�มพั�นธ์�ริะหว�างน�กัเริ�ย่นที่�'ได้�ริะด้�บคะแนนว ชีาคณ ตัศาสัตัริ�เป็ น 4,3,2,1,0 เป็ นความสั�มพั�นธ์�ริะหว�างเซตัของน�กัเริ�ย่นที่�'เริ�ย่นว ชีาคณ ตัศาสัตัริ� กั�บ เซตัผลูกัาริเริ�ย่น ค�อ 4,3,2,1,0 จะสั�งเกัตัได้�ว�าน�กัเริ�ย่นที่�'เริ�ย่นคณ ตัศาสัตัริ�แตั�ลูะคนได้�ริ�บริะด้�บคะแนนเพั�ย่งริะด้�บเด้�ย่ว

• ความสั�มพั�นธ์�แบบน�. เริาเริ�ย่กัว�า ฟั1งกั�ชี�น

}12|),{( 2 ttsstr

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming8

ฟั�งก์ชั�นในม�มมองของน�ก์ฟั�งก์ชั�นในม�มมองของน�ก์คณิ�ตศาสัตร์คณิ�ตศาสัตร์

• น�ยาม 4. กั$าหนด้ให� A แลูะ B เป็ นเซตัใด้ๆ ให� f เป็ นความสั�มพั�นธ์�จากั A ไป็ B จะกัลู�าวได้�ว�า f เป็ นฟั1งกั�ชี�นกั%ตั�อเม�'อ สั$าหริ�บแตั�ลูะ x Є A แลูะแตั�ลูะ y, z Є Bถ�า (x, y) Є f แลูะ (x, z) Є f แลู�ว y=z

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming9

ฟั�งก์ชั�นในม�มมองของน�ก์ฟั�งก์ชั�นในม�มมองของน�ก์คณิ�ตศาสัตร์คณิ�ตศาสัตร์

จากัน ย่ามแลูะข�อสั�งเกัตัของฟั1งกั�ชี�นจะกัลู�าวได้�ว�า • ฟั1งกั�ชี�น f ค�อ กัฎที่�'ได้�ผลูลู�พัธ์�เพั�ย่งอย่�างเด้�ย่วที่�'สัมน�ย่

กั�บกัาริใสั�ข�อม#ลูเข�าไป็ในกัฎน�.นๆ

x โป็ริแกัริมคอมพั วเตัอริ�Input Output

y

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming10

ฟั�งก์ชั�นในม�มมองของน�ก์ฟั�งก์ชั�นในม�มมองของน�ก์คณิ�ตศาสัตร์คณิ�ตศาสัตร์

• น�ยาม 5. ให� A แลูะ B เป็ นเซตัใด้ๆ แลูะ f เป็ นฟั1งกั�ชี�น A ไป็ B ถ�า (x, y) Є f เริ�ย่กั y ว�าตั�วแป็ริตัามที่�'ข5.นกั�บตั�วแป็ริอ สัริะ x น ย่ามโด้ย่ y เป็ นค�าของฟั1งกั�ชี�น f ที่�' x เข�ย่นแที่นด้�วย่ y=f(x)

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming11

ฟั�งก์ชั�นในม�มมองของน�ก์ฟั�งก์ชั�นในม�มมองของน�ก์คณิ�ตศาสัตร์คณิ�ตศาสัตร์

• น�ยาม 6. ให� f:A->B แลูะ g:B->C ฟั1งกั�ชี�นป็ริะกัอบของ f แลูะ g เข�ย่นแที่นด้�วย่ g ○ f กั$าหนด้โด้ย่ (g ○ f)(a) = g(f(a)) สั$าหริ�บ a Є Aน�.นค�อ (g ○ f) = {(x,y)| y Є B, (x,y) Є f แลูะ (y,z) Є g}

a f(a) g(f(a))

(g○f)(a)

A B C

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming12

ฟั�งก์ชั�นในม�มมองของน�ก์ฟั�งก์ชั�นในม�มมองของน�ก์คณิ�ตศาสัตร์คณิ�ตศาสัตร์

x โป็ริแกัริมคอมพั วเตัอริ�Input Output

z

(g○f)(x)

x โป็ริแกัริมคอมพั วเตัอริ�

Input Outputzy

โป็ริแกัริมคอมพั วเตัอริ�

Output

f(x) g(f(x))

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming13

• ก์าร์ออก์แบบโปร์แก์ร์มในภาษาซี"จะอย%&บนพั'(นฐานของก์าร์ออก์แบบโมดู%ล (Module Design)

• โดูยก์าร์แบ&งโปร์แก์ร์มออก์เป-นงานย&อย ๆ (หร์'อโมดู%ล ) แต&ละงานย&อยจะทำ1างานอย&างใดูอย&างหน23งเทำ&าน�(น และไม&ควร์จะม"ขนาดูใหญ่&จนเก์�นไป • งานย&อยเหล&าน"(เม'3อน1าไปเข"ยนโปร์แก์ร์มในภาษาซี"จะเป-นก์าร์เข"ยนในล�ก์ษณิะของฟั�งก์ชั�น

ฟั�งก์ชั�นฟั�งก์ชั�น (Function in C)(Function in C)

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming14

ร์�บข6อม%ล 2 จ1านวนจาก์ผู้%6ใชั6 บวก์เลข 2 จ1านวนแล6วเก์8บผู้ลล�พัธ์แสัดูงผู้ลล�พัธ์ของก์าร์ทำ1างาน

โปร์แก์ร์มเพั'3อบวก์เลขสัองจ1านวนทำ"3ร์�บจาก์ผู้%6 ใชั6 และแสัดูงผู้ลก์าร์ค1านวณิ

ต�วอย&าง ทำ"3 1

สัามาร์ถแบ&งก์าร์ทำ1างานเป-นงานย&อยไดู6ดู�งน"(

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming15

ฟั�งก์ชั�นก์าร์ร์�บข6อม%ลฟั�งก์ชั�นในก์าร์บวก์เลขฟั�งก์ชั�นแสัดูงผู้ลล�พัธ์

จะไดู6ว&าโปร์แก์ร์มปร์ะก์อบดู6วยฟั�งก์ชั�น4 ฟั�งก์ชั�นค'อ ฟั�งก์ชั�นหล�ก์

ต�วอย&างทำ"3 1 (ต&อ)

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming16

Source filefunction

functionfunction

Source filefunction

functionfunction

Object file

Object file

Library file

Execute file

compile

compile

link

link

link

ข�(นตอนก์าร์สัร์6างโปร์แก์ร์มดู6วยภาษา C

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming17

ร์%ปแบบของฟั�งก์ชั�น

ชัน�ดูข6อม%ลทำ"3ค'นค&า ชั'3อฟั�งก์ชั�น ( ก์าร์ปร์ะก์าศต�วแปร์ )

{ ก์าร์ปร์ะก์าศต�วแปร์ภายในฟั�งก์ชั�น;

ค1าสั�3ง;return (ค&าข6อม%ลทำ"3ต6องก์าร์

สั&งค&าก์ล�บ);}

int , char , float , double ฯลฯ แบบทำ"3 1

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming18

ร์%ปแบบของฟั�งก์ชั�น (ต&อ)

void ชั'3อฟั�งก์ชั�น ( ก์าร์ปร์ะก์าศต�วแปร์ )

{ก์าร์ปร์ะก์าศต�วแปร์ภายใน

ฟั�งก์ชั�น;ค1าสั�3ง;

}

แบบทำ"3 2

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming19

ต�วอย&างทำ"32แสัดูงก์าร์ทำ1างานของโปร์แก์ร์มก์าร์บวก์

เลขจ1านวนจร์�ง 2 จ1านวนทำ"3ร์�บจาก์ผู้%6ใชั6#include <stdio.h>double InputDouble ( ) {

double x; printf ( “\nInput real

value : “ ); scanf ( “%.2f ”, &x ); return ( x );}

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming20

ต�วอย&างทำ"3 2 (ต&อ)

double SumDouble ( double x, double y ) {

return ( x + y );}

void PrintOut ( double x ) {

printf ( “\n Result of sum is : %.2f”, x );

}

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming21

ต�วอย&างทำ"3 2 (ต&อ)

void main ( ) { double a1, a2,

sumVal; a1 =

InputDouble( ); a2 =

InputDouble( ); sumVal =

SumDouble ( a1, a2 ); PrintOut ( sumVal );

}

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming22

ก์าร์ปร์ะก์าศโพัร์โทำไทำป;ของฟั�งก์ชั�น

ก์าร์ปร์ะก์าศโปร์โตไทำป;เป-นสั�3งจ1าเป-นในภาษาซี"เน'3องจาก์ภาษาซี"เป-นภาษาในล�ก์ษณิะทำ"3ต6องม"ก์าร์ปร์ะก์าศฟั�งก์ชั�นก์&อนจะเร์"ยก์ใชั6ฟั�งก์ชั�นน�(น (Pre-defined Function)

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming23

• จาก์ต�วอย&างทำ"3 1จะเห8นว&าฟั�งก์ชั�น main ( ) จะอย%&ใต6ฟั�งก์ชั�นอ'3น ๆ ทำ"3ม"ก์าร์เร์"ยก์ใชั6 เป-นล�ก์ษณิะทำ"3ต6องปร์ะก์าศฟั�งก์ชั�นทำ"3ต6องก์าร์เร์"ยก์ใชั6ก์&อนจาก์เร์"ยก์ใชั6ฟั�งก์ชั�นน�(น• แต&หาก์ต6องก์าร์ย6ายฟั�งก์ชั�น main ( ) ข2(นไปไว6ดู6านบน จะต6องม"ก์าร์ปร์ะก์าศโปร์โตไทำป;ของฟั�งก์ชั�นทำ"3ต6องก์าร์เร์"ยก์ใชั6ก์&อนเสัมอ

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming24

#include <stdio.h>double InputDouble (double );double SumDouble ( double , double );void PrintOut ( double );

ต�วอย&าง ทำ"3 3แสัดูงก์าร์ทำ1างานของโปร์แก์ร์มก์าร์บวก์

เลขจ1านวนจร์�ง 2 จ1านวน ทำ"3ร์�บจาก์ผู้%6ใชั6 ในล�ก์ษณิะทำ"3ม"ก์าร์ปร์ะก์าศโปร์โตไทำป;

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming25

void main ( void ) { double a1, a2,

sumVal; a1 =

InputDouble( ); a2 =

InputDouble( ); sumVal =

SumDouble ( a1, a2 ); PrintOut ( sumVal

);}

ต�วอย&างทำ"3 3 (ต&อ)

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming26

จะเห8นว&าในโปร์โตไทำป;ไม&ม"ก์าร์ปร์ะก์าศชั'3อต�วแปร์ ม"แต&ก์าร์เข"ยนปร์ะเภทำของต�วแปร์ไว6ภายในเป-นก์าร์ชั&วยให6คอมไพัเลอร์ สัามาร์ถตร์วจสัอบ

•จ1านวนของต�วแปร์ •ปร์ะเภทำของต�วแปร์ •ปร์ะเภทำของก์าร์ค'นค&า

ภายในโปร์แก์ร์มว&าม"ก์าร์เร์"ยก์ใชั6งานสั�3งต&างๆเก์"3ยวก์�บฟั�งก์ชั�น น�(นถ%ก์ต6องหร์'อไม& นอก์จาก์น"(เร์าอาจจะแยก์สั&วน โปร์โตไทำป;ไปเข"ยนไว6ในอ�นคล%ชัไฟัลก์8ไดู6เชั&นเดู"ยวก์�น

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming27

ก์าร์เร์"ยก์ใชั6ฟั�งก์ชั�น

ก์าร์เร์"ยก์ใชั6ฟั�งก์ชั�นทำ"3ม"ก์าร์ค'นค&า จะใชั6ร์%ปแบบดู�งต&อไปน"(

ค&าทำ"3ร์�บ = ฟั�งก์ชั�น (อาร์ก์�วเมนต)

ค&าทำ"3ถ%ก์ค'นมาจาก์ก์าร์ทำ1างานของฟั�งก์ชั�3น

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming28

a1 = a1 = InputDouble ( );InputDouble ( );

ใชั6ค%&ก์�บโปร์โตไทำป;double double InputDouble InputDouble ( );( );

ต�วอย&าง ทำ"3 4

a1 ต6องม"ชัน�ดูเป-น double เน'3องจาก์ค&าทำ"3จะสั&ง ค'นก์ล�บมาจาก์ฟั�งก์ชั�นม"ชัน�ดูเป-น double

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming29

sumVal = sumVal = SumDouble (a1,a2 );SumDouble (a1,a2 );

ใชั6ค%&ก์�บโปร์โตไทำป;double double InputDouble ( );InputDouble ( );

ต�วอย&างทำ"35

a1 และ a2 ต6องม"ชัน�ดูเป-น doubleเพั'3อให6ตร์งก์�บชัน�ดูต�วแปร์ของอาร์ก์�วเมนทำ

ทำ"3ปร์ะก์าศในโปร์โตไทำป;

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming30

PrintOut( sumVaPrintOut( sumVal );l );

ใชั6ค%&ก์�บโปร์โตไทำป;void PrintOut void PrintOut

( double );( double );

ต�วอย&างทำ"36

ปร์ะก์าศให6ร์%6ว&าฟั�งก์ชั�&นน"(ไม&ม"ก์าร์ค'นค&า

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming31

ขอบเขต ( Scope)

ก์าร์ทำ1างานของโปร์แก์ร์มภาษาซี"• จะทำ1างานทำ"3ฟั�งก์ชั�น main ( ) ก์&อนเสัมอ • เม'3อฟั�งก์ชั�น main ( ) เร์"ยก์ใชั6งานฟั�งก์ชั�นอ'3น ก์8จะม"ก์าร์สั&งคอนโทำร์ล (Control) ทำ"3ควบค�มก์าร์ทำ1างานไปย�งฟั�งก์ชั�นน�(น ๆ จนก์ว&าจะจบฟั�งก์ชั�น หร์'อ พับค1าสั�3ง return

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming32

• เม'3อม"ก์าร์เร์"ยก์ใชั6งานฟั�งก์ชั�นจะม"ก์าร์จองพั'(นทำ"3หน&วยความจ1าสั1าหร์�บต�วแปร์ทำ"3ต6องใชั6ภายในฟั�งก์ชั�นน�(น • เม'3อสั�(นสั�ดูก์าร์ทำ1างานของฟั�งก์ชั�นก์8จะม"ก์าร์ค'นพั'(นทำ"3หน&วยความจ1าสั&วนน�(นก์ล�บสั%&ร์ะบบ ก์าร์ใชั6งานต�วแปร์แต&ละต�วจะม"ขอบเขตของก์าร์ใชั6งานข2(นอย%&ก์�บต1าแหน&งทำ"3ปร์ะก์าศต�วแปร์น�(น

ขอบเขต ( Scope) (2)

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming33

a1a2

sumVal

main ( )

xInputDouble ( )

a1 = InputDouble( );a1 = InputDouble( );

ต�วอย&าง ทำ"3 7

step1step1

จาก์ต�วอย&างทำ"3 1 และต�วอย&างทำ"3 2 สัามาร์ถแสัดูงขอบเขตก์าร์ทำ1างานไดู6ดู�งน"(

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming34

a1a2

sumVal

main ( )

xInputDouble ( )

a2 = InputDouble( );a2 = InputDouble( );

ต�วอย&างทำ"3 7 (ต&อ)

step2step2

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming35

a1a2

sumVal

main ( )

xsumDouble ( )

sumVal=SumDouble(asumVal=SumDouble(a1,a2)1,a2)

ต�วอย&างทำ"3 7 (ต&อ)

Step3Step3

y

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming36

a1a2

sumVal

main ( )

xPrintSum ( )

PrintSum(sumVal);PrintSum(sumVal);

ต�วอย&างทำ"3 7 (ต&อ)

step4step4

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming37

จะเห8นว&าต�วแปร์ x ทำ"3ปร์ะก์าศในแต&ละข�(นตอนจะทำ1างานอย%&ภายในฟั�งก์ชั�นทำ"3ม"ก์าร์ปร์ะก์าศค&าเทำ&าน�(น และใชั6พั'(นทำ"3ในก์าร์เก์8บข6อม%ลคนละสั&วนก์�น

ขอบเขตก์าร์ทำ1างานของต�วแปร์แต&ละต�วจะก์1าหนดูอย%&ภายในบล8อก์ของค1าสั�3งภายในเคร์'3องหมายป<ก์ก์า ( { } ) หร์'อก์าร์ปร์ะก์าศในชั&วงของก์าร์ปร์ะก์าศฟั�งก์ชั�น เร์"ยก์ต�วแปร์เหล&าน"(ว&า ต�วแปร์โลคอล ต�วแปร์โลคอล (Local Variable)(Local Variable)

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming38

นอก์จาก์น"(สัามาร์ถปร์ะก์าศต�วแปร์ไว6ทำ"3ภายนอก์ฟั�งก์ชั�นบร์�เวณิสั&วนเร์�3มของโปร์แก์ร์มจะเร์"ยก์ว&า

ต�วแปร์โก์ลบอล ต�วแปร์โก์ลบอล (Global (Global Variable)Variable) ซี23งเป-นต�วแปร์ทำ"3สัามาร์ถเร์"ยก์ใชั6ทำ"3ต1าแหน&งใดู ๆ ในโปร์แก์ร์มก์8ไดู6 ยก์เว6นในก์ร์ณิ"ทำ"3ม"ก์าร์ปร์ะก์าศต�วแปร์ทำ"3ม"ชั'3อเดู"ยวก์�นก์�บต�วแปร์โก์ลบอลภายในบล8อก์หร์'อฟั�งก์ชั�น

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming39

#include <stdio.h>int x;void func1 ( ) {

x = x + 10; printf ( “func1 ->

x : %d\n”, x );}

ต�วอย&าง ทำ"3 8แสัดูงก์าร์ทำ1างานของโปร์แก์ร์มในล�ก์ษณิะทำ"3ม"

ต�วแปร์โก์ลบอล แสัดูงขอบเขตก์าร์ใชั6งานของต�วแปร์ภายในโปร์แก์ร์ม

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming40

void func2 ( int x ) { x = x + 10; printf ( “func2 -> x :

%d\n”, x );}void func3 ( ) {

int x=0; x = x + 10; printf ( “func3 -> x :

%d\n”, x );}

ต�วอย&างทำ"3 8 (ต&อ)

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming41

void main ( ) { x = 10; printf ( “main (start) -> x :

%d\n”, x ); func1 ( );

printf ( “main (after func1) -> x : %d\n”, x ); func2 ( x );

printf ( “main (after func2) -> x : %d\n”, x); func3 ( );

printf ( “main (after func3) -> x : %d\n”, x);

}

ต�วอย&างทำ"3 8 (ต&อ)

Department of Computer ScienceDepartment of Computer Science 310222 C Programming310222 C Programming42

main (start) -> x : 10func1 -> x : 20main (after func1) -> x : 20func2 -> x : 30main (after func2) -> x : 20func3 -> x : 10main (after func3) -> x : 20

ต�วอย&างทำ"3 8 (ต&อ)ผู้ลก์าร์ทำ1างาน

The End