บทที่ 5 : การตรวจจับข้อผิดพลาด ... · 2018-08-27 · การควบคุมการไหลของข้อมูล (Flow
บทที่ 08 ข้อมูลอินิวเมอเรดเต็ด (enumerated)
Click here to load reader
-
Upload
phichya-laemluang -
Category
Documents
-
view
338 -
download
3
Transcript of บทที่ 08 ข้อมูลอินิวเมอเรดเต็ด (enumerated)
!
ศิริชัย นามบุรี อินิวเมอเรดเต็ด(enumerated)
บทที่ 8ขอมูลอินิวเมอเรดเต็ด (enumerated)
♦ !ความหมายของขอมูลชนิด enumeratedenumerated หมายถึง ประเภทขอมูลที่ประกอบดวยสมาชิก(member) จํ านวนหนึ่งซึ่งมีคาคงที่
และล ําดับที่อยูของรายการขอมูลแนนอนและมีความสัมพันธกัน เชน วันในหนึ่งสัปดาห ประกอบดวยสมาชิก อาทิตย จันทร อังคาร พุธ พฤหัสบดี ศุกร และเสาร
♦ !วิธีก ําหนดขอมูลใหเปนประเภท enumeratedการก ําหนดหรือประกาศใหขอมูลเปนชนิด enumerate มีรูปแบบดังน้ี
โดยที ่ enum เปนคียเวิรด ตองเขียนทุกคร้ังเม่ือกํ าหนด enumeratedtype_name คือ ช่ือประเภท enumerated ที่ผูใชก ําหนดเองmember1,… คือ ชื่อสมาชิกและจ ํานวนสมาชิก กํ าหนดไวในเคร่ืองหมาย
[ ] มีมากกวา 1 ตัวใช , แบงรายการสมาชิก สมาชิกทุกตัวของอินิวเมอเรดเต็ดถือเปน constant จึงเรียกอีกอยางหน่ึงวา enumerated constant
♦ !คาของอินิวเมอเรดเต็ดเม่ือเราก ําหนดขอมูลแบบ enumerated ในโปรแกรม C++ จะก ําหนดใหสมาชิกตัวแรกมีคาเทา
กับจ ํานวนเต็ม(integer) 0 และก ําหนดคา 1,2,3,…ใหแกสมาชิกที่อยูในล ําดับตอไปตามล ําดับ เชนenum DayOfWeek{sun,mon,tue,wen,thu,fri,sat};คาของสมาชิกแตละลํ าดับเปนดังน้ี sum=0, mon=1,tue=2,wen=3,thu=4,fri=5,sat=6ถาตองการก ําหนดใหสมาชิกตัวแรกเร่ิมท่ี 1 สามารถเขียนไดดังนี้enum DayOfWeek{sun=1,mon,tue,wen,thu,fri,sat};คาของ sum=1, mon=2,tue=3,wen=4,thu=5,fri=6,sat=7 enum DayOfWeek{sun=1,mon,tue,wen=50,thu,fri,sat}; คาของ sum=1, mon=2,tue=3,wen=50,thu=51,fri=52,sat=53การก ําหนดคาของสมาชิก enumerated สามารถก ําหนดคาใหเปนอักษรได เชน
! enum type_name{member1,member2,member3,…,member n);
!
ศิริชัย นามบุรี อินิวเมอเรดเต็ด(enumerated)
106
enum FileMenu{FileOpen='O', FileClose='F',FileSave='S',Exit='X'};หมายเหตุ คาของสมาชิก enumerated ปกติจะเปน integer เร่ิมต้ังแต 0,1,2… เวนแตผูใชจะ
กํ าหนดใหเปนอยางอื่นตามที่กลาวมา
♦ !การประกาศตัวแปรประเภท enumerated และการกํ าหนดคาขอมูลประเภท enumerated เม่ือสรางช่ือประเภทขอมูลข้ึนแลว สามารถนํ าไปใชในการประกาศ
หรือกํ าหนดตัวแปรชนิดน้ันได เชนenum DayOfWeek {sun,mon,tue,wen,thu,fri,sat}; //กํ าหนดชื่อประเภท enumeratedDayOfWeek day,newday; //day และ newday เปนตัวแปรประเภท DayOfWeek ซึ่ง //เปนประเภทขอมูล enumerated ที่ผูใชก ําหนดข้ึนใหม
จากตัวอยาง ตัวแปร day และ newday เปนตัวแปรชนิด DayOfWeek ซ่ึงเปนประเภทenumerated ดังน้ัน ตัวแปร day และ newday สามารถมีคาหรือก ําหนดคาที่เปนไปได คือsun,mon,tue,wen,thu,fri,sat คาใดคาหนึ่งเทานั้น ไมสามารถเก็บคาคงที่ชนิดอื่น ๆ ได เชน
day=sun; //sun = 1newday=sat; //sat = 6คาของ day คือ 0 สวนคาของ newday = 6
• ! ตัวอยางโปรแกรม enum1.cpp แสดงการสรางขอมูลประเภท enumerated และการประกาศตัวแปร รวมถึงการดํ าเนินการกับตัวแปรประเภท enumerated
/*Program : enum1.cpp Process : create and manage enumerated data type*/
#include <iostream.h> #include <conio.h>
void main() { enum DayOfWeek{sun,mon,tue,wen,thu,fri,sat}; DayOfWeek day,newday; //declar var day,newday are DayOfWeek type //defind value of day and newday variable day=mon; newday=fri; //display clrscr(); cout<< "Display value of member of DayOfWeek"<<endl;
!
ศิริชัย นามบุรี อินิวเมอเรดเต็ด(enumerated)
107
cout<< "sun = "<<sun<<endl; cout<< "mon = "<<mon<<endl; cout<< "tue = "<<tue<<endl; cout<< "wen = "<<wen<<endl; cout<< "thu = "<<thu<<endl; cout<< "fri = "<<fri<<endl; cout<< "sat = "<<sat<<endl; cout<< "day = mon is : "<<day<<endl; cout<< "newday =fri is : "<<newday<<endl; cout<< "Value between newday and day is : " <<newday-day<<endl; cout<< "Value between newday+day is : " <<newday+day; getch(); }
• ! ตัวอยางโปรแกรม Boolean.CPP แสดงการกํ าหนดขอมูลชนิด enumeratedกํ าหนดคาของขอมูลไว 2 คาคือ false และ true
/*Program:Boolean.Cpp Process: use enumerated type of data*/#include <iostream.h>#include <ctype.h>#include <conio.h>
void main(){ enum Boolean { False, True}; Boolean Quit=False; char ch; int count=0; do{ clrscr(); ++count; cout<<"\n Count = "<<count; cout<<"\n Continue <y/n> "; ch=getch(); if(toupper(ch)=='N')
Quit=True;
!
ศิริชัย นามบุรี อินิวเมอเรดเต็ด(enumerated)
108
}while(!Quit);cout<<"\n end of program";getch();}
♦ ! แบบฝกหัดทายบท
1. จากขอมูลตอไปนี ้ Biggest, Big, Middle, Small, Smallest ใหเขียนโปรแกรมเพ่ือ กํ าหนดใหเปน ขอมูลชนิด enumerated แลวก ําหนดตัวแปรเพ่ือแสดงคาคงท่ีของสมาชิก enumerated ใหถูกตอง
2. จากขอมูลช่ือเดือนในรอบป January, February , March, April, May, June, July, August, September, October, November, December ใหนักศึกษาเขียนโปรแกรมเพื่อก ําหนดใหขอมูลเหลานี้เปนสมาชิกขอมูลชนิด enumerated โดยกํ าหนดให January มีคาเทากับ 1แลวสรางตัวแปรอารเรยเพ่ือเก็บคาของสมาชิก enumerated ชุดน้ี และแสดงคาของอาเรยที่เก็บคาของ enumerated ออกทางจอภาพ