علاقمندان به زبان های برنامه نویسی روزتون بخیر. با آموزش زبان برنامه نویسی پاسکال (Pascal) از وب سایت آموزشی پی وی لرن همراهتون خواهیم بود. با مجموعه ها یا Set ها در زبان پاسکال (Pascal) همراه خواهیم بود.
Set مجموعه ای از عناصر از همان نوع است. پاسکال اجازه می دهد نوع داده تنظیم شده را تعریف کنید. عناصر موجود در یک Set اعضای (member) آن نامیده می شوند. در ریاضیات ، Set ها با محصور کردن اعضای در درون {} نشان داده می شوند. با این حال ، در پاسکال ، عناصر تنظیم شده در داخل براکت های [] محصور می شوند، که به آن ها به عنوان سازنده (constructor) مجموعه گفته می شود.
انواع Set یا مجموعه در پاسکال به صورت زیر تعریف می شوند.
1 2 | type set-identifier = set of base type; |
متغیرهای نوع Set به صورت زیر تعریف می شوند.
1 2 | var s1, s2, ...: set-identifier; |
یا :
1 | s1, s2...: set of base type; |
نمونه هایی از اعلام های نوع Set معتبر عبارتند از:
1 2 3 4 5 6 | type Days = (mon, tue, wed, thu, fri, sat, sun); Letters = set of char; DaySet = set of days; Alphabets = set of 'A' .. 'Z'; studentAge = set of 13..20; |
می توانید عملیات Set زیر را در Set های پاسکال انجام دهید.
ردیف | عملیات و توضیحات |
---|---|
۱ | Union این دو set را پیوند می دهد و با اعضای هر دو set، set جدیدی ارائه می دهد. |
۲ | Difference تفاوت دو set را به دست می آورد و set جدیدی را با عناصری که در هر ست مشترک نیستند می دهد. |
۳ | Intersection تقاطع (اشتراک) دو set یا مجموعه را می گیرد و مجموعه جدیدی را با عناصر مشترک در هر دو مجموعه می دهد. |
۴ | Inclusion اگر تمام موارد موجود در P در Q نیز باشند اما نه برعکس ، یک مجموعه P در مجموعه Q موجود است. |
۵ | Symmetric difference اختلاف متناسب دو مجموعه را به دست می آورد و مجموعه ای از عناصر را ارائه می دهد ، که در هر یک از مجموعه ها هستند و در تقاطع (اشتراک) آن ها نیست. |
۶ | In اعضا را بررسی می کند. |
در جدول زیر تمامی اپراتورهای set پشتیبانی شده توسط Free Pascal آورده شده اند. فرض کنید که S1 و S2 دو مجموعه کاراکتر هستند ، به این صورت که:
;[‘S1 := [‘a’, ‘b’, ‘c
;[‘S2 := [‘c’, ‘d’, ‘e
عملگر | شرح | مثال |
---|---|---|
+ | اجتماع دو مجموعه (Set) | S1 + S2 مجموعه ای را ارائه می دهد [‘a’, ‘b’, ‘c’, ‘d’, ‘e’] |
– | تفاوت دو مجموعه | S1 – S2 مجموعه ای را ارائه می دهد [‘a’, ‘b’] |
* | اشتراک دو مجموعه | S1 * S2 مجموعه ای را ارائه می دهد [‘c’] |
>< | تفاضل متقارن دو مجموعه | S1> <S2 مجموعه ای را ارائه می دهد [‘a’, ‘b’, ‘d’, ‘e’] |
= | برابری دو مجموعه را بررسی می کند. | S1 = S2 ارزش بولین False می دهد. |
<> | عدم برابری دو مجموعه را بررسی می کند. | S1 <> S2 مقدار بولین را True می دهد. |
=> | شامل بودن (بررسی می کند آیا یک مجموعه زیر مجموعه دیگری است) | S1 <= S2 مقدار بولین False را می دهد. |
Include | Include یک عنصر در مجموعه است. در اصل این Union یک مجموعه و یک عنصر از همان نوع پایه است. | ([‘Include (S1 ، [‘d مجموعه ای را ارائه می دهد [‘a’, ‘b’, ‘c’, ‘d’] |
Exclude | Exclude یک عنصر از مجموعه است. در واقع این Difference یک مجموعه و یک عنصر از همان نوع پایه است | ([‘Exclude(S2 ، [‘d مجموعه ای را ارائه می دهد [‘c’, ‘e’] |
In | عضویت set یک عنصر در یک مجموعه را چک می کند. | [‘e’] در S2 مقدار Boolean True را نشان می دهد. |
مثال زیر استفاده برخی از این اپراتورها را نشان می دهد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | program setColors; type color = (red, blue, yellow, green, white, black, orange); colors = set of color; procedure displayColors(c : colors); const names : array [color] of String[7] = ('red', 'blue', 'yellow', 'green', 'white', 'black', 'orange'); var cl : color; s : String; begin s:= ' '; for cl:=red to orange do if cl in c then begin if (s<>' ') then s :=s +' , '; s:=s+names[cl]; end; writeln('[',s,']'); end; var c : colors; begin c:= [red, blue, yellow, green, white, black, orange]; displayColors(c); c:=[red, blue]+[yellow, green]; displayColors(c); c:=[red, blue, yellow, green, white, black, orange] - [green, white]; displayColors(c); c:= [red, blue, yellow, green, white, black, orange]*[green, white]; displayColors(c); c:= [red, blue, yellow, green]><[yellow, green, white, black]; displayColors(c); end. |
هنگامی که کد فوق کامپایل و اجرا شد ، نتیجه زیر را ایجاد می کند.
1 2 3 4 5 | [ red , blue , yellow , green , white , black , orange] [ red , blue , yellow , green] [ red , blue , yellow , black , orange] [ green , white] [ red , blue , white , black] |
Set ها در زبان پاسکال (Pascal) را در این بخش مورد بررسی قرار دادیم. در بخش آینده به مبحث File Handling خواهیم پرداخت. با آموزش زبان برنامه نویسی پاسکال (Pascal) همراه باشید.