SlideShare a Scribd company logo
1 of 65
Chapter 5
Functions
1
นิยามของฟังก์ชั่น
นิยาม ให้ A และB เป็นเซตใด ๆ และ f เป็นสับ
เซตของ A×B f เป็นฟังก์ชันจาก A ไป B(f:
A→B ) ก็ต่อเมื่อ f มีคุณสมบัติดังนี้ “แต่ละสมาชิก
x ใน A จะมีสมาชิก y ใน B มาจับคู่เพียงตัวเดียว
”เท่านั้น
หรือ
1. ทุก ๆ x ∈ A มี y ∈ B ซึ่ง (x, y) ∈ f
2. ทุก ๆ x ∈ A และ y, z ∈ B
ถ้า (x, y) ∈f และ (x, z) ∈ f แล้ว y = z
2
ตัวอย่าง
• A={1, 2, 3, 4} และ B={0, 1, 2, 3, 4}
• ความสัมพันธ์ที่กำาหนดต่อไปนี้ ข้อใดเป็นฟัง
ก์ชั่นจาก A ไป B?
• f = {(1,0), (2,1), (3,2), (4,3)}
• g = {(1,1), (2,0), (3,2), (4,1), (2,4)}
• h = {(1,4), (2,2), (3,0)}
• f เป็นฟังก์ชั่น, แต่ g และ h ไม่เป็นฟังก์ชั่น
3
Function Terminology
• ถ้ากำาหนดฟังก์ชั่น f:A→B, และ f(a)=b (โดยที่
a∈A และ b∈B), ดังนั้น กล่าวได้ว่า:
– A คือ โดเมน (domain) ของ f
– B คือ โคโดเมน (codomain) ของ f
– b คือ อิมเมจ (image) ของ a ภายใต้ f
– a คือ พรีอิมเมจ (pre-image) ของ b ภายใต้ f
• สังเกตว่า b หนึ่งค่า อาจมีพรีอิมเมจได้มากกว่า 1 ตัว
– พิสัย(range) R⊆B ของ f คือ R={b | ∃a f(a)=b }
4
Domain and Codomain
• ถ้า f เป็นฟังก์ชันจากเซต A ไปยัง B, เรากล่าวว่า A
คือโดเมน(domain) ของ f และ B เป็นโค
โดเมน(codomain) ของ f
• โคโดเมน(codomain) คือเซต ที่ฟังก์ชั่นนั้นถูกประ
กาศว่าแมปค่าในโดเมนไปยังค่าในเซตนั้น ตัวอย่าง
นี้ โคโดเมนคือ {a,b,c,d}
• พิสัย(range) คือเซตของค่าในโคโดเมน ที่ฟัง
5
1
2
3
4
5
a
b
c
d
f
=f(2)
2 เป็น pre-
image ของ
b
b เป็น image
ของ 2
การเท่ากันของฟังก์ชัน
นิยาม ถ้า f และ g เป็นฟังก์ชันจาก A ไป B
เรากล่าวว่า f = g ก็ต่อเมื่อ โดเมนของ f และ
โดเมนของ g เป็นเซตเดียวกันและโคโดเมน
ของ f และโคโดเมนของ g เป็นเซตเดียวกัน
และf(x) = g(x) สำาหรับทุกๆ x ในโดเมน
ตัวอย่าง เช่น
ให้ f = {(x, y) | x, y ∈ R และ y = x + 1}
g = {(x, y) | x, y ∈ Z+
และ y = x +
1}
– โดเมน, โคโดเมน, พิสัย ของ f คือ R 6
Functions Example
•กำาหนดฟังก์ชั่น f:P→C โดยกำาหนด
P = {Linda, Max, Kathy, Peter}
C = {Boston, New York, Hong Kong, Moscow}
f(Linda) = Moscow
f(Max) = Boston
f(Kathy) = Hong Kong
f(Peter) = Boston
•f เป็นฟังก์ชั่นหรือไม่?
7
yesyes
{Moscow, Boston, Hong Kong}{Moscow, Boston, Hong Kong}พิสัยพิสัย((rangerange))ของฟังของฟัง
ก์ชั่นนี้คือก์ชั่นนี้คือ??
LindaLinda
MaxMax
KathyKathy
PeterPeter
BostonBoston
New YorkNew York
Hong KongHong Kong
MoscowMoscow
Functions Example
ให้ f : Z  R ที่กำาหนดโดย f (x ) = x 2
Q1: จงหาโดเมน และโคโดเมนของฟังก์ชั่น?
Q2: จงหาอิมเมจของ -3 ?
Q3: จงหาพรีอิมเมจของ 3, 4?
Q4: จงหาพิสัยของ f (Z) ?
8
Functions Example. Basic-Terms.
f : Z  R ที่กำาหนดโดย f (x ) = x 2
A1: โดเมน คือ Z, โคโดเมน คือ R
A2: อิมเมจของ -3 = f (-3) = 9
A3: พรีอิมเมจของ 3: ไม่มี เพราะ 3 ไม่เป็น
จำานวนเต็ม
พรีอิมเมจของ 4: -2 และ 2
A4: พิสัยคือ เซตของเลขจำานวนเต็มยกกำาลังสอง
f (Z) = {0,1,4,9,16,25,…}
9
Function Operator
•ให้ f1 และ f2 เป็นฟังก์ชั่นจาก A ไป R
•ดังนั้นผลรวมและผลคูณของฟังก์ชั่น f1 และ f2 ยังคงเป็นฟัง
ก์ชั่นจากเซต A ไป R นิยามโดย:
(f1 + f2)(x) = f1(x) + f2(x)
(f1f2)(x) = f1(x) f2(x)
•ตัวอย่าง เช่น:
f1(x) = 3x, f2(x) = x + 5
(f1 + f2)(x) = f1(x) + f2(x) = 3x + x + 5 = 4x + 5
(f1f2)(x) = f1(x) f2(x) = 3x (x + 5) = 3x2
+ 15x
10
Function Composition Operator
• การประกอบกันของสองฟังก์ชั่น g:A→B และ f:B→C,
แทนด้วย f ○ g, นิยามโดย (f ○ g)(a) = f(g(a))
หมายความว่า
• หาค่าฟังก์ชั่น g โดยใช้ค่าสมาชิก a∈A แมปค่า a ผ่าน
ฟังก์ชั่น g ไปยังสมาชิกของ B
• จากนั้นหาค่าฟังก์ชั่น f โดยใช้ค่าสมาชิกของ B, แล้ว
แมปค่านั้นผ่านฟังก์ชั่น f ไปยังสมาชิกของ C
• ดังนั้น ฟังก์ชั่นประกอบ แมปจาก A ไปยัง C
11
Composition
ตัวอย่าง
ให้ g เป็นฟังก์ชันจาก A = { a, b, c} ไปยังบนเซต A
ซึ่ง g(a) = b, g(b) = c, และ g(c) = a และ f เป็น
ฟังก์ชันจาก A = { a, b, c} ไปยัง B = {1, 2, 3 } ซึ่ง
f(a) = 3, f(b) = 2, และ f(c) = 1
ดังนั้นสามารถหา fog ได้
fog(a) = f(g(a)) = f(b) = 2 และ
fog(b) = f(g(b)) = f(c) = 1
fog(c) = f(g(c)) = f(a) = 3
แต่ gof หาไม่ได้เนื่องจาก พิสัยของ f ไม่เป็นสับ
เซตของโดเมนของ g
12
Composition
• ตัวอย่าง ให้ f และ g เป็นฟังก์ชันจากเซต Z
ไป Z ซึ่งกำาหนด
f(x) = 2x + 3 และ g(x) = 3x + 2 จงหา
fog และ gof
เราสามารถหา fog และ gof ได้ดังนี้
(fog)(x) = f(g(x)) = f (3x + 2)
= 2(3x + 2) + 3 = 6x + 7
(gof)(x) = g(f(x)) = g(2x + 3)
= 3(2x + 3) + 2 = 6x + 11
13
Composition
Q: จงหา g○f โดยที่
1. f : Z  R, f (x ) = x 2
และ g : R  R, g (x ) = x 3
2. f :R→R, f(x) = 7x – 4,
และ g : R→R, g(x) = 3x
3. f : {ประชากรโลก}  {ประชากรโลก},
f (x ) = พ่อของ x, และ g = f
14
Composition
1. f : Z  R, f (x ) = x 2
และ g : R  R, g (x ) = x 3
g○f : Z  R , g○f (x ) = x 6
2. f :R→R, f(x) = 7x – 4,
และ g : R→R, g(x) = 3x
(g ○ f)(x) = g(f(x)) = g(7x – 4) = 3(7x – 4) = 21x-12
(f ○ g)(x) = f(g(x)) = f(3x) = 21x - 4
3. f : {ประชากรโลก}  {ประชากรโลก},
f (x ) = g(x ) = พ่อของ x
g○f (x ) = ปู่ของ x
15
Repeated Composition
• เมื่อเซตของโดเมน และโคโดเมนเท่ากัน ฟังก์ชั่นนั้น
อาจประกอบเข้ากับตัวเองได้ การประกอบกันของ
ฟังก์ชั่นตัวเดียวกันซำ้าๆ จะเขียนอยู่ในรูปของการ
ยกกำาลังของฟังก์ชั่น(functional exponentiation)
แทนด้วยสัญลักษณ์ ดังนี้
f n
(x ) = f ○f ○f ○f ○ … ○f (x )
โดย f ประกอบกัน n ครั้ง เริ่มจากด้านขวามือ
Q1: กำาหนด f : Z  Z, f (x ) = x 2
จงหา f 4
Q2: กำาหนด g : Z  Z, g (x ) = x + 1 จงหา g n
Q3: กำาหนด h(x ) = พ่อของ x, จงหา hn
16
n
Repeated Composition
A1: f : Z  Z, f (x ) = x 2
f 4
(x ) = x (2*2*2*2)
= x 16
A2: g : Z  Z, g (x ) = x + 1
gn
(x ) = x + n
A3: h (x ) = พ่อของ x,
hn
(x ) = บรรพบุรุษลำาดับที่ n ของ x
17
ฟังก์ชั่น One-to-One
• ฟังก์ชั่น f:A→B เป็น one-to-one (1-1), หรือ
injection, ก็ต่อเมื่อ สมาชิกทุกตัวในพิสัยมีพรี
อิมเมจเพียงตัวเดียว
∀x, y∈A (f(x) = f(y) → x = y)
• หรือกล่าวได้ว่า f เป็น one-to-one ก็ต่อเมื่อ
ฟังก์ชั่นนั้นไม่มีการแมปสมาชิกที่แตกต่างกัน
ในเซต A ไปบนสมาชิกตัวเดียวกันในเซต B
– สังเกตว่า โดเมนและพิสัยจะมีขนาด(จำานวน
สมาชิก)เท่ากัน ส่วนโคโดเมนอาจมีขนาดใหญ่กว่า
18
กราฟแสดง One-to-One
• กราฟสองส่วน(Bipartite graph) สามารถใช้
พิจารณาว่าฟังก์ชั่นเป็น 1-1 หรือไม่เป็นได้:
19
•
•
•
•
•
•
•
•
•
เป็น One-to-one
•
•
•
•
•
•
•
•
•
ไม่เป็น one-to-one
•
•
•
•
•
•
•
•
•
ไม่เป็นฟังก์ชั่น!
Properties of Functions
•กำาหนด f ดังนี้
f(Linda) = Moscow
f(Max) = Boston
f(Kathy) = Hong Kong
f(Peter) = Boston
• f เป็น one-to-one หรือไม่?
•ไม่เป็น 1-1 เพราะ Max และ
Peter ถูกแมปไปบนสมาชิกตัว
เดียวกัน(มีอิมเมจตัวเดียวกัน)
20
•กำาหนดกำาหนด gg ดังนี้ดังนี้
g(Linda) = Moscowg(Linda) = Moscow
g(Max) = Bostong(Max) = Boston
g(Kathy) = Hong Kongg(Kathy) = Hong Kong
g(Peter) = New Yorkg(Peter) = New York
•gg เป็นเป็น one-to-oneone-to-one หรือหรือ
ไม่ไม่??
เป็น เพราะสมาชิกแต่ละเป็น เพราะสมาชิกแต่ละ
ตัวถูกกำาหนดให้มีอิมเมจตัวถูกกำาหนดให้มีอิมเมจ
คนละตัวกันคนละตัวกัน
ฟังก์ชั่นผกผัน(Inverse Function)
• ให้ f:A→B เป็น one-to-one correspondence,
หรือ bijection ดังนั้น ฟังก์ชั่นผกผันของ f คือ
ฟังก์ชั่นที่กำาหนดค่าสมาชิก b ใน B ด้วย
สมาชิกเพียงตัวเดียว a ใน A โดยที่ f(a) = b
• ฟังก์ชั่นผกผันของ f เขียนแทนด้วย f -1
ดังนั้น
f -1
(b) = a เมื่อ f(a) = b
21
• •
A B
a=f-1
(b) b=f(a)
f
f-1
ฟังก์ชั่นผกผัน(Inverse Function)
22
ตัวอย่าง:
f(Linda) = Moscow
f(Max) = Boston
f(Kathy) = Hong Kong
f(Peter) = Sidney
f(Helena) = New York
ดังนั้น f เป็น bijection
ฟังก์ชั่นผกผัน f-1
กำาหนด
โดย:
f-1
(Moscow) = Linda
f-1
(Boston) = Max
f-1
(Hong Kong) = Kathy
f-1
(Sidney) = Peter
f-1
(New York) = Helena
ผกผันจะหาได้เฉพาะกับฟัง
ก์ชั่นที่เป็นbijections
เท่านั้น
(= invertible functions)
ฟังก์ชั่นผกผัน(Inverse Function)
•f -1
:C→P ไม่เป็นฟัง
ก์ชั่น เพราะมีสมาชิก
ใน C บางตัว ไม่มี
การกำาหนดค่าให้
และ พรีอิมเมจ New
York เพียงตัวเดียวมี
อิมเมจถึงสองตัวคือ
Max และ Helena
23
LindaLinda
MaxMax
KathyKathy
PeterPeter
BostonBoston
New YorkNew York
Hong KongHong Kong
MoscowMoscow
SidneySidneyHelenaHelena
ff
ff-1-1
Inverse Function Example
• ให้ f : Z  Z, f(x) = x+1 จงแสดงว่า f หาผกผันได้
หรือไม่ ถ้าหาได้จงหา f -1
?
• f เป็นฟังก์ชั่นที่หาผกผันได้ เพราะเป็น one-to-one
correspondence(จงให้เหตุผล) ดังนั้น x = y-1 นั่น
คือ f -1
(y)= y-1 หรือเขียนในรูปของตัวแปร x
ได้ว่า f -1
(x)= x-1
• กำาหนดให้ f : Z  Z, f(x) = x2
จงแสดงว่า f หาผกผัน
ได้หรือไม่ ถ้าหาได้จงหา f -1
?
• เพราะ f(-1) = f(1) = 1, f จึงไม่เป็น one-to-one ดัง
นั้น f ไม่สามารถหาผกผันได้
24
Composition of functions
หมายเหตุ
ถ้า f เป็นฟังก์ชันสมนัยหนึ่งต่อหนึ่งจากเซต A ไปยังเซต
B จะได้ว่า f-1
จะสามารถหาได้และ f-1
จะเป็นฟังก์ชันสมนัย
หนึ่งต่อหนึ่งจากเซต B ไปยังเซต A ซึ่งจะได้ว่า f-1
(b) =
a เมื่อ f(a) = b และ f(a) = b เมื่อ f-1
(b) = a ดังนั้น
(f-1
o f)(a) = f-1
(f(a)) = f-1
(b) = a
และ (fo f-1
)(b) = f(f-1(b)) = f(a) = b
ดังนั้น f-1
o f = IA และ fo f-1
= IB เมื่อ IA และ IB เป็น
ฟังก์ชันเอกลักษณ์ และ (f-1
)-1
= f
ตัวอย่าง : f : Z  Z, f (x ) = x + 1
และ g = f -1
ดังนั้น g (x ) = x – 1
g○f (x ) = x
25
ฟังก์ชั่นที่สำาคัญ
• ฟังก์ชั่นบนเซตของจำานวนจริงที่พบได้บ่อยได้แก่:
– ฟังก์ชั่นพื้น(floor) ·:R →Z, โดยที่ x (“พื้นของ x”)
หมายถึงจำานวนเต็มที่มากที่สุดที่  x
นั่นคือ x : max({≡ i∈Z|i≤x})
ตัวอย่าง เช่น: 2.3 = 2, 2 = 2, 0.5 = 0, -3.5 = -4
– ฟังก์ชั่นเพดาน(ceiling) · :R →Z, โดยที่ x (“เพดาน
ของ x”) หมายถึงจำานวนเต็มที่น้อยที่สุดที่  x
นั่นคือ x : min({≡ i∈Z|i≥x})
ตัวอย่าง เช่น : 2.3 = 3, 2 = 2, 0.5 = 1, -3.5 =
-3
26
ฟังก์ชั่น Floor & Ceiling
• จำานวนจริงที่มีค่า “ตกลงไปที่พื้น” หรือมีค่า “ขึ้น
ไปที่เพดาน”
• สังเกตว่า ถ้า x∉Z,
−x ≠ − x และ
x ≠ − x
• สังเกตว่า ถ้า x∈Z,
x = x = x
27
0
−1
1
2
3
−2
−3
.
.
.
.
.
.
. . .
1.6
1.6=2
−1.4= −2
−1.4
−1.4= −1
1.6=1
−3
−3=−3= −3
การวาดกราฟ floor/ceiling
• สำาหรับ f(a) = a, กราฟของ f จะรวมจุด (a,
0) สำาหรับทุกค่าของ a ที่ a≥0 และ a<1,
ยกเว้นในกรณีที่ค่า a = 1
• กล่าวได้ว่าเซตของจุด (a,0) ที่อยู่ใน f จะไม่
รวมจุดขอบ(boundary point) ของมัน หรือ
จุด (a,1)
–เซตที่ไม่รวมจุดขอบของมันจะเรียกว่าเซต
เปิด(open sets)
• ในการวาดกราฟ จะเขียนจุดขอบโดยใช้จุด
เปิด(วงกลมโปร่ง) ถ้าจุดขอบไม่ได้อยู่ในเส้น
28
ฟังก์ชันในมุมมองของนักคณิตศาสตร์
• นิยาม 4. กำาหนดให้ A และ B เป็นเซตใดๆ ให้ f
เป็นความสัมพันธ์จาก A ไป B จะกล่าวได้ว่า f
เป็นฟังก์ชันก็ต่อเมื่อ สำาหรับแต่ละ x Є A และ
แต่ละ y, z Є B
ถ้า (x, y) Є f และ (x, z) Є f แล้ว y=z
29
การวาดกราฟ floor/ceiling
• จงวาดกราฟของฟังก์ชั่น f(x) = x/3:
30
x
f(x)
กลุ่มของจุด (x, f(x))
+3
−2
+2
−3
ฟังก์ชันในมุมมองของนักคณิตศาสตร์
จากนิยามและข้อสังเกตของฟังก์ชันจะกล่าวได้ว่า
• ฟังก์ชัน f คือ กฎที่ได้ผลลัพธ์เพียงอย่างเดียวที่
สมนัยกับการใส่ข้อมูลเข้าไปในกฎนั้นๆ
31
x โปรแกรมคอมพิวเตอร์
Input Output
y
ฟังก์ชันในมุมมองของนักคณิตศาสตร์
• นิยาม 5. ให้ A และ B เป็นเซตใดๆ และ f เป็น
ฟังก์ชัน A ไป B ถ้า (x, y) Є f เรียก y ว่าตัวแปร
ตามที่ขึ้นกับตัวแปรอิสระ x นิยามโดย y เป็นค่า
ของฟังก์ชัน f ที่ x เขียนแทนด้วย y=f(x)
32
ฟังก์ชันในมุมมองของนักคณิตศาสตร์
• นิยาม 6. ให้ f:A->B และ g:B->C ฟังก์ชัน
ประกอบของ f และ g เขียนแทนด้วย g ○ f
กำาหนดโดย
(g ○ f)(a) = g(f(a)) สำาหรับ a Є A
นั้นคือ (g ○ f) = {(x,y)| y Є B, (x,y) Є f และ (y,z)
Є g}
33
a f(a) g(f(a))
(g○f)(a)
A B C
ฟังก์ชันในมุมมองของนักคณิตศาสตร์
34
x โปรแกรมคอมพิวเตอร์
Input Output
z
(g○f)(x)
x โปรแกรม
คอมพิวเตอร์
Input Output
zy
โปรแกรม
คอมพิวเตอร์
Output
f(x) g(f(x))
ฟังก์ชัน (Function in C)
35
• การออกแบบโปรแกรมในภาษา
ซีจะอยู่บนพื้นฐานของการ
ออกแบบโมดูล (Module Design)
• โดยการแบ่งโปรแกรมออกเป็น
งานย่อย ๆ (หรือโมดูล) แต่ละ
งานย่อยจะทำางานอย่างใดอย่าง
หนึ่งเท่านั้น และไม่ควรจะมีขนาด
ใหญ่จนเกินไป
36
รับข้อมูล 2 จำานวน
จากผู้ใช้บวกเลข 2 จำานวนแล้ว
เก็บผลลัพธ์แสดงผลลัพธ์ของ
การทำางาน
โปรแกรมเพื่อบวกเลขสองจำานวนที่รับจากผู้ใช้
และแสดงผลการคำานวณ
ตัวอย่า
งที่ 1
สามารถแบ่งการทำางานเป็นงานย่อยได้ดัง
37
ฟังก์ชันการรับ
ข้อมูลฟังก์ชันในการบวกเลข
ฟังก์ชันแสดงผลลัพธ์
จะได้ว่าโปรแกรมประกอบด้วยฟังก์ชัน 4
ฟังก์ชันคือ
ฟังก์ชันหลัก
ตัวอย่างที่
1 (ต่อ)
38
Source
filefunction
function
function
Source
filefunction
function
function
Obje
ct
file
Obje
ct
file
Librar
y file
Execut
e file
com
pile
com
pile
link
link
lin
k
ขั้นตอนการสร้าง
โปรแกรมด้วยภาษา C
39
รูปแบบของ
ฟังก์ชัน
ชนิดข้อมูลที่คืนค่า ชื่อฟังก์ชัน
( การประกาศตัวแปร )
{
การประกาศตัวแปร
ภายในฟังก์ชัน;
คำาสั่ง;
return (ค่าข้อมูลที่
int , char , float ,
double ฯลฯแบบที่ 1
40
รูปแบบของ
ฟังก์ชัน (ต่อ)
void ชื่อฟังก์ชัน ( การประกาศ
ตัวแปร )
{
การประกาศตัวแปร
ภายในฟังก์ชัน;
คำาสั่ง;
}
แบบที่ 2
41
ตัวอย่างที่
2แสดงการทำางานของโปรแกรมการบวก
เลขจำานวนจริง 2 จำานวนที่รับจากผู้ใช้
#include <stdio.h>
double InputDouble ( ) {
double x;
printf ( “nInput real value : “ );
scanf ( “%.2f ”, &x );
return ( x );
}
42
ตัวอย่างที่ 2
(ต่อ)
double SumDouble ( double
x, double y ) {
return ( x + y );
}
void PrintOut ( double x ) {
printf ( “n Result of
sum is : %.2f”, x );
}
43
ตัวอย่างที่ 2
(ต่อ)
void main ( ) {
double a1, a2,
sumVal;
a1 = InputDouble( );
a2 = InputDouble( );
sumVal = SumDouble
( a1, a2 );
PrintOut ( sumVal );
44
การประกาศโพรโทไทป์
ของฟังก์ชัน
การประกาศโปรโตไทป์เป็น
สิ่งจำาเป็นในภาษาซีเนื่องจาก
ภาษาซีเป็นภาษาในลักษณะที่
ต้องมีการประกาศฟังก์ชันก่อนจะ
เรียกใช้ฟังก์ชันนั้น (Pre-
defined Function)
45
• จากตัวอย่างที่ 1จะเห็นว่า
ฟังก์ชัน main ( ) จะอยู่ใต้
ฟังก์ชันอื่น ๆ ที่มีการเรียกใช้
เป็นลักษณะที่ต้องประกาศ
ฟังก์ชันที่ต้องการเรียกใช้ก่อน
จากเรียกใช้ฟังก์ชันนั้น
• แต่หากต้องการย้ายฟังก์ชัน
main ( ) ขึ้นไปไว้ด้านบน จะ
ต้องมีการประกาศโปรโตไทป์
46
#include <stdio.h>
double InputDouble
(double );
double SumDouble
( double , double );
void PrintOut ( double );
ตัวอย่าง
ที่ 3แสดงการทำางานของโปรแกรมการ
บวกเลขจำานวนจริง 2 จำานวน ที่รับ
จากผู้ใช้ ในลักษณะที่มีการ
ประกาศโปรโตไทป์
47
void main ( void ) {
double a1, a2,
sumVal;
a1 =
InputDouble( );
a2 =
InputDouble( );
sumVal =
ตัวอย่างที่ 3
(ต่อ)
48
จะเห็นว่าในโปรโตไทป์ไม่มีการประกาศชื่อตัวแปร
มีแต่การเขียนประเภทของตัวแปรไว้ภายในเป็นการ
ช่วยให้คอมไพเลอร์ สามารถตรวจสอบ
•จำานวนของตัวแปร
•ประเภทของตัวแปร
•ประเภทของการคืนค่า
ภายในโปรแกรมว่ามีการเรียกใช้งานสิ่งต่างๆเกี่ยว
กับฟังก์ชัน นั้นถูกต้องหรือไม่ นอกจากนี้เราอาจจะ
แยกส่วน โปรโตไทป์ไปเขียนไว้ในอินคลูชไฟล์ก็ได้
เช่นเดียวกัน
49
การเรียกใช้
ฟังก์ชัน
การเรียกใช้ฟังก์ชันที่มีการ
คืนค่า จะใช้รูปแบบดังต่อไปนี้
ค่าที่รับ = ฟังก์ชัน
(อาร์กิวเมนต์)
าที่ถูกคืนมาจากการทำางานของฟังก์ชั่น
50
a1 =a1 =
InputDouble ( );InputDouble ( );
ใช้คู่กับโปรโต
ไทป์
doubledouble
InputDouble ( );InputDouble ( );
ตัวอย่าง
ที่ 4
a1 ต้องมีชนิดเป็น double เนื่องจากค่าที่จะส่ง
คืนกลับมาจากฟังก์ชันมีชนิดเป็น double
51
sumVal =sumVal =
SumDouble (a1,a2 );SumDouble (a1,a2 );
ใช้คู่กับโปรโตไทป์
double InputDoubledouble InputDouble
( );( );
ตัวอย่าง
ที่ 5
a1 และ a2 ต้องมีชนิดเป็น double
เพื่อให้ตรงกับชนิดตัวแปรของอาร์กิวเมนท์
ที่ประกาศในโปรโตไทป์
52
PrintOut( sumVal )PrintOut( sumVal )
;;
ใช้คู่กับโปรโต
ไทป์
void PrintOutvoid PrintOut
( double );( double );
ตัวอย่าง
ที่ 6
ประกาศให้รู้ว่าฟังก์ชั่่นนี้ไม่มีการคืนค่า
53
ขอบเขต ( Scope)
การทำางานของโปรแกรม
ภาษาซี
• จะทำางานที่ฟังก์ชัน main ( )
ก่อนเสมอ
• เมื่อฟังก์ชัน main ( ) เรียกใช้
งานฟังก์ชันอื่น ก็จะมีการส่ง
คอนโทรล (Control) ที่ควบคุมการ
ทำางานไปยังฟังก์ชันนั้น ๆ จนกว่า
จะจบฟังก์ชัน หรือ พบคำาสั่ง
54
• เมื่อมีการเรียกใช้งานฟังก์ชัน
จะมีการจองพื้นที่หน่วยความจำา
สำาหรับตัวแปรที่ต้องใช้ภายใน
ฟังก์ชันนั้น
• เมื่อสิ้นสุดการทำางานของ
ฟังก์ชันก็จะมีการคืนพื้นที่หน่วย
ความจำาส่วนนั้นกลับสู่ระบบ
การใช้งานตัวแปรแต่ละตัวจะมี
ขอบเขตของการใช้งานขึ้นอยู่
ขอบเขต ( Scope)
(2)
55
a1
a2
sum
Val
mai
n ( )
xInputDou
ble ( )
a1 = InputDouble( );a1 = InputDouble( );
ตัวอย่า
งที่ 7
step1step1
จากตัวอย่างที่1 และตัวอย่าง
ที่ 2 สามารถ
แสดงขอบเขตการทำางานได้
ดังนี้
56
a1
a2
sum
Val
mai
n ( )
xInputDou
ble ( )
a2 = InputDouble( );a2 = InputDouble( );
ตัวอย่างที่ 7
(ต่อ)
step2step2
57
a1
a2
sum
Val
mai
n ( )
xsumDou
ble ( )
sumVal=SumDouble(a1,a2)sumVal=SumDouble(a1,a2)
ตัวอย่างที่ 7
(ต่อ)
Step3Step3
y
58
a1
a2
sum
Val
mai
n ( )
xPrintSum (
)
PrintSum(sumVal);PrintSum(sumVal);
ตัวอย่างที่ 7
(ต่อ)
step4step4
59
จะเห็นว่าตัวแปร x ที่ประกาศในแต่ละขั้น
ตอนจะทำางานอยู่ภายในฟังก์ชันที่มีการประกาศค่า
เท่านั้น และใช้พื้นที่ในการเก็บข้อมูลคนละส่วนกัน
ขอบเขตการทำางานของตัวแปรแต่ละตัวจะ
กำาหนดอยู่ภายในบล็อกของคำาสั่งภายใน
เครื่องหมายปีกกา ( { } ) หรือการประกาศในช่วง
ของการประกาศฟังก์ชัน เรียกตัวแปรเหล่านี้ว่า
ตัวแปรโลคอลตัวแปรโลคอล (Local(Local
Variable)Variable)
60
นอกจากนี้สามารถประกาศตัวแปร
ไว้ที่ภายนอกฟังก์ชันบริเวณส่วน
เริ่มของโปรแกรมจะเรียกว่า
ตัวแปรโกลบอลตัวแปรโกลบอล (Global(Global
Variable)Variable) ซึ่งเป็นตัวแปรที่
สามารถเรียกใช้ที่ตำาแหน่งใด ๆ ใน
โปรแกรมก็ได้ ยกเว้นในกรณีที่มี
การประกาศตัวแปรที่มีชื่อเดียวกัน
61
#include <stdio.h>
int x;
void func1 ( ) {
x = x + 10;
printf ( “func1 -> x :
%dn”, x );
}
ตัวอย่าง
ที่ 8แสดงการทำางานของโปรแกรมในลักษณะที่มี
ตัวแปรโกลบอล แสดงขอบเขตการใช้งาน
ของตัวแปรภายในโปรแกรม
62
void func2 ( int x ) {
x = x + 10;
printf ( “func2 -> x : %dn”, x );
}
void func3 ( ) {
int x=0;
x = x + 10;
printf ( “func3 -> x : %dn”, x );
}
ตัวอย่างที่ 8
(ต่อ)
63
void main ( ) {
x = 10;
printf ( “main (start) -> x :
%dn”, x );
func1 ( );
printf ( “main (after func1) -> x
: %dn”, x );
func2 ( x );
printf ( “main (after func2) -> x
: %dn”, x);
func3 ( );
ตัวอย่างที่
8 (ต่อ)
64
main (start) -> x :
10
func1 -> x : 20
main (after func1)
-> x : 20
func2 -> x : 30
main (after func2)
-> x : 20
ตัวอย่างที่
8 (ต่อ)
ผลการทำางาน
The End

More Related Content

What's hot

ระบบสมการเชิงเสัน
ระบบสมการเชิงเสันระบบสมการเชิงเสัน
ระบบสมการเชิงเสันkroojaja
 
ลิมิตของลำดับ
ลิมิตของลำดับลิมิตของลำดับ
ลิมิตของลำดับaoynattaya
 
เฉลยข้อสอบโอเน็ตคณิตศาสตร์ ม.ุ6 ปีการศึกษา 2555
เฉลยข้อสอบโอเน็ตคณิตศาสตร์ ม.ุ6 ปีการศึกษา 2555เฉลยข้อสอบโอเน็ตคณิตศาสตร์ ม.ุ6 ปีการศึกษา 2555
เฉลยข้อสอบโอเน็ตคณิตศาสตร์ ม.ุ6 ปีการศึกษา 2555ครู กรุณา
 
คู่อันดับและผลคูณคาร์ทีเซียน
คู่อันดับและผลคูณคาร์ทีเซียนคู่อันดับและผลคูณคาร์ทีเซียน
คู่อันดับและผลคูณคาร์ทีเซียนkroojaja
 
ฟังก์ชันลดและฟังก์ชันเพิ่ม
ฟังก์ชันลดและฟังก์ชันเพิ่มฟังก์ชันลดและฟังก์ชันเพิ่ม
ฟังก์ชันลดและฟังก์ชันเพิ่มY'Yuyee Raksaya
 
บทที่ 9 ความสัมพันธ์และฟังก์ชัน
บทที่ 9 ความสัมพันธ์และฟังก์ชันบทที่ 9 ความสัมพันธ์และฟังก์ชัน
บทที่ 9 ความสัมพันธ์และฟังก์ชันphaephae
 
ข้อสอบ Pat 1 + เฉลย
ข้อสอบ Pat 1 +  เฉลยข้อสอบ Pat 1 +  เฉลย
ข้อสอบ Pat 1 + เฉลยAunJan
 
เฉลยอนุพันธ์
เฉลยอนุพันธ์เฉลยอนุพันธ์
เฉลยอนุพันธ์krurutsamee
 
ข้อสอบคณิตศาสตร์ ม.2 เทอม 1 ชุดที่ 2
ข้อสอบคณิตศาสตร์ ม.2 เทอม 1 ชุดที่ 2ข้อสอบคณิตศาสตร์ ม.2 เทอม 1 ชุดที่ 2
ข้อสอบคณิตศาสตร์ ม.2 เทอม 1 ชุดที่ 2คุณครูพี่อั๋น
 
แบบฝึกทักษะคณิตศาสตร์เรื่องการบวกและการลบพหุนาม
แบบฝึกทักษะคณิตศาสตร์เรื่องการบวกและการลบพหุนามแบบฝึกทักษะคณิตศาสตร์เรื่องการบวกและการลบพหุนาม
แบบฝึกทักษะคณิตศาสตร์เรื่องการบวกและการลบพหุนามวชิรญาณ์ พูลศรี
 
พื้นที่ผิวและปริมาตร
พื้นที่ผิวและปริมาตรพื้นที่ผิวและปริมาตร
พื้นที่ผิวและปริมาตรJiraprapa Suwannajak
 
ข้อสอบคณิตศาสตร์ ม.2 เทอม 2 ชุดที่ 1
ข้อสอบคณิตศาสตร์ ม.2 เทอม 2 ชุดที่ 1ข้อสอบคณิตศาสตร์ ม.2 เทอม 2 ชุดที่ 1
ข้อสอบคณิตศาสตร์ ม.2 เทอม 2 ชุดที่ 1คุณครูพี่อั๋น
 
สมุดบันทึกกิจกรรมการเรียนรู้ชุดวิชาการใช้พลังงานไฟฟ้าในชีวิตประจำวัน 3 พว32023
สมุดบันทึกกิจกรรมการเรียนรู้ชุดวิชาการใช้พลังงานไฟฟ้าในชีวิตประจำวัน 3 พว32023สมุดบันทึกกิจกรรมการเรียนรู้ชุดวิชาการใช้พลังงานไฟฟ้าในชีวิตประจำวัน 3 พว32023
สมุดบันทึกกิจกรรมการเรียนรู้ชุดวิชาการใช้พลังงานไฟฟ้าในชีวิตประจำวัน 3 พว32023Kasem Boonlaor
 

What's hot (20)

ระบบสมการเชิงเสัน
ระบบสมการเชิงเสันระบบสมการเชิงเสัน
ระบบสมการเชิงเสัน
 
ลิมิต
ลิมิตลิมิต
ลิมิต
 
ลิมิตของลำดับ
ลิมิตของลำดับลิมิตของลำดับ
ลิมิตของลำดับ
 
เฉลยข้อสอบโอเน็ตคณิตศาสตร์ ม.ุ6 ปีการศึกษา 2555
เฉลยข้อสอบโอเน็ตคณิตศาสตร์ ม.ุ6 ปีการศึกษา 2555เฉลยข้อสอบโอเน็ตคณิตศาสตร์ ม.ุ6 ปีการศึกษา 2555
เฉลยข้อสอบโอเน็ตคณิตศาสตร์ ม.ุ6 ปีการศึกษา 2555
 
แรงไฟฟ้าและสนามไฟฟ้าสถิต
แรงไฟฟ้าและสนามไฟฟ้าสถิตแรงไฟฟ้าและสนามไฟฟ้าสถิต
แรงไฟฟ้าและสนามไฟฟ้าสถิต
 
คู่อันดับและผลคูณคาร์ทีเซียน
คู่อันดับและผลคูณคาร์ทีเซียนคู่อันดับและผลคูณคาร์ทีเซียน
คู่อันดับและผลคูณคาร์ทีเซียน
 
Function
FunctionFunction
Function
 
ฟังก์ชันลดและฟังก์ชันเพิ่ม
ฟังก์ชันลดและฟังก์ชันเพิ่มฟังก์ชันลดและฟังก์ชันเพิ่ม
ฟังก์ชันลดและฟังก์ชันเพิ่ม
 
บทที่ 9 ความสัมพันธ์และฟังก์ชัน
บทที่ 9 ความสัมพันธ์และฟังก์ชันบทที่ 9 ความสัมพันธ์และฟังก์ชัน
บทที่ 9 ความสัมพันธ์และฟังก์ชัน
 
ข้อสอบ Pat 1 + เฉลย
ข้อสอบ Pat 1 +  เฉลยข้อสอบ Pat 1 +  เฉลย
ข้อสอบ Pat 1 + เฉลย
 
เฉลยอนุพันธ์
เฉลยอนุพันธ์เฉลยอนุพันธ์
เฉลยอนุพันธ์
 
ปริพันธ์
ปริพันธ์ปริพันธ์
ปริพันธ์
 
ข้อสอบคณิตศาสตร์ ม.2 เทอม 1 ชุดที่ 2
ข้อสอบคณิตศาสตร์ ม.2 เทอม 1 ชุดที่ 2ข้อสอบคณิตศาสตร์ ม.2 เทอม 1 ชุดที่ 2
ข้อสอบคณิตศาสตร์ ม.2 เทอม 1 ชุดที่ 2
 
แบบฝึกทักษะคณิตศาสตร์เรื่องการบวกและการลบพหุนาม
แบบฝึกทักษะคณิตศาสตร์เรื่องการบวกและการลบพหุนามแบบฝึกทักษะคณิตศาสตร์เรื่องการบวกและการลบพหุนาม
แบบฝึกทักษะคณิตศาสตร์เรื่องการบวกและการลบพหุนาม
 
พื้นที่ผิวและปริมาตร
พื้นที่ผิวและปริมาตรพื้นที่ผิวและปริมาตร
พื้นที่ผิวและปริมาตร
 
ข้อสอบคณิตศาสตร์ ม.2 เทอม 2 ชุดที่ 1
ข้อสอบคณิตศาสตร์ ม.2 เทอม 2 ชุดที่ 1ข้อสอบคณิตศาสตร์ ม.2 เทอม 2 ชุดที่ 1
ข้อสอบคณิตศาสตร์ ม.2 เทอม 2 ชุดที่ 1
 
แบบทดสอบ เรื่องพหุนาม
แบบทดสอบ เรื่องพหุนามแบบทดสอบ เรื่องพหุนาม
แบบทดสอบ เรื่องพหุนาม
 
สมุดบันทึกกิจกรรมการเรียนรู้ชุดวิชาการใช้พลังงานไฟฟ้าในชีวิตประจำวัน 3 พว32023
สมุดบันทึกกิจกรรมการเรียนรู้ชุดวิชาการใช้พลังงานไฟฟ้าในชีวิตประจำวัน 3 พว32023สมุดบันทึกกิจกรรมการเรียนรู้ชุดวิชาการใช้พลังงานไฟฟ้าในชีวิตประจำวัน 3 พว32023
สมุดบันทึกกิจกรรมการเรียนรู้ชุดวิชาการใช้พลังงานไฟฟ้าในชีวิตประจำวัน 3 พว32023
 
แบบฝึกการคูณและหารพหุนาม
แบบฝึกการคูณและหารพหุนามแบบฝึกการคูณและหารพหุนาม
แบบฝึกการคูณและหารพหุนาม
 
36 ความสัมพันธ์และฟังก์ชัน ตอนที่7_ฟังก์ชันประกอบ
36 ความสัมพันธ์และฟังก์ชัน ตอนที่7_ฟังก์ชันประกอบ36 ความสัมพันธ์และฟังก์ชัน ตอนที่7_ฟังก์ชันประกอบ
36 ความสัมพันธ์และฟังก์ชัน ตอนที่7_ฟังก์ชันประกอบ
 

Similar to Function

ความสัมพันธ์และฟังก์ชัน
ความสัมพันธ์และฟังก์ชันความสัมพันธ์และฟังก์ชัน
ความสัมพันธ์และฟังก์ชันJiraprapa Suwannajak
 
ฟังก์ชันประกอบ
ฟังก์ชันประกอบฟังก์ชันประกอบ
ฟังก์ชันประกอบY'Yuyee Raksaya
 
ความสัมพันธ์และฟังก์ชัน
ความสัมพันธ์และฟังก์ชันความสัมพันธ์และฟังก์ชัน
ความสัมพันธ์และฟังก์ชันguest5ec5625
 
ฟังก์ชัน1
ฟังก์ชัน1ฟังก์ชัน1
ฟังก์ชัน1Inmylove Nupad
 
สรุป%20ความสัมพันธ์และฟังก์ชัน[1]
สรุป%20ความสัมพันธ์และฟังก์ชัน[1]สรุป%20ความสัมพันธ์และฟังก์ชัน[1]
สรุป%20ความสัมพันธ์และฟังก์ชัน[1]aon04937
 
ฟังก์ชัน
ฟังก์ชันฟังก์ชัน
ฟังก์ชันYingying Apinya
 
ข้อสอบเอ็นทรานซ์ คณิตศาสตร์ มีนาคม 2546
ข้อสอบเอ็นทรานซ์ คณิตศาสตร์ มีนาคม 2546ข้อสอบเอ็นทรานซ์ คณิตศาสตร์ มีนาคม 2546
ข้อสอบเอ็นทรานซ์ คณิตศาสตร์ มีนาคม 2546Trd Wichai
 
เลขยกกำลังและลอการิทึม
เลขยกกำลังและลอการิทึมเลขยกกำลังและลอการิทึม
เลขยกกำลังและลอการิทึมJiraprapa Suwannajak
 

Similar to Function (20)

ความสัมพันธ์และฟังก์ชัน
ความสัมพันธ์และฟังก์ชันความสัมพันธ์และฟังก์ชัน
ความสัมพันธ์และฟังก์ชัน
 
ฟังก์ชันประกอบ
ฟังก์ชันประกอบฟังก์ชันประกอบ
ฟังก์ชันประกอบ
 
ความสัมพันธ์และฟังก์ชัน
ความสัมพันธ์และฟังก์ชันความสัมพันธ์และฟังก์ชัน
ความสัมพันธ์และฟังก์ชัน
 
ฟังก์ชัน
ฟังก์ชันฟังก์ชัน
ฟังก์ชัน
 
ความสัมพันธ์และฟังก์ชัน
ความสัมพันธ์และฟังก์ชันความสัมพันธ์และฟังก์ชัน
ความสัมพันธ์และฟังก์ชัน
 
Function1
Function1Function1
Function1
 
Math1 new
Math1 newMath1 new
Math1 new
 
ฟังก์ชัน1
ฟังก์ชัน1ฟังก์ชัน1
ฟังก์ชัน1
 
Function3
Function3Function3
Function3
 
สรุป%20ความสัมพันธ์และฟังก์ชัน[1]
สรุป%20ความสัมพันธ์และฟังก์ชัน[1]สรุป%20ความสัมพันธ์และฟังก์ชัน[1]
สรุป%20ความสัมพันธ์และฟังก์ชัน[1]
 
ฟังก์ชัน
ฟังก์ชันฟังก์ชัน
ฟังก์ชัน
 
Relation and function
Relation and functionRelation and function
Relation and function
 
ข้อสอบเอ็นทรานซ์ คณิตศาสตร์ มีนาคม 2546
ข้อสอบเอ็นทรานซ์ คณิตศาสตร์ มีนาคม 2546ข้อสอบเอ็นทรานซ์ คณิตศาสตร์ มีนาคม 2546
ข้อสอบเอ็นทรานซ์ คณิตศาสตร์ มีนาคม 2546
 
เลขยกกำลังและลอการิทึม
เลขยกกำลังและลอการิทึมเลขยกกำลังและลอการิทึม
เลขยกกำลังและลอการิทึม
 
ฟังก์ชัน
ฟังก์ชันฟังก์ชัน
ฟังก์ชัน
 
Expo
ExpoExpo
Expo
 
Expo
ExpoExpo
Expo
 
Expo
ExpoExpo
Expo
 
Expo
ExpoExpo
Expo
 
7
77
7
 

More from Akkradet Keawyoo

ความรู้เบื้องต้นเกี่ยวกับระเบียบวิธีทางสถิติ
ความรู้เบื้องต้นเกี่ยวกับระเบียบวิธีทางสถิติความรู้เบื้องต้นเกี่ยวกับระเบียบวิธีทางสถิติ
ความรู้เบื้องต้นเกี่ยวกับระเบียบวิธีทางสถิติAkkradet Keawyoo
 
ความน่าจะเป็น
ความน่าจะเป็นความน่าจะเป็น
ความน่าจะเป็นAkkradet Keawyoo
 
Chapter 1 : ทบทวนภาษาจาวา
Chapter 1 : ทบทวนภาษาจาวาChapter 1 : ทบทวนภาษาจาวา
Chapter 1 : ทบทวนภาษาจาวาAkkradet Keawyoo
 
แนะนำรายวิชา
แนะนำรายวิชาแนะนำรายวิชา
แนะนำรายวิชาAkkradet Keawyoo
 
ระบบเลขฐาน
ระบบเลขฐานระบบเลขฐาน
ระบบเลขฐานAkkradet Keawyoo
 
ประมวลการสอน
ประมวลการสอนประมวลการสอน
ประมวลการสอนAkkradet Keawyoo
 

More from Akkradet Keawyoo (13)

Trees
TreesTrees
Trees
 
ความรู้เบื้องต้นเกี่ยวกับระเบียบวิธีทางสถิติ
ความรู้เบื้องต้นเกี่ยวกับระเบียบวิธีทางสถิติความรู้เบื้องต้นเกี่ยวกับระเบียบวิธีทางสถิติ
ความรู้เบื้องต้นเกี่ยวกับระเบียบวิธีทางสถิติ
 
ความน่าจะเป็น
ความน่าจะเป็นความน่าจะเป็น
ความน่าจะเป็น
 
Graphs
GraphsGraphs
Graphs
 
Relations
RelationsRelations
Relations
 
Bonus 1
Bonus 1Bonus 1
Bonus 1
 
Lab 1
Lab 1Lab 1
Lab 1
 
Chapter 1 : ทบทวนภาษาจาวา
Chapter 1 : ทบทวนภาษาจาวาChapter 1 : ทบทวนภาษาจาวา
Chapter 1 : ทบทวนภาษาจาวา
 
แนะนำรายวิชา
แนะนำรายวิชาแนะนำรายวิชา
แนะนำรายวิชา
 
Logic
LogicLogic
Logic
 
SET
SETSET
SET
 
ระบบเลขฐาน
ระบบเลขฐานระบบเลขฐาน
ระบบเลขฐาน
 
ประมวลการสอน
ประมวลการสอนประมวลการสอน
ประมวลการสอน
 

Function

Editor's Notes

  1. 09/05/13 ssssssssssssssssssssssssssssssssssssssssssssssss
  2. 09/05/13 sssssssssssssssssssssssssssssssss
  3. 09/05/13 sssssssssssssssssssssssssssssssss
  4. 09/05/13 ssssssssssssssssssssssssssssssssssssssss
  5. 09/05/13 ssssssssssssssssssssssssssssssssssssss
  6. 09/05/13 ssssssssssssssssssssssssssssssssssssssssssssssss