บทที่ 9 เซต (Set) เซต หมายถึงกลุ่ม ฝูง พวก ชุด ของสิ่งใดสิ่งหนึ่ง เช่น เพศ ประกอบด้วย หญิง และ ชาย รายการที่อยู่ในเซต เรียกว่าสมาชิก เซตย่อย (Subset) คือ.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โปรแกรมฝึกหัด การเลื่อนและคลิกเมาส์
Advertisements

การซ้อนทับกัน และคลื่นนิ่ง
บทที่ 2 ภาษาปาลคาลเบื้องต้น.
ควบคุมการทำงานด้วยเงื่อนไข Control Statement
Control Statement if..else switch..case for while do-while.
การรับค่าและแสดงผล.
User Defined Simple Data Type
โครงสร้างควบคุมและคำสั่งแบบเงื่อนไข
เฉลย Lab 10 Loop.
LAB # 5.
Week 6 ประกาศค่าตัวแปร.
Repetitive Statements (Looping)
ฟังก์ชั่น function.
โครงสร้างคำสั่งแบบเลือก (Selection)
ภาษาปาสคาล ผู้สร้าง Dr.Niklaus Wirth ปี 2513
คำสั่งเงื่อนไขและการควบคุม
การรับข้อมูล และ การแสดงผล
การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design
PROCEDURE <<โปรแกรมย่อย>>
คำสั่งแบบมีเงื่อนไข IF Statement
Object-Oriented System Analysis and Design
1 RECORD TYPE ข้อมูลชนิดเรคอร์ด SCC : Suthida Chaichomchuen
ตัวอย่างการใช้คำสั่ง IF_THEN
WHILE..DO คำสั่งควบคุมให้ทำงานซ้ำ โดยที่ต้องตรวจสอบเงื่อนไขก่อนที่จะทำ
คำสั่ง Repeat...Until คำสั่งควบคุมให้ทำงานซ้ำ
ตัวอย่างคำสั่ง FOR.
ตัวอย่างคำสั่ง CASE.
การเขียนโปรแกรมคอมพิวเตอร์และอัลกอริธึม
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
บทที่ 3 ตัวดำเนินการ และ นิพจน์
บทที่ 9 การรับและแสดงผลข้อมูล
บทที่ 2 ประเภทข้อมูล (DATA TYPE)
บทที่ 7 การกำหนดชนิดข้อมูลใหม่
Electronic Commerce เว็บฟอร์ม (Web Form).
ธนาวินท์ รักธรรมานนท์
Kampol chanchoengpan it สถาปัตยกรรมคอมพิวเตอร์ Arithmetic and Logic Unit 1.
ภาควิชาวิทยาศาสตร์ประยุกต์ คณะวิทยาศาสตร์เทคโนโลยีและการเกษตร
Chapter 4 คำสั่งควบคุมทิศทาง
ตัวแปรกับชนิดของข้อมูล
คิว ลักษณะการทำงานของ Queue การดำเนินการของ Queue การตรวจสอบ Queue
สแตค(stack) โครงสร้างข้อมูลแบบ Stack - การสร้าง Stack
ง30212 การเขียนโปรแกรมภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
โครงสร้างแบบลำดับ คำสั่ง x คำสั่ง y.
คำสั่งควบคุมการทำงานของ ActionScripts
สถาปัตยกรรมคอมพิวเตอร์ (Computer Architecture)
TURBO PASCAL OUTLINE 1. บทนำเกี่ยวกับการเขียนโปรแกรมภาษาปาสคาล
Lecture 4 เรคอร์ด.
Computer Programming for Engineers
การประมวลผลสายอักขระ
บทที่ 10 คำสั่งควบคุม OUTLINE 1. คำสั่งแบบเรียงลำดับ (Sequence)
บทที่ 8 ตัวดำเนินการ และ นิพจน์
หลักการเขียนโปรแกรม ( )
หลักการเขียนโปรแกรม ( )
In-Class Exercises Discrete Mathematics
ตัวแปร Array แบบ 1 มิติ การเขียนโปรแกรมแบบวนซ้ำ
ภาษาอังกฤษเพื่อการสื่อสาร อ32204
หลักการเขียนโปรแกรม ( )
หน่วยที่ 4 โครงสร้างโปรแกรมภาษาซี
บทที่ 7 เงื่อนไขในภาษาซี
CONDITION Computer Programming Asst. Prof. Dr. Choopan Rattanapoka.
บทที่ 6 พจนานุกรมข้อมูล และ คำอธิบายกระบวนการ
การเขียนโปรแกรม (ภาษาซี)
อาจารย์ชนิดา เรืองศิริวัฒนกุล หลักสูตรสาขาวิชาเทคโนโลยีสารสนเทศ
C-Programming บทที่ 8 การทำซ้ำ C Programming.
การรับและแสดงผลข้อมูล (Input/Output)
1 บทที่ 5 โปรแกรมย่อย Part II Function. 2 ฟังก์ชัน (Function) เป็นชุดคำสั่งย่อยที่มีหน้าที่เฉพาะอย่างใดอย่างหนึ่ง เหมือนกับ procedure สามารถมีการรับส่งค่าข้อมูล.
บทที่ 5 โปรแกรมย่อย.
การเขียนโปรแกรมภาษาปาสคาล โดยใช้โครงสร้างหลักทั้ง 3 โครงสร้าง
การเขียนโปรแกรม ภาษาปาสคาล (Pascal)
การเขียนโปรแกรมคอมพิวเตอร์
ใบสำเนางานนำเสนอ:

บทที่ 9 เซต (Set) เซต หมายถึงกลุ่ม ฝูง พวก ชุด ของสิ่งใดสิ่งหนึ่ง เช่น เพศ ประกอบด้วย หญิง และ ชาย รายการที่อยู่ในเซต เรียกว่าสมาชิก เซตย่อย (Subset) คือ เซตย่อยที่อยู่ภายในเซตนั้น เช่น ทารกเพศชาย หรือ ทารกเพศหญิง เป็น เซตย่อยของเพศ

เซต (Set) ปาสคาล สามารถประมวลผลเรื่องเซต ได้ เช่น if ((age >= 15) and (age <= 25)) or ((age>=60) and (age <=70)) then…. สามารถเขียนให้สั้นง่ายได้ดังนี้ if age in [12..25],[60..70] then…..

สมาชิกเซต สมาชิกของเซต จะเขียนอยู่ในเครื่องหมาย [ ] [] หมายถึงไม่มีสมาชิก [1,2,10] หมายถึงมีสมาชิก 1, 2 และ 10 [1..10] หมายถึงมีสมาชิก 1 ถึง 10 [‘a’..’z’] หมายถึงมีสมาชิก a,b,c จนถึง z [1..10,30..50] หมายถึงมีสมาชิกเป็น integer 1ถึง10 และ 30ถึง50

สมาชิกเซต [mon,tue,wed,thu,fri] หมายถึงมีสมาชิกเป็นวันตั้งแต่จันทร์ถึงศุกร์ อาจเขียน [mon..fri] ลำดับที่ และ จำนวนครั้งของสมาชิกไม่มีความแตกต่าง เช่น [1,2,3] หรือ [2,1,2,3] มีความหมายเหมือนกัน ในหนึ่งเซตมีจำนวนสมาชิกไม่เกิน 256 รายการ

วิธีกำหนดข้อมูลให้กับเซต การกำหนดใช้คำสั่ง Set of มีรูปแบบดังนี้ TYPE ชื่อเซต = SET OF base type base type หมายถึงข้อมูลที่มีลำดับ

วิธีกำหนดข้อมูลให้กับเซต Type dayofmonth = set of 1..31; Capletter = set of ‘A’..’Z’; primarycolor = set of (red,bule,green); day=(mon,tue,wed,thu,fri,sat,sun); week = set of day; ความหมาย 1 เดือนมีวัน 1 ถึง 30 วัน เซตตัวอักษรมี A ถึง Z เซตแม่สีมี สีแดง เขียว น้ำเงิน กำหนดเซตค่าจาก Enumerate

การประกาศเซต การประกาศเซต อาจกำหนดแบบค่าคงที่ภายใต้ CONST หรือ ตัวแปรภายใต้ TYPE เช่น Type digits = set of 0..9; var num : digit ; หรือ CONST odddigits := digits= [1,3,5,7,9]; evenditits:= digits= [2,4,6,8];

เซตแบบ Constant การกำหนดสระ TYPE LETTER = SET OF ‘A’..’Z’; CONST VOWEL : LETTER = [‘A’,’E’,’I’,’O’,’U’]; การกำหนดเลขฐาน 16 CONST HEX : SET OF ‘0’..’Z’ =[‘0’..’9’,’A’..’F’,’a’..’f’];

เซตแบบ Variable VOWEL := [‘A’,’E’,’I’,’O’,’U’]; TYPE LETTER = SET OF ‘A’..’Z’; VAR VOWEL,CONSONANTS : LETTER; BEGIN VOWEL := [‘A’,’E’,’I’,’O’,’U’]; CONSONANTS := LETTER - VOWEL;

WEEKEND := [SUN,SAT]; TYPE day=(mon,tue,wed,thu,fri,sat,sun); VAR WORKDAY,WEEKEND: DAY; BEGIN WEEKEND := [SUN,SAT]; WORKDAY := DAY - WEEKEND;

โอเปอเรชันของเซต Union Intersection Difference

Difference Union เป็นการรวม 2 เซต(+)เข้าด้วยกันโดยเซตใหม่ มีจำนวนสมาชิกของทั้ง 2 เซต เช่น set [‘a’,’b’] + set [‘c’,’g’,’m’] จะได้ [‘a’,’b’ ,‘c’,’g’,’m’]

Difference Difference เป็นการหาผลต่าง (-)ระหว่างเซต 2 เซต โดยผลลัพธ์จะเป็นสมาชิกของเซตด้านซ้าย ที่ไม่อยู่ ในเซตด้านขวามือ เช่น [‘b’…’j’] - [‘e’,’g’..’y’] จะได้ [‘b’..’d’,’f’]

Intersection Intersection เป็นการสร้างเซตใหม่ที่รวม( *) เอาสมาชิกที่เหมือนกันทั้ง 2 เซตเข้าด้วยกัน เช่น [2..7,10,12] * [1..5,11..6] จะได้ [2..5,12]

Relation Relation ความสัมพันธ์อันเกิดจากการเปรียบเทียบของเซต มีคำตอบเป็น จริงกับเท็จ มี 5 แบบคือ เซตเท่ากัน (Equality) เซตไม่เท่ากัน (Inequality) ซับเซต (Subset) ซูเปอร์เซต(Superset) เป็นสมาชิกของเซต (Set member)

เซตเท่ากัน (Equality) [1,4] = [1,4] ผลลัพธ์เป็น true [1,4] = [2,4] ผลลัพธ์เป็น false [4,1] = [1,4] ผลลัพธ์เป็น true [] = [0] ผลลัพธ์เป็น false

เซตไม่เท่ากัน (Inequality) [1,4] <> [1,4] ผลลัพธ์เป็น false [1,4] <> [2,4] ผลลัพธ์เป็น ture [4,1] <> [1,4] ผลลัพธ์เป็น false [] <> [0] ผลลัพธ์เป็น ture

ซับเซต (Subset) ซับเซต (Subset) ใช้เครื่องหมาย <= ถ้าสมาชิกทุกตัวของเซตซ้ายมือ เป็นสมาชิกใน เซตขวามือ ผลลัพธ์เป็นจริง [1,3] <= [1,3] ผลลัพธ์เป็น true [1,3] <= [1..5] ผลลัพธ์เป็น true [‘a’,’p’] <= [‘a’,’q’..’z’] ผลลัพธ์เป็น false [1,2,3,4] <= [1,4] ผลลัพธ์เป็น false

ซูเปอร์เซต(Superset) ถ้าสมาชิกทุกตัวของเซตขวามือเป็นสมาชิกในเซตซ้ายมือ ผลลัพธ์เป็นจริง [1,3] >= [1,3] ผลลัพธ์เป็น true [1,3] >= [1..5] ผลลัพธ์เป็น false [‘a’,’p’] >= [‘a’,’q’..’z’] ผลลัพธ์เป็น false [1,2,3,4] >= [1,4] ผลลัพธ์เป็น ture

เป็นสมาชิกของเซต (Set member) เป็นสมาชิกของเซต (Set member) ใช้เครื่องหมาย IN ค่าทางซ้ายของ IN เป็นสมาชิกของเซตขาวมือ ผลลัพธ์เป็นจริง A IN [‘A’..’Z’] ผลลัพธ์เป็น true Z IN [‘A’..’N’] ผลลัพธ์เป็น false 5 IN [15..30] ผลลัพธ์เป็น false 10 IN [1..17] ผลลัพธ์เป็น true

การใช้เซตในโปรแกรม โปรแกรม 1. ( a=w) and (b=w) and (c=w) 2. ( a=w) or (b=w) or (c=w) 3. if ((age >= 15) and (age <= 25)) or ((age>=60) and (age <=70)) then…. การใช้เซต [a,b,c] = [w] w in [a,b,c] if age in [12..25],[60..70] then…..

การใช้เซตในโปรแกรม Read (choice); CASE choice OF ‘1’ : add; if choice in [1,2,3,4] then CASE choice OF ‘1’ : add; ‘2’ : delete; ‘3’ : update; ‘4’: exit; end; Read (choice); CASE choice OF ‘1’ : add; ‘2’ : delete; ‘3’ : update; ‘4’: exit; end;

การรับและแสดงค่าในเซต ไม่สามารถใช้คำสั่ง Read หรือ Write ได้โดยตรง เช่น var letter : set of ‘a’..’z’; write(letter); read(letter); ไม่ได้ ต้องอาศัยคำสั่ง IF หรือ Case

การรับและแสดงค่าตัวเลขในเซต โปรแกรมทำการเก็บเลขคู่ และ เลขคี่เข้าไว้ในเซต พร้อมทำการพิมพ์ค่า program setget1; uses wincrt; const max = 30; type numset = set of 1..max; var odd,even: numset; i : integer;

การรับและแสดงค่าตัวเลขในเซต begin odd := []; even := []; for i:= 1 to max do if i mod 2 > 0 then even := even + [i] {letter := [1..max] - odd;} else odd := odd + [i] end;

การรับและแสดงค่าตัวเลขในเซต writeln('***** ODD number ********'); for i:= 1 to max do if i in odd then write(i,' '); writeln; writeln('*********even number ********'); for i:= 1 to max do if i in even then write(i,' '); end.

การรับและแสดงค่าตัวอักษรในเซต โปรแกรมทำการเก็บสระ และ พยานชนะเข้าไว้ในเซต พร้อมทำการพิมพ์ค่า program setget2; uses wincrt; type letterset = set of 'a'..'z'; var letter, vowels:letterset; i : char; begin vowels := []; for i:= 'a' to 'z' do

การรับและแสดงค่าตัวอักษรในเซต begin if i= 'a' then vowels := vowels +[i]; if i= 'e' then vowels := vowels +[i]; if i= 'i' then vowels := vowels +[i]; if i= 'o' then vowels := vowels +[i]; if i= 'u' then vowels := vowels +[i]; end; for i:= 'a' to 'z' do if i in vowels then write(i,' '); writeln; letter := ['a'..'z'] - vowels; if i in letter then write(i,' '); end.

การรับและแสดงค่าตัวอักษรในเซต for i:= 'a' to 'z' do if i in vowels then write(i,' '); writeln; letter := ['a'..'z'] - vowels; if i in letter then write(i,' '); end.

การรับและแสดงค่าตัวอักษรในเซต โปรแกรมนับจำนวนตัวอักษรที่รับจากแป้นพิมพ์ และแยกว่าเป็นสระ พยานชนะ และ อักขระอื่นๆ พิมพ์จำนวนที่นับได้

การรับและแสดงค่าตัวอักษรในเซต program sets3; uses wincrt; type letterset = set of 'A'..'Z'; var vowels,letter,l: letterset; count_v,count_letter,count_wrong : integer; ch,i:char;

การรับและแสดงค่าตัวอักษรในเซต begin count_v := 0; count_letter:= 0; count_wrong := 0; vowels := ['A','E','I','O','U']; letter := ['A'..'Z'] - vowels;

การรับและแสดงค่าตัวอักษรในเซต write('Enter one letter(* for end):'); ch := readkey; ch := upcase(ch); while ch <> '*' do begin if ch in vowels then count_v := count_v +1;

การรับและแสดงค่าตัวอักษรในเซต else if ch in letter then count_letter := count_letter +1 count_wrong := count_wrong +1;

การรับและแสดงค่าตัวอักษรในเซต writeln; write('Enter one letter(* for end):'); ch := readkey; ch := upcase(ch); end;

การรับและแสดงค่าตัวอักษรในเซต writeln; writeln('Total vowels is ',count_v); writeln('Total letter is ',count_letter); writeln('Total non letter/vowels is ',count_wrong); end.