السنة األولى 2200-2202 البرمجة – 2نظري المحاضرة األولى عدد الصفحات 4 : المجموعات Sets انمجمىعت ( )Setومظ ترتٍبً ( )Ordinalومتقطع ( ,)Districtوٌمكه أن تكىن عىاصرها مهومظ Integerأو Booleanأو , Charوٌجب أن تكىن جمٍع انعىاصر مه ومظ واحذ (كهها أعذاد صحٍحت مثلا). نىضع عىاصر فً مجمىعت وستخذو قىسٍه متىسطٍه ] [ ووضع داخههما انعىاصر. انعمهٍاث عهى انمجمىعاث : تقاطع مجمىعتٍه )*( اجتماع مجمىعتٍه ()+ فرق مجمىعتٍه ()- االحتىاء (=<) تعىً ⊆ ,كما أن (=>) تعىً ⊇ اوتماء عىصر ()in مثال عه تعرٌف انمجمىعاث وانتعامم معها : ;)(program test var ;S1:Set of 1..100 ;'S2:Set of 'a'..'z ;i,j:integer ال يمكن فٍ باسكال أن وقىل{ ;S:Set of Integer وذلك بسبب وجىد محدودَة فٍ عدد عىاصس المجمىعة حُث َمكه أن تحتىٌ علً 652 }عىصسا علً األكثس www.ite-sy.net 1 4Electron 0115424461 Begin ]S1:=[40,55,99,40,41,44..55 {عىد إجساء watchللمجمىعة S1سىف وسي أن فُها : ]S1=[40,41,44..55,99 { }الىتُجة ][= S1خالُة ألن 033خازج المجال المعسف{ ;]S1:=[300 تستب{ ;]'S2:=['n','d'..'h }الىتُجة ]' S2=['d'..'h','nأٌ أن العىاصس ُ }الىتُجة ]'S2:=['A','a']; {S2=['a }ال َىجد هىا Compile Time Errorأو : Runtime Error خطأ إمالئٍ فٍ * Compile Time Error : Syntax Error in the Source Code الكىد خطأ مىطقٍ َظهس أثىاء التىفُر كالقسمة علً صفس * Runtime Error : } }الىتُجة ][= S1خالُة ألوىا لم وسىد قُما إلً المتحىلُه{ ;]S1:=[i,j })S2:=[i,j]; { Incompatible Types ERROR ! (Compile Time Error ;i:=50 }]S1:=[i,i+3]; {S1=[50,53 }]S1:=S1+[i*2]; {S1=[50,53,100 end. انتعهٍمت ] S1:=S1+[iتمكىىا مه إضافت عىصر أو أكثر إنى مجمىعت مع االحتفاظ بانعىاصر انمىجىدة مسبقا ا. المجموعات الثابتة (:)Const ;Program test type ;Digits=set of 0..9 const وضع ومظ عىاصس { ;]'HexD:set of '0'..'z'=['0'..'9','A'..'F','a'..'f }المجمىعة ثم عىاصسها ;]ED:Digits=[0,2,4,6,8 var ;d:Digits begin ;]d:=[8 َمكه إسىاد قُمة الثابت إلً المتحىل إذا كاوا مه ومظ واحد{ ;d:=ED }والىتُجة هىا ]d=[0,2,4,6,8 end. www.ite-sy.net 2 4Electron 0115424461 : Enumerated Type النمط التعدادي وٌمكه أن وعرف, كتعرٌف ومظ ٌحىي عهى أٌاو األسبىع,تعرفىا عهى كٍفٍت تعرٌف األوماط انتعذادٌت : تحىي عىاصر مه ومظ تعذاديSet مجمىعت program ET; type Day=(Sun,Mon,Tue,Wed,Thu,Fri,Sat); Days=set of Day; var D:set of Day; DD:Days; begin DD:=[Sun,Fri]; writeln(ord(Mon)); {ord(Sun)=0, ord(Mon)=1, ... , ord(Sat)=6} end. : مثال عن العمليات على المجموعات program SetsOp; var A0:set of 1..15; A1:set of 1..10; A2:set of 5..15; i:integer; begin A1:=[1..10]; A2:=[5..15]; A0:=A1*A2; {A0=[5..10] A0:=A1+A2; {A0=[1..15] A0:=A1-A2; {A0=[1..4] A0:=A0-[1]; {A0=[2..4] }الىتُجة }الىتُجة }الىتُجة }الىتُجة A1:=[2,3]; A2:=[1,2,3,4,5]; if (A1<=A2) then { فٍ الشسطA6>=A1 }وستطُع أَضا كتابة writeln('A1 is a subset of A2'); 4Electron 0115424461 3 www.ite-sy.net readln(i); if (i in A1) then writeln(i,' is in A1') else writeln(i,' is not in A1'); end. - انتهث المحاضرة- 4Electron 0115424461 4 www.ite-sy.net