زمان کنونی: ۰۹ آذر ۱۴۰۳, ۰۷:۱۸ ق.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

تست از سمافور - آزاد ۸۳

ارسال:
  

هاتف پرسیده:

تست از سمافور - آزاد ۸۳

سلام
به سوالی که پیوست کردم توجه بفرمائید:


گفته کدام خروجی اصلا رخ نمیده؟
پاسخنامه جواب رو گزینه ۲ معرفی کرده و استدلال اش هم درسته، ولی به نظرم گزینه ی ۳ و ۴ هم نمیتونه توی خروجی بیاد، استدلال من اینه که اگر بخواهیم Bچاپ بشه چون سمافور B مقدار اولیه ۰ داره قبلش باید P3 اجرا بشه و یک C چاپ کنه که سمافور B یک بشه بنابراین اصلا نمیشه که اول رشته B چاپ بشه!
نظر شما چیه؟
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

azad_ahmadi پاسخ داده:

RE: تست از سمافور - آزاد ۸۳

سلام.

در گزینه ۲ (که جواب سوال هم هست)، ۳تا حرف C وجود دارد.
برای اینکه ۳تا حرف C چاپ شود باید فقط پردازه سوم یا P3 اجرا شود (توجه کنید که Print C تنها در پردازه P3 انجام میشود).
برای اینکه به غلط بودن گزینه سوم برسیم باید ببینیم که اون ترتیب انجام میشه یا نه؛ برای اون ترتیب باید ابتدا ۲بار پردازه P3 اجرا شود.(به طور کامل). در این صورت دوبار signal B باعث میشود که مقدار اولیه سمافور B از ۰ به ۳ تبدیل شود. همچنین باید بدونیم که با دوبار اجرای P3 مقدار سمافور C برابر ۰ میشه (بدلیل دوتا Wait B که انجام میشه).
از اینجا به بعد یه نکته بسیار ریز وجود داره. """ برای اینکه C سومی (یا همون اخری اجرا بشه باید یک بار signal C داده بشه تا مقدار اولیه اون ۱ بشه و بتونه P3 رو اجرا کنه و C رو چاپ""" اما در تمام کدها تنها جایی که Signal C استفاده شده، P1 هست اما توجه کنید که قبل از P1 نوشته Print A پس این یعنی اشتباه.
اینطور راحت تر بگم خدمتت هاتف جان، هروقت دوتا C پشت سرهم بیان در این سوال مقدار سمافور C برابر با ۰ میشه. و وقتی ۰ بشه دیگه نمتونه C دیگه ای رو چاپ کنه تا زمانی که از یه جایی Signal C زده بشه و دوباره بشه C رو چاپ کرد، اما مشکل اینجاست که قبل از Signal C عبارت Print A اومده، این یعنی که بعد از هر دوتا C چاپ شده برای اینکه بشه C دیگه ای رو هم چاپ کرد "حتما" باید یک A هم باشه در غیر اینصورت امکان وجود یک C دیگه نداره. اما در گزینه دوم همینطور که میبینیم هیچ A یی نیست پس گزینه دوم در هیچ حالتی چاپ نمیشه.

توضیح بیشتر خواست در خدمتم.
نقل قول این ارسال در یک پاسخ

ارسال:
  

هاتف پاسخ داده:

RE: تست از سمافور - آزاد ۸۳

(۲۹ آبان ۱۳۹۲ ۰۹:۵۰ ب.ظ)azad_ahmadi نوشته شده توسط:  سلام.
در گزینه ۲ (که جواب سوال هم هست)، ۳تا حرف C وجود دارد.....
....
اما در گزینه دوم همینطور که میبینیم هیچ A یی نیست پس گزینه دوم در هیچ حالتی چاپ نمیشه.
سلام
ممنون از توضیحات مفصل ات ولی این سوال من نبود!
من عرض کردم که در غلط بودن گزینه دوم شکی نیست، ولی علاوه بر اون به نظرم گزینه های ۳ و ۴ هم غلط اند، یعنی سوال ۳ جواب صحیح داره!
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

azad_ahmadi پاسخ داده:

RE: تست از سمافور - آزاد ۸۳

صورت سوال نوشته شده ترتیب C . B . A هست. و مقدار هم به همین ترتیب ۰ ۱ ۲ . ترتیب در صورت سوالی که پیوست شده اشتباه است.
نقل قول این ارسال در یک پاسخ



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
Exclamation سوال از سمافور mary1234 ۱ ۲,۴۹۸ ۰۶ آذر ۱۳۹۷ ۰۷:۳۱ ب.ظ
آخرین ارسال: fatemehshiravani1998
  ۸۳۸ نرم افزار- محل قبولی؟ عشقم هوش مصنوعی ۰ ۱,۸۵۶ ۱۰ خرداد ۱۳۹۷ ۱۱:۱۵ ق.ظ
آخرین ارسال: عشقم هوش مصنوعی
  تحلیل کدنویسی(سمافور) diiimah ۰ ۱,۵۸۴ ۱۵ اردیبهشت ۱۳۹۷ ۰۱:۱۳ ب.ظ
آخرین ارسال: diiimah
  دانشگه های مجاز با رتبه ۸۳۸۴ هوش و رتبه ۸۷۳۲ ای تی(شبکه) roshi65 ۲ ۳,۰۵۳ ۱۶ خرداد ۱۳۹۶ ۰۱:۵۸ ب.ظ
آخرین ارسال: roshi65
  سمافور IT94 Hopegod ۴ ۳,۴۴۱ ۰۳ اردیبهشت ۱۳۹۶ ۱۱:۵۷ ب.ظ
آخرین ارسال: *tarannom*
  سمافور *tarannom* ۷ ۴,۹۲۷ ۱۸ فروردین ۱۳۹۶ ۰۲:۲۴ ب.ظ
آخرین ارسال: *tarannom*
  تعریف کلی سمافور alireza01 ۳ ۴,۷۷۴ ۰۳ بهمن ۱۳۹۵ ۰۲:۳۴ ب.ظ
آخرین ارسال: Saman
  سمافور ، کارشناسی ارشد کامپیوتر سراسری ۷۶ joyebright ۴ ۳,۷۴۶ ۰۳ آبان ۱۳۹۴ ۱۱:۳۱ ب.ظ
آخرین ارسال: محمد رعیت
  ۸۳۶ شبکه ۹۸۰ تجارت betty_m ۰ ۱,۱۷۴ ۲۳ اردیبهشت ۱۳۹۴ ۱۱:۴۲ ق.ظ
آخرین ارسال: betty_m
  نمونه سوال های مفهومی از مبحث سمافور Emadsmart ۴ ۶,۹۳۲ ۳۰ فروردین ۱۳۹۴ ۰۲:۵۴ ب.ظ
آخرین ارسال: Sadi_gh

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close