ورود

View Full Version : سوال: خروجی در پاسکال



Serveh_20
دوشنبه 06 خرداد 1392, 11:15 صبح
سلام خروجیه ایین چن خط چیه چرا؟

Program q8;
begin
write(['A','B']=['B','A'],',');
write(['A','B']<>['A'],',');
write(['A','B']<=['A'],',');
write(['A','B']>=['B'],',');

یوسف زالی
دوشنبه 06 خرداد 1392, 12:38 عصر
علیک سلام.
با یک بار نوشتن و تریس کردن می تونید ببینید خروجیش چیه.
اما این که چرا، سوال بهتریه.

مورد اول واضحه.
مورد دوم واضحه.
مورد سوم بیان کننده زیرمجموعه بودن هست. همین طور بعدی:



Operator Operation Operand types Result type Example
+ union set set Set1 + Set2
- difference set set S - T
* intersection set set S * T
<= subset set Boolean Q <= MySet
>= superset set Boolean S1 >= S2
= equality set Boolean S2 = MySet
<> inequality set Boolean MySet <> S1
in membership ordinal, set Boolean A in Set1

developing
سه شنبه 07 خرداد 1392, 12:50 عصر
با سلام

جناب یوسف خان جواب شما رو دادن اما چون سطح بالا گفتند من به زبان عامیانه بگم.

در دلفی و بهتر بگیم زبان پاسکال شما می توانید از مجموعه ها استفاده کنید که برای تعریف آنها می توانید به اشکال زیر این کار را انجام دهید.
تعریف مجموعه:


type
TInts = set of Byte;
TChars = set of 'a'..'f';
var
TInt: tints;
Tchar: tchars;
TCustome: set of 10..255;

در خط دوم شما یک نوع جدید معرفی می کنید که یک مجموعه از اعداد صحیح تک بایتی است.
در خط سوم یک مجموعه شامل نویسه های a تا f
در خط پنجم یک متغیر از نوع جدیدی که در بالا تعریف نموده اید
در خط ششم یک متغیر از نوع جدید بالا
در خط هفتم یک مجموعه شامل اعداد 10 تا 255

نکته: مجموعه ها در پاسکال و به تبع اون دلفی فقط داده های شمارشی بین 0 تا 255 را شامل می گردند. یعنی شما نمی توانید مجموعه هایی مثل زیر داشته باشید:

set1 : set of -10..10;
set2 : set of 200..300;
set3: set of integer;

علت خطاها:

در اولین خط چون کران پایین کمتر از صفر است
در دومین خط چون کران بالا بیشتر از 255 است.
در سومین خط چون اعداد صحیح integer مجموعه ای بزرگتر از 0 تا 255 است.

مقداردهی به مجموعه:

شما می توانید از روش زیر برای مقداردهی به مجموعه استفاده کنید:
TCustome := [100, 200];
TCustome := [10..50,120];
در خط اول اعداد 100 و 200 در مجموعه قرار می گیرند.
در خط دوم اعداد 10تا50 و همچنین 120 در مجموعه جای می گیرند.
تذکر: در زمانیکه خط دوم اجرا شود مقادیر قبلی مجموعه از بین خواهند رفت یعنی دیگر اعداد 100 و 200 در مجموعه نخواهند بود.
تذکر 2: قوانین مجموعه های پاسکال با قوانین مجموعه های ریاضی مطابقت می کنند یعنی اگر در ریاضی مجموعه ی{1و 2} با مجموعه ی{2و1} برابر است در پاسکال هم دو مجموعه ی زیر با هم برابرند:(یعنی جابجایی در اعضا تاثیری در مجموعه ندارد)

var
Set1, Set2: set of byte ;
begin
Set1 := [1,2];
set2 := [2,1];

اضافه کردن عضو به مجموعه:
برای اینکه به اعضای مجموعه اضافه کنیم و اعضای قبلی را از دست ندهیم به روش زیر این کار را می کنیم:
TCustome := TCustome + [55] + [75];

خب برسیم به عملگر های مجموعه:
+ اجتماع دو مجموعه است. مثال: A+B اعضای A به اضافه ی اعضای B
همانطور که در اضافه کردن عضو دیدید ما در واقع دو یا چند مجموعه را با هم اجتماع می کردیم.
* اشتراک دو مجموعه. مثال: A*B یعنی اعضای مشترک بین A و B
- تفریق دو مجموعه. مثال: A -B یعنی کلیه ی اعضایی که در A باشند ولی در B نباشند.

جواب هر سه عملگر بالا یک مجموعه می باشد. (توجه کنید و حتما می دانید که مجموعه ی تهی هم یک مجموعه است با صفر عضو)

در هر سه عملگر بالا باید عملوند ها مجموعه باشند.

=> عملگر زیر مجموعه. مثال: A <= B یعنی آیا A زیر مجموعه ی B هست یا نه.
=< عملگر عکس زیر مجموعه. مثال: A >= B یعنی آیا B زیر مجموعه ی A هست یا نه.
<> عملگر نامساوی. مثال: A = B آیا A با B برابر است یا نه.
= عملگر مساوی. مثال: A = B آیا A با B برابر است یا نه.

عملوند های هر سه عملگر بالا همانند عملگرهای قبلی باید مجموعه باشند.

in عملگر عضویت. مثال: a in B آیا a عضو B است یا نه.
عملوند سمت چپ این عملگر باید مقدار (عدد، کاراکتر و ...) باشد و عملگر سمت راست آن هم باید یک مجموعه باشد.

جواب هر چهار عملگر بالا مقدار درست یا نادرست (True, False) می باشد.