۰
subtitle
ارسال: #۱
  
مهندسی کامپیوتر ۸۹-پیدا کردن Follow
سلام دوستان.توی این سوال گرامر بازگشتی چپ داره !!حالا سوال من اینه باید بازگشتی چپ رو حذف کنیم یا نه؟؟؟؟
اگه نه لطف میکنید بگید چجوری یباید تو این حالت Follow خواسته شده رو حساب کنیم؟؟
اگه نه لطف میکنید بگید چجوری یباید تو این حالت Follow خواسته شده رو حساب کنیم؟؟
۱
ارسال: #۲
  
RE: مهندسی کامپیوتر ۸۹-پیدا کردن Follow
با سلام اینجا لازم نیست بازگشتی حذف کنیم خوب برای به دست اوردنش من اول مجموعه first هر متغیر به دست میارم که بعد بهش نیاز داریم
[tex]First\: A\: =\: a,\: \lambda[/tex]
[tex]First\: B\: =\: a,\: b,d,\: \lambda[/tex]
[tex]First\: C\: =\: d,\: \lambda[/tex]
[tex]First\: S\: =\: a,b,d,e[/tex]
حالا میریم سراغ مجموعه فالو عنصر شروع S هست و میدونیم دالر داخلش کپی میشه و تنها عضو فالوش هست چون S سمت راست نیومده که بخواهد فالو دیگه ای داشته باشه
[tex]Follow\: S\: =\: $[/tex]
[tex]Follow\: B\: =\: b,d,e[/tex]
[tex]Follow\: C\: =\: b,d,e[/tex]
[tex]Follow\: A\: =\: a,b,d,e[/tex]
اما بریم سراغ فالو گرفتن برای مجموعه ها خوب بعدی B
سمت راست ببینید بعد از متغیر B چیا اومده تو قانون ۱ سمبل e اومده و توی قانون ۵ هم سمبل b خوب اضافه می کنیم حالا توی قانون ۲ بعد از B متغیر C اومده پس First C به غیز ار لاندا داخل فالو B کپی میکنیم که میشه d اما اینجا یک نکته را میگم واسه بقیه موارد ببینید توی First C ما لاندا داشتیم خوب حالا اگر نگاه کنید بعد از C ما هیچ حرفی نداریم پس باید فالو متغیر سمت چپ قانون ۲ داخل فالو B کپی بشه اما اینجا چون خود B هست چیزی اضافه نمی کنه اما اگر مثلا جای B متغیر A در سمت چپ قانون ۲ بود فالو A هم داخل فالو B کپی میشد اما بریم سراغ ادامه بحثمون
توی قانون ۷ متغیر B اخر اومده پس باید فالو C داخلش کپی بشه دیگه چیز دیگه ای نیست و وقتی فالو C به دست اوردیم داخل فالو B کپی میکنیم اما بریم متغیر بعدی
متغیر C خوب سمت راست فقط داخل قانون دوم اومده و باید فالو B داخل فالو C کپی بشه پس یعنی فالو B با فالو C برابر میشه خوب
متغیر بعدی A سمت راست کجاها اومده؟ داخل قانون دوم خوب بعدش متغیر B پس ما First B به غیر از لاندا داخلش کپی میکنیم که میشه a,b,d
اما چون First B لاندا هم داره فرض میکنیم B لاندا باشه بعد از B توی قانون دوم چی هست؟ متغیر C پس First C هم به غیر لاندا داخلش کپی میکنیم که میشه d که قبلا کپی کردیم
(a,b,d)
حالا چون داخل First C هم لاندا بود باید فالو B هم داخل A کپی کنیم
که میشه b,d,e اما چون b,d هست فقط e کپی میشه
خوب A توی قانون ۷ هم اومده و بعدش متغیر B هست پس First B به غیر لاندا باید داخلش کپی شه اما یه بار اینکارو کردیم و لازم نیست ولی چون Frist B لاندا داره پس باید فالو C هم داخل فالو A کپی بشه اینجا چون فالو B با C برابر بود و قبلا فالو B کپی کردیم پس چیز جدیدی اضافه نمیکنه
خوب تموم شد جواب هم گزینه ۳ هست موفق باشید (طومار نوشتم فحش ندید )
[tex]First\: A\: =\: a,\: \lambda[/tex]
[tex]First\: B\: =\: a,\: b,d,\: \lambda[/tex]
[tex]First\: C\: =\: d,\: \lambda[/tex]
[tex]First\: S\: =\: a,b,d,e[/tex]
حالا میریم سراغ مجموعه فالو عنصر شروع S هست و میدونیم دالر داخلش کپی میشه و تنها عضو فالوش هست چون S سمت راست نیومده که بخواهد فالو دیگه ای داشته باشه
[tex]Follow\: S\: =\: $[/tex]
[tex]Follow\: B\: =\: b,d,e[/tex]
[tex]Follow\: C\: =\: b,d,e[/tex]
[tex]Follow\: A\: =\: a,b,d,e[/tex]
اما بریم سراغ فالو گرفتن برای مجموعه ها خوب بعدی B
سمت راست ببینید بعد از متغیر B چیا اومده تو قانون ۱ سمبل e اومده و توی قانون ۵ هم سمبل b خوب اضافه می کنیم حالا توی قانون ۲ بعد از B متغیر C اومده پس First C به غیز ار لاندا داخل فالو B کپی میکنیم که میشه d اما اینجا یک نکته را میگم واسه بقیه موارد ببینید توی First C ما لاندا داشتیم خوب حالا اگر نگاه کنید بعد از C ما هیچ حرفی نداریم پس باید فالو متغیر سمت چپ قانون ۲ داخل فالو B کپی بشه اما اینجا چون خود B هست چیزی اضافه نمی کنه اما اگر مثلا جای B متغیر A در سمت چپ قانون ۲ بود فالو A هم داخل فالو B کپی میشد اما بریم سراغ ادامه بحثمون
توی قانون ۷ متغیر B اخر اومده پس باید فالو C داخلش کپی بشه دیگه چیز دیگه ای نیست و وقتی فالو C به دست اوردیم داخل فالو B کپی میکنیم اما بریم متغیر بعدی
متغیر C خوب سمت راست فقط داخل قانون دوم اومده و باید فالو B داخل فالو C کپی بشه پس یعنی فالو B با فالو C برابر میشه خوب
متغیر بعدی A سمت راست کجاها اومده؟ داخل قانون دوم خوب بعدش متغیر B پس ما First B به غیر از لاندا داخلش کپی میکنیم که میشه a,b,d
اما چون First B لاندا هم داره فرض میکنیم B لاندا باشه بعد از B توی قانون دوم چی هست؟ متغیر C پس First C هم به غیر لاندا داخلش کپی میکنیم که میشه d که قبلا کپی کردیم
(a,b,d)
حالا چون داخل First C هم لاندا بود باید فالو B هم داخل A کپی کنیم
که میشه b,d,e اما چون b,d هست فقط e کپی میشه
خوب A توی قانون ۷ هم اومده و بعدش متغیر B هست پس First B به غیر لاندا باید داخلش کپی شه اما یه بار اینکارو کردیم و لازم نیست ولی چون Frist B لاندا داره پس باید فالو C هم داخل فالو A کپی بشه اینجا چون فالو B با C برابر بود و قبلا فالو B کپی کردیم پس چیز جدیدی اضافه نمیکنه
خوب تموم شد جواب هم گزینه ۳ هست موفق باشید (طومار نوشتم فحش ندید )
۰
ارسال: #۳
  
RE: مهندسی کامپیوتر ۸۹-پیدا کردن Follow
ممنونم از پاسختون!!!!میشه بگید First ها تو حالتی که مثل این سوال بازگشتی چپ داریم چجوری به دست میاد؟؟؟
۰
ارسال: #۴
  
RE: مهندسی کامپیوتر ۸۹-پیدا کردن Follow
سمت راست نگاه کنید مثلا قانون شماره ۵ که ماله B هست چی می تونه تولید کنه؟ یا لاندا میده یا چند بار تکرار میشه و بعد B با لاندا جایگزین میشه خوب چی تولید کرد؟ یه تعداد b
یا توی قانون ۳ برای متغیر A هم یا لاندا تولید می کنه یا یه تعداد a پس اینا میشن جز first
بقیه قسمت ها هم فک کنم واضحه اگه لازمه توضیح بدهم
یا توی قانون ۳ برای متغیر A هم یا لاندا تولید می کنه یا یه تعداد a پس اینا میشن جز first
بقیه قسمت ها هم فک کنم واضحه اگه لازمه توضیح بدهم
۰
ارسال: #۶
  
RE: مهندسی کامپیوتر ۸۹-پیدا کردن Follow
(۱۹ دى ۱۳۹۳ ۱۲:۲۰ ق.ظ)miladcr7 نوشته شده توسط: برای B رو توضیح بدید ممنون میشم
به نظر من همیشه اعمال کنید سپس ببینید چیه و اون ترمینال اولیش رو بنویسید.....
مثلا یکی از قاعده ها (قواعد تولید مثال فرضی من برای آموزش) اینه [tex]D\: \rightarrow\: BCD[/tex]
خب بااین فرض که
first(A) هم این هاست : a,lamda
first(B) هم این هاست : b,lamda
first(B) هم این هاست : c,lamda
حالا به من بگید که follow(B) چی هس؟؟؟
خب میشه در واقع first© => حال ببینید first© چی هس؟؟>>طبق فرض c و لاندا
خب گفتیم از روش من=>>> اول اعمال کنید..... => میشه BcD و BD خب حالا بگید follow(B) چیه؟؟؟
بله درست گفتید...c و first(D)
خب حالا برید ببینید first(D) چیه..... و همین روال .....
اگر وقت زیاد دارید= فیلم زیر رو دانلود کنید خیلی مفیده!!!!
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید.
به همین راحتی !!!
موفق وموید !
التماس دعا
۰
ارسال: #۷
  
RE: مهندسی کامپیوتر ۸۹-پیدا کردن Follow
برای B خوب باید ببینم سمت چپ چه قانون های متغیر B هست قانون شماره ۲ و ۵ و ۶
اول قانون ۵ چی هست لاندا پس اضافه میشه قانون ۶ چی؟ قانون ۶ چی تولید می کنه یه تعداد b تولید می کنه دیگه پس b هم اضافه میشه این دو تا قانون که تموم شد اما میریم سراغ قانون ۲
خوب قانون ۲ میگه با A شروع میشه پس باید تمام First A به جز لاندا را داخل First B کپی کنیم
اول میایم ببینم First A چیه خوب سمت چپ قانون ۴ و ۳ ما متغیر A داریم قانون ۴ که لاندا را تولید می کنه پس میزاریمش داخل First A
اما قانون ۳ یه تعداد a را تولید می کنه و وقتی به پایانی بره شروعش چی می تونه باشه؟
[tex]A\: \longrightarrow\: Aa \ \longrightarrow\: \lambda aaa\: =\: aaa[/tex]
خوب چی تولید کرد یه رشته تولید شد اولش چه سمبل پایانی هست؟ a اینطوری بگیم هر رشته این که تولید می کنه اولش چه پایانی می تونه باشه؟ a یا لاندا پس این دوتا را فقط تولید می کنه
حالا گفتیم First A به غیر از لاندا داخل First B کپی میشه پس یعنی A کپی میکنیم خوب تو قانون ۲ فرض کن A لاندا باشه
خوب بعدش چی اومده متغیر B خوب ما داریم B به دست میاریم و ۲ تاشو هم به دست اوردیم پس هر چیزی به دست بیاد تکراریه اما اگر دقت کنید توی B لاندا هست پس ما فرض می کنیم که B هم لاندا باشه خوب بعدش متغیر C هست که First C داخلش کپی میکنیم که میشه d
(دقت کنید لاندا چون از قبل بود کپیش نکردم) خوب تموم شد بازم اگر سوالی بود درخدمتیم
اول قانون ۵ چی هست لاندا پس اضافه میشه قانون ۶ چی؟ قانون ۶ چی تولید می کنه یه تعداد b تولید می کنه دیگه پس b هم اضافه میشه این دو تا قانون که تموم شد اما میریم سراغ قانون ۲
خوب قانون ۲ میگه با A شروع میشه پس باید تمام First A به جز لاندا را داخل First B کپی کنیم
اول میایم ببینم First A چیه خوب سمت چپ قانون ۴ و ۳ ما متغیر A داریم قانون ۴ که لاندا را تولید می کنه پس میزاریمش داخل First A
اما قانون ۳ یه تعداد a را تولید می کنه و وقتی به پایانی بره شروعش چی می تونه باشه؟
[tex]A\: \longrightarrow\: Aa \ \longrightarrow\: \lambda aaa\: =\: aaa[/tex]
خوب چی تولید کرد یه رشته تولید شد اولش چه سمبل پایانی هست؟ a اینطوری بگیم هر رشته این که تولید می کنه اولش چه پایانی می تونه باشه؟ a یا لاندا پس این دوتا را فقط تولید می کنه
حالا گفتیم First A به غیر از لاندا داخل First B کپی میشه پس یعنی A کپی میکنیم خوب تو قانون ۲ فرض کن A لاندا باشه
خوب بعدش چی اومده متغیر B خوب ما داریم B به دست میاریم و ۲ تاشو هم به دست اوردیم پس هر چیزی به دست بیاد تکراریه اما اگر دقت کنید توی B لاندا هست پس ما فرض می کنیم که B هم لاندا باشه خوب بعدش متغیر C هست که First C داخلش کپی میکنیم که میشه d
(دقت کنید لاندا چون از قبل بود کپیش نکردم) خوب تموم شد بازم اگر سوالی بود درخدمتیم
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close