ความสัมพันธ์และฟังก์ชัน(Relations and Functions) ความสัมพันธ์ และฟังก์ชัน การพัฒนาโปรแกรมกับฟังก์ชัน
คู่อันดับ
คู่อันดับประกอบด้วยสมาชิกสองตัว เขียนแทนคู่อันดับในรูป (a,b) โดยที่ a เป็นสมาชิกตัว
หน้า และ b เป็นสมาชิกตัวหลัง
การสลับที่กันของคู่อันดับระหว่างสมาชิกตัวหน้ากับสมาชิกตัวหลัง (a,b) (b,a) จะท าให้
ความหมายของคู่อันดับเกิดการเปลี่ยนทันที ดังนั้น จึงสามารถสรุปหลักการของคู่อันดับได้ ดังนี้
1. ถ้า (a,b) = (b,a) ก็ต่อเมื่อ a=b
2. ถ้า (a,b) = (c,d) ก็ต่อเมื่อ a=c และ b=d
3. ถ้า (a,b) (c,d) ก็ต่อเมื่อ a c หรือ b d
ผลคูณคาร์ทีเชียน
ผลคูณคาร์ทีเชียนของเซต A และ B คือ เซตของคู่อันดับ (a,b) ที่มีสมาชิกตัวหน้าเป็น
เซตของ A และสมาชิกตัวหลังเป็นเซตของ B กล่าวคือ
AxB = {(a,b) | a∊A, b∊B}
สมบัติของผลคูณคาร์ทีเชียล
ก าหนด A, B และ C เป็นเซตใดๆ
1. AxB BxA
2. Ax⏀=⏀xA=⏀
3. AxB=BxA ก็ต่อเมื่อ A=B หรือ A=⏀ หรือ B=⏀
4. Ax(B∪C)=(AxB)∪(AxC)
5. Ax(B∩C)=(AxB)∩(AxC)
6. Ax(B-C)=(AxB)-(AxC)
7. ถ้า A และ B เป็นเซตจากัดแล้ว n(AxB) = n(A) x n(B)
8. ถ้า A เป็นเซตอนันต์ และ B เป็นเซตจากัด ซึ่ง B 0 แล้ว AxB และ BxA เป็น เซตอนันต์
ความสัมพันธ์
– r เป็นความสัมพันธ์จากเซต A ไปเซต B ก็ต่อเมื่อ r⊂AxB
– r เป็นความสัมพันธ์ในเซต A ก็ต่อเมื่อ r⊂AxA
– จ านวนความสัมพันธ์จากเซต A ไปเซต B เท่ากับ 2n(AxB)
– เป็นความสัมพันธ์จากเซต A ไปเซต B เนื่องจาก ⏀⊂AxB
โดเมนและเรนจ์ของความสัมพันธ์
โดเมนของความสัมพันธ์ เรนจ์ของความสัมพันธ์
เซตของสมาชิกตัวหน้าของคู่อันดับ ทั้งหมดใน
ความสัมพันธ์นั้น กล่าวคือ พิกัด x ทั้งหมดที่
ยอมรับได้เขียนแทนด้วย Dr={x | (x,y)∊r}
เซตของสมาชิกตัวหลังของคู่อันดับทั้งหมดของ
ความสัมพันธ์นั้นกล่าวคือ พิกัด y ทั้งหมดที่
ยอมรับได้ เขียนแทนด้วย Rr={y | (x,y)∊r}
ฟังก์ชัน (Function)
นิยาม: ฟังก์ชัน คือ ความสัมพันธ์ซึ่งทุกๆ คู่อันดับที่เป็นสมาชิกของความสัมพันธ์นั้น สมาชิกตัว
หน้าของคู่อันดับต้องไม่ซ้ากัน
ฟังก์ชัน คือ ชุดของการทํางาน ที่ถูกเขียนขึ้นให้โปรแกรมเมอร์สามารถ
เรียกใช้งานได้โดยง่าย
** ฟังก์ชัน คือ ชุดของการทํางาน
** ฟังก์ชัน ถูกเรียกใช้งานได้
ปัญหาที่เกิดขึ้นในการพัฒนาโปรแกรมที่ซับซ้อน
• โปรแกรมเมอร์ไม่สามารถทราบการทํางานของระบบโดยละเอียดได้เช่น
ไม่ทราบกระบวนการส่งข้อมูลผ่านเครือข่าย แต่ต้องเขียนโปรแกรมเพื่อ
เชื่อมต่อระบบเครือข่าย
• โปรแกรมเมอร์ไม่สามารถทราบขั้นตอนการทํางานของคอมพิวเตอร์
ทั้งหมดได้ เช่น ทําอย่างไรตัวอักษรจึงปรากฏในหน้าจอภาพได้
• โปรแกรมบางโปรแกรมมีการทํางานที่ซับซ้อน และการทํางานซับซ้อน
นั้นถูกเรียกใช้งานบ่อยครั้งเช่น การหาผลลัพธ์ทางวิทยาศาสตร์ การ
วิเคราะห์ข้อมูลขนาดใหญ่เป็นต้น
การพัฒนาโปรแกรมกับฟังก์ชัน
วิธีการแก้ไข
• เพื่อให้โปรแกรมเมอร์สามารถทํางานได้โดยไม่จําเป็นต้องทราบ
รายละเอียดการทํางานทั้งหมดของระบบ จะให้โปรแกรมเมอร์ที่ทราบการทํางานโดยละเอียดของกระบวนการต่างๆ จะเขียนชุดคําสั่งในรูปแบบของ
ฟังก์ชัน แล้วแจกจ่ายให้โปรแกรมเมอร์อื่นๆ ได้ใช้งาน
• โปรแกรมเมอร์สามารถเรียกใช้ฟังก์ชันโดยทราบเพียงวิธีการใช้งาน และ
ผลลัพธ์ที่เกิดขึ้นหลังจากเรียกใช้งานฟังก์ชันเท่านั้น
– เช่น โปรแกรมเมอร์ที่ไม่ทราบว่าทําอย่างไรตัวอักษรจึงจะปรากฎหน้าจอ
สามารถใช้คําสั่ง printf ได้เลย โดยโปรแกรมเมอร์จะทราบเพียงแค่ การเรียก
printf จะทําให้มีตัวอักษรปรากฎบนหน้าจอได้เท่านั้น
ข้อดีของฟังก์ชัน
ทําให้โปรแกรมเมอร์สามารถพัฒนาโปรแกรมได้โดยง่าย โดยโปรแกรมเมอร์ไม่จําเป็นต้องทราบว่าการทํางานของฟังก์ชันทํางาน
อย่างไรทราบเพียงผลลัพธ์ของการทํางานเท่านั้น
• โปรแกรมเมอร์สามารถเขียนโปรแกรมให้มีการทํางานที่ซับซ้อนได้ โดยไม่จําเป็นต้องเขียนโปรแกรมส่วนที่ซับซ้อนนั้นหลายๆ ครั้ง
• โปรแกรมเมอร์สามารถออกแบบฟังก์ชันได้ตามความต้องการของโปรแกรมเมอร์