PDA

View Full Version : سوال: مبتدی : مثالی برای عملگرهای منطقی .



مهرنوووش
سه شنبه 12 دی 1391, 17:40 عصر
سلام .
برای دو عملگر منطقی Not و And یه مثال میخوام تا کاربردشونو توی کد نویسی درک کنم !!!!
هر چی خوندم نفهمیدم چطوری باید از این عملگرهای منطقی استفاده کنم...!!
فقط اگه ممکنه در حد مبتدی یه کدی رو بذارین چون من هنوز اول راهم .

SlowCode
سه شنبه 12 دی 1391, 18:13 عصر
سلام
در عملگر and هر دو طرف باید صحیح باشند، مثلا:

if a<10 and a>5 then 'Do sth

اینجا باید متغیر a کوچکتر از 10 و بزرگتر از 5 باشه و اگه یکی از عبارت ها و یا هردوتاش اشتباه باشه شرط اجرا نمیشه.
عملگر not هم نتیجه رو عکس میکنه. مثلا میخوییم بگیم اگه مقدار متغیر a عدد 10 نباشه فلان کار رو بکن.

if not a=2 then 'Do sth

یعنی اگه a=2 نیست ...

مهرنوووش
سه شنبه 12 دی 1391, 18:18 عصر
مچکرم .
من هنوز به if نرسیده بودم دلیلش همین بود درکش نمیکردم !!
پس میتونیم بگیم که این عملگرها طی دستوراتی که با if نوشته میشن قابل اجران ؟!
مثلا با متغیرها نمیشه کدی نوشت که این عملگرها توش به کار رفته باشن ؟!

Hashemvp
سه شنبه 12 دی 1391, 18:25 عصر
سلام.نمیدونم دقیقا چ چیز هایی میخوای بدونی ازش ولی خوب اینم ی مثال

Dim H, v, P as Boolean
P = True
H = Not v H = True
H = v And P H = False
H = v or P H = True
H = v Xor P H = True
H = v Eqv P H = False
H = v Imp P H = True

موفق باشی

Hashemvp
سه شنبه 12 دی 1391, 18:28 عصر
مچکرم .
من هنوز به if نرسیده بودم دلیلش همین بود درکش نمیکردم !!
پس میتونیم بگیم که این عملگرها طی دستوراتی که با if نوشته میشن قابل اجران ؟!
مثلا با متغیرها نمیشه کدی نوشت که این عملگرها توش به کار رفته باشن ؟!

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

موفق باشی سوال اخرتو دقیق متوجه نشدم.
فکر کنم مثالی ک برات گذاشتم دقیقا در مورد سوال اخرت بود ولی هر طوری ک بهش نگاه کنی اخرش شرط داره.
یعنی اینکه توی جاهایی استفاده میشن ک نیاز ب گذاشتن شرط هست.

موفق باشی

SlowCode
سه شنبه 12 دی 1391, 18:32 عصر
بله بدون if هم میشه ازشون استفاده کرد، مثلا:

a = 8
result = (a < 10) And (a > 1)
Print result

اینجا به متغیر a عدد 8 دادم، یعد اگه کمتر از 10 باشه و بیشتر از 1 عبارت True داخل result نوشته میشه و بعد مقدار result چاپ میشه.
حتما دقت داشته باشین که در عملگر and یکی از عملوند ها وجود داشته باشه(< , > , = , <>) در غیر اینصورت عملگر بیتی محسوب میشه که فرق داره.
مثلا:
Print 5 and 3
چون توش عملوند مقایسه ای نیست عملگر یستی محسوب میشه . جوابش میشه 1

مهرنوووش
سه شنبه 12 دی 1391, 18:43 عصر
مرسی از همتون ...
اون مثال با result به دردم خورد دقیقا همونو میخواستم !!
فقط یه سوال دیگه = تو عملگرهای بیتی همیشه جواب اخر 1 میشه؟!

هاشم اون کدتو تست کردم error داد !!!

Hashemvp
سه شنبه 12 دی 1391, 18:50 عصر
مرسی از همتون ...
اون مثال با result به دردم خورد دقیقا همونو میخواستم !!
فقط یه سوال دیگه = تو عملگرهای بیتی همیشه جواب اخر 1 میشه؟!

هاشم اون کدتو تست کردم error داد !!!
خوب معلومه ارور میده اون کد همینطوری بود اصولی نبود.برای اینکه فقط متوجه بشید چطور کار میکنن.

در مورد عملگر های بیتی هم باید بگم نه خیر ممکنه صفر هم بشه

صفر ب معنی False و یک ب معنی True

موفق باشی

SlowCode
سه شنبه 12 دی 1391, 18:53 عصر
نخیر همیشه 1 نمیشه. مثال زیر رو ببنید:
Print 7 and 3
خروجی میشه 3

مهرنوووش
سه شنبه 12 دی 1391, 18:54 عصر
خب من با کارش اشنام و توضیحاتشو خوندم فقط لنگ کدشم !!
بعد یه مثالم برای عملگر NoT میخوام طوریکه True یا False چاپ کنه !! بقیه برام جا افتادن !!

مهرنوووش
سه شنبه 12 دی 1391, 18:56 عصر
خب الان یه سوال دیگه !!! :لبخند:
خروجیو از قبل نمیشه تعیین کرد ؟ فرمول و قاعده خاصی داره ؟!

SlowCode
سه شنبه 12 دی 1391, 18:58 عصر
a = 5
Print Not a = 4
اینجا متغیر a مساوی 4 نیست ولی not اون رو عکس میکنه و میشه True

خروجیو از قبل نمیشه تعیین کرد ؟ فرمول و قاعده خاصی داره ؟!
متوجه منظورتون نشدم! بیشتر توضیح بدین. چی قاعده خاصی داره؟

بهروز عباسی
سه شنبه 12 دی 1391, 19:02 عصر
خب الان یه سوال دیگه !!! :لبخند:
خروجیو از قبل نمیشه تعیین کرد ؟ فرمول و قاعده خاصی داره ؟!
درود به همه دوستان

لطفاًلینک زیر رو مشاهده کنید .
Logical Expressions and Operators (http://www.vb6.us/tutorials/understanding-if-statements-and-conditionals-vb6)

موفق باشبد

Hashemvp
سه شنبه 12 دی 1391, 19:02 عصر
این در مورد مثال Not

h = True
Print Not h

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

لینک
بهروز عباسی (http://barnamenevis.org/member.php?231262-%D8%A8%D9%87%D8%B1%D9%88%D8%B2-%D8%B9%D8%A8%D8%A7%D8%B3%DB%8C) خیلی عالی بود حتما مطالعه کن
موفق باشی

مهرنوووش
سه شنبه 12 دی 1391, 19:04 عصر
من احساس میکنم قاطی کردم !!
در مورد عملگرهای بیتی مگه نمیگین صفر ینی False و 1 ینی True ؟؟؟؟
بعد این 3 اینجا نقشش چیه ؟؟؟!!!!!
اون مثالی رو که زدی و خروجی بهمون سه داد خب اونو از قبل نمیشه تعیین کرد که خروجیمون چی خواهد بود !؟

Hashemvp
سه شنبه 12 دی 1391, 19:09 عصر
مهرنوووش (http://barnamenevis.org/member.php?275996-%D9%85%D9%87%D8%B1%D9%86%D9%88%D9%88%D9%88%D8%B4) خانوم ببخشید من اونو با ی چیز دیگه اشتباه گرفتم و من جواب اشتباه دادم ب شما.معذرت میخوام.
فکر کنم چون من و محسن جان دارم جواب میدیم ی خورده قاطی کردین!!!
محسن جان جواب میده و طبق جواب های اون عمل کنی ب نتیجه میرسی

موفق باشی.

محسن جان ممنون.

SlowCode
سه شنبه 12 دی 1391, 19:10 عصر
از قبل نمیشه فهمید مگر اینکه محاسبه کنی.

در مورد عملگرهای بیتی مگه نمیگین صفر ینی False و 1 ینی True ؟؟؟؟
بله همینطوره ولی بیایین یه بار دستی محاسبه کنیم.
اول 7 و 3 رو در مبنای دو مینویسیم که میشه 7=0111 و 3=0011 حالا اگه اینا رو and کنیم جواب میشه 0011
اما ویژوال بیسیک این عدد رو به مبنای 10 تبدیل میکنه و نشون میده یعنی 3

مهرنوووش
چهارشنبه 13 دی 1391, 16:38 عصر
من بازم گیر کردم !!!!!! ینی رفتم طریقه به دس اوردن اعداد در مبنای دو و 10 رو خوندم !!
عدد هفت در مبنای 2 میشه 111
3 هم در مبنای 2 میشه 11 !!
حالا اومدی تا چار رقم ادامه دادی و جلوش صفر گذاشتی که خیالی نیس !!! ولی واقعا لازمه ؟!
بعد چطوری به روش دستی میتونی اینارو and بکنیشون ؟! :افسرده:
اون 0011 به روش دستی چطوری به دس اومده ؟!!!

سوال دیگه هم دارم : من رشتم cm نیس !!! اسم یه کتاب مفیدو در رابطه با اموزش vb میخوام از مبتدی تا پیشرفته تا بخرم و بخونمش !!!
زیرا احساس میکنم پدرم درومده !!!! (کتاب دارم ولی همه چیو قرو قاطی گفته)!

SlowCode
چهارشنبه 13 دی 1391, 16:55 عصر
نه نباید جلوش صفر بزاری باید پشتش بزاری اگه دقت کنین تو پست 17 نوشتم که میشه 0011

ولی واقعا لازمه ؟!
این کار فقط برایی اینه که اشتباه نکنیم وگرنه لازم نیست.
خب از راست به چپ اینا رو and میکنیم یعنی چون رقم اولی از راست هردو 1 هست نتیجه میشه 1 ، رقم دوم هم همینطور ولی تو رقم سوم چون رقم عدد 7 یک هست و رقم 3 صفر هست نتیجه میشه 0 (غلط) واسه رقم چهارم هم چون هر دوتاشون غلط هستن جواب میشه 0
پس نتیجه نهایی میشه 0011

من رشتم cm نیس !!!
cm چیه؟
کتاب آموزش ویژوال بیسیک در n+1 روز کتاب خوبیه. جستجو کنین پیداش میکنین.

Hashemvp
چهارشنبه 13 دی 1391, 17:01 عصر
cm = کامپیوتر

این کتاب اموزشی خوبه ولی همه چی بستگی ب خودتون داره ک چقدر علاقه داشته باشید و با چ روشی بهتر یاد میگیرد!!!

شما ک رشته ات این نیست و میخوای برنامه نویسی یاد بگیری بهتره ک ویبی 6 یاد نگیری

حداقل از زبان های برنامه نویسی نو رو یاد بگیر ک همه جا بکار بیاد مثلا VB.NET رو یاد بگیر شبیه به همین هست ولی گسترده تر و ساده تر

پلت فرم های ویندوز استفاده از Silverlight خلاصه چیز های نوین سراغ قدیم نرو ک از توشون فقط خانواده C در هرزمان بکار میاد.

موفق باشی

m2011kh
چهارشنبه 13 دی 1391, 19:39 عصر
سلام به همه دوستان.
هر بیت در کامپیوتر 6 عدده که شامل 0 و 1 میشه.مثلا:
001100
اگه آقای حسین به جای 11 مینویسه 0011 به خاطر اینه که معمولا کامپیوتر کارا با 0011 بیشتر عادت دارن و باهاش راحت ترن تا 11.
MMD