بخشی از مقاله
مجموعه ها در ریاضی
نوع دادة مجموعه
مجموعه ها : متغيرهاي ساخت يافته اي هستند كه حاوي ليستي از اعداد صحيح ، كاركترها و يا مقاديري از نوع شمارشي هستند. يك مجموعه شبيه آرايه أي است كه مي تواند گروهي از اعضاي ساده را در خود جاي ده
د . البته اعضاي يك مجموعه شبيه يك آرايه تعريف نمي شود.
تعريف مجموعه ها :
يك مجموعه يا متغير مجموعه درست همانطور كه انواع ساخت يافتة ديگر را تعريف مي كنيم ، تعريف مي شود .
تعاريف :
type
digitset = set of 0..9; (set type of integer elements)
var
odds,Evens,Middle,Mixed:Digitset: (4sets)
نوع مجموعه digitset و چهار متغير Mixed,Middle,Evens,Odds را تعريف مي كنند. هر متغير مجموعه از نوع digitset مي تواند حاوي اعداد صحيح 0 تا 9 باشد. اگرچه براي چهار مجموعه حافظه تخصيص داده مي شود. ولي محتويات آنها نامعين است. براي اينكه بتوانيم با يك مجموع كار كنيم، بايد آن را با استفاده از يك انتصاب مجموعه تعيين كنيم.
تعريف نوع مجموعه
شكل استفاده
type
set type= set of base type
مثال :
type
letter set = set of ‘A’ .. ‘z’ :
شرح : شناسة set type از روي مقادير مشخص شده و در base type تعيين مي شود. يك متغير كه از نوع set type تعريف مي شود ، مجموعه أي است كه اعضاي آن از مقادير base type انتخاب مي شوند. البته base type بايد از نوع ترتيبي باشد.
تذكر : در بيشتر پياده سازي ها تعداد مقادير base type از يك مجموعه محدود مي شود. به همين دليل مي تواند set of char را به عنوان يك مجموعه تعيين كنيد. با وجود اين محدوديت نمي توانيد از نوع داده Integer به عنوان يك base type استفاده كنيد ، اما مي توانيد زير بازه هاي از نوع Integer را تا 128 يا 256 مقدار به كار مقاديري را به دو متغير مجموعه كه در مثال فوق تعريف شده اند ، نسبت مي دهد.
ليستي از مقادير از نوع اصلي مجموعه هستند كه در داخل دو كروشه محصور شده اند. بعد از اين انتسابها مجموعة odds حاوي ارقام فرد 0 تا
9 است و مجموعة Evens حاوي ارقام زوج اين بازه است. مي توانيم از اين دو مجموعه براي تعيين اينكه يك متغير داراي ارقام فرد يا زوج است ، استف
عه أي از كاراكترهاست كه مي توانند در يك عدد حقيقي وجود داشته باشند. اين مجموعه حاوي 14 عضو است. در اينجا از نماد زير بازه "0" .. "9" استفاده كرده ايم كه بهتر از اين است كه 10 كاراكتر رقمي را به طور جداگانه بنويسيم.
ليترال مجموعه اي
شكل استفاده :
List of elements
[ ‘+’, ‘-‘ , ‘*’ , ‘/’ , ‘<’ , ‘>’ , ‘=’]
شرح : يك مجموعه به اين صورت تعريف مي شود كه اعضاي آن يعني List of elements در دو كروشه محصور شوند. اعضاي يك مجموعه بايد از نوع ترتيبي يكسان باشند و يا از انواع ترتيبي سازگار باشد. كاماها اعضاي List of elements را از هم جدا مي كنند. گروهي از اعضا ممكن است با نماد زير بازه مشخص شوند. (يعني به صورت minavalue.maxvalue باشند كه maxvalue , minvale عباراتي از نوع سازگار با هم هستند و minvalue كوچكتر يا مساوي maxvalue است.
انتساب مجموعه
شكل استفاده :
set var: = set expression
Uppercase:= [‘A’..’Z’] (set of uppercase letters)
شرح : متغير set var به عنوان مجموعه تعيين مي شود كه اعضاي آن توسط set expression مشخص مي شوند. Set expression ممكن است به تناوب دستكاري دو يا چند مجموعه را با استفاده از عملگرهاي مجموعه مشخص كند. نوع اصليset var و set expression بايد باهم سازگار باشند و همه اعضاي set expression بايد شامل نوع اصلي set var باشند.
مجموعة تهي و مجموعة مرجع
دو لفظ مجموعه اي خاص مجموعة تهي و مجموعة مرجع داريم. مجموعة تهي هيچ عضوي ندارد و با يك جفت كروشه يعني [] مشخص مي شود. براي ايجاد يك مجموعة تهي بايد از انتساب به صورت زير استفاده كرد :
Middle :=[ ]
مجموعه تهي با مجموعه نامعين فرق دارد. مجموعه نامعين مجموع أي است كه تعريف شده ولي اعضاي آن ناشناخته اند. يك مجموعه مرجع حاوي تمام مقادير نوع اصلي براي يك نوع مجموعه خاص است.
مجموعه هايي با مقادير نوع شمارشي
مي توانيم مجموعه ها را با مقادير انتخاب شده از نوع داده شمارشي خودمان نيز تعيين كنيم.
عملگرهاي مجموعه
روي مجموعه ها ممكن است چندين عمل انجام شود. در اين بخش يك عملگر جديد يعني In را توضيح مي دهيم و نشان مي دهيم كه چطور از عملگرهاي مشابة ديگر با مجموعه ها استفاده مي كنيم.
آزمون عضويت در مجموعه
براي تعيين اينكه يكه مقدار خاص در يك آرايه هست يا نه، از يك پيمانة جستجو استفادة مي كنيم. پاسكال براي تعيين اينكه يك مقدار خاص عضوي از يك مجموعه هست يا نه ، عملگر عضويت در مجموعه يعني in را فراهم كرده است. عبارتي با عملگر in يك مقدار پولي را باز مي گرداند.
از عملگر in با مجموعه مي توانيد به جاي يك شرط مركب استفاده كنيد. مثلاً مي توانيد شرط
(ch=’,’) or (ch = ‘?’) or (ch= ‘;’) or (ch=’!’)
را به صورت زير بنويسيد:
ch in [‘,’ , ‘?’ , ‘;’ , ‘!’]
هر دو شرط در صورتي كه ch يكي از كاراكترهاي مجموعه باشد ، مقدار درست را باز مي گردانند.
عملگر عضويت در مجموعه in
شكل استفاده : element in [list of elements ]
مثال : next ch in ['+' , '-' , ‘*’ , ‘/’ ‘ ,’ ‘<’ , ‘>’ ‘.’ ]
شرح عملگر عضويت در مجموعه يعني in شرطي توصيف مي كند كه تا زماني كه element در list of elements وجود دارد با True و در غير اين صورت با False ارزيابي مي شود . نوع داده element بايد با اعضاي مجموعه سازگار باشد. اولويت عملگر in با عملگرهاي رابطه أي يكسان است.
اجتماع ، اشتراك و تفاضل دو مجموعه
اگر مجموعه ها را در رياضيات مطالعه كرده باشيد، مي دانيد كه سه عمل اجتماع ، اشتراك و تفاضل روي مجموعه ها انجام مي شود . هر يك از اين اعمال روي دو مجموعه انجام مي شوند و نتيجه هر يك از آنها يك مجموعه است. در پاسكال اين اعمال را با استفاده از عملگرهاي +(اجتماع) و * (اشتراك) و –(تفاضل) مشخص مي كنيم.
اجتماع دو مجموعه (عملگر+) ، مجموعه أي است كه اعضاي آن يا در مجموعه اول ، يا در مجموعه دوم و يا در هر دو هستند:
[1.3.4]+[1.2.4] is [1.2.3.4]
[1.3] + [2.4] is [1.2.3.4]
[‘a’,’c’,’f’] + [‘b’,’c’,’d’,’f’] is [‘a’,’b’,’c’,d’,’f’]
[‘a’,’c’,’f’] + [‘a’,’c’,’d’,’f’] is [‘a’,’c’,’d’,’f’]
اشتراك دو مجموعه (عملگرا*) ، مجموعه اي است كه اعضاي آن در هر دو مجموعه مشترك هستند.
[1.3.4] * [1.2.4] is [1.4]
[1.3]*[2.4] is []
[‘a’,’c’,’f’] * [‘b’,c’,’d’,’f’] is [‘c’,’f’]
[‘a’,’c’,’f’] * [‘a,’c’,’d’,’f’] is [‘a’,’c’,’f’]
تفاضل مجموع a و b (عملگر -) مجموعه اي است كه اعضاي آن در مجموعة a هستند ولي در مجموعة b نيستند :
[1,3,4] – [1,2,4] is [3]
[1,3] – [ 2,4] is [1.3]
[‘a’,’c’,’f’] – [‘b’,’c’,d’,’f’ ] is [‘a’]
[‘a’,’c’,’f’] – [‘b’,’c’,’d’,f’] is []
[‘a’,’c’,’d’,f’] – [‘a’,’c’,’f’] is [‘d’]
عملگر ـ خاصيت جابجايي ندارد ، اين بدين معني است كه a-b و b-a مي توانند مقادير مختلف داشته باشند. البته اگر عملگرهاي + و * خاصيت جابجايي دارند.
در عبارات پاسكال عملگرهاي + و * و – هنگامي كه عملوندهايشان از نوع real يا integer هستند ، عمليات محاسباتي را مشخص مي كنند و زماني كه عملوندهايشان مجموعه هستند ، اعمال روي مجموعه ها را مشخص مي كنند . وقتي كه عملگر بيش از يك مفهوم دارد ، اين شرط بار زياد عملگر ناميده مي شود.
اغلب بايد يك عضو جديد در يك مجموعه درج شود. چنين درجي با اجتماع مجموعة موجود و يك مجموعه واحد كه فقط حاوي يك عضو است ، انجام مي پذيرد. مجموعه 2 كه در زير آمده است يك مجموعه واحد است :
[1,3,4,5] + [2] is [1.2.3.3.5]
از خطاي متداول فراموش كردن كروشه هاي اطراف يك مجموعه بپرهيزيد. مثلاً عبارت
[1,3,4,5] + 2 {2nd operand is not a set}
Avis + Cadillac {2nd operand is not a set}
نامعتبر هستند ، چراكه يكي از عملوندها مجموعه است و ديگري ثابت است.
عملگرهاي رابطه اي مجموعه
عملگرهاي رابطه اي >= , <= ,<> , = دو مجموعه را مقايسه مي كنند. دو مجموعة مقايسه شده بايد نوع اصلي يكساني داشته باشند. نتيجه يك مقايسه يك مقدار بولي است.