ساده کردن عبارت بولی

sahar_2010

عضو جدید
سلام
برنامه: عبارت بولی را ازورودی گرفته و مینترم و عبارت ساده شده را نشان دهد.
من یه کم ازبرنامه رو نوشتم ولی اینجا که عبارت رو میگیره،مثلا xy+x`y میخوایم اگه عبارت xy بود مثلا توی آرایه a خونه ی 0 آن یک بذاره . و.....
میشه بهم بگین چطور میتونم؟؟؟یا اگه راه دیگه ای هست راهنماییم کنید.
 

zahra1386

مدیر بازنشسته
کاربر ممتاز
سلام
برنامه: عبارت بولی را ازورودی گرفته و مینترم و عبارت ساده شده را نشان دهد.
من یه کم ازبرنامه رو نوشتم ولی اینجا که عبارت رو میگیره،مثلا xy+x`y میخوایم اگه عبارت xy بود مثلا توی آرایه a خونه ی 0 آن یک بذاره . و.....
میشه بهم بگین چطور میتونم؟؟؟یا اگه راه دیگه ای هست راهنماییم کنید.

سلام

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

sahar_2010

عضو جدید
کمک

کمک

مثلا عبارت xy+x`y را از ورودی گرفته بعد مینترم ها رامشخص کرده وبعد عبارت ساده شده رانشان دهد.
مثال:
xy+x`y عبارت موردنظر. مینترم ها: m3=1 , m1=1 .و در نهایت عبارت ساده شده برابر با y خواهد بود.

الان من مینترمها رو دارم ولی چه طوری ساده کنم عبارت رو؟؟؟؟؟:(:(:(:crying2:
 

sahar_2010

عضو جدید
سلام

راهی که به فکر من میرسه اینه که شما روی عملگر ها تمرکز کنید!ینی این که عبارت رو بخونید و وقتی به عملگری رسیدید خوندن رو متوقف کنید و عبارت خونده شده رو در آرایه قرار بدید!بعد از خوندن کامل جمله و تشکیل ارایه حالا میتونید عناصر آرایه رو با هم مقایسه کنید و عملیات ساده سازی رو انجام بدین...
مقایسه کردن عناصر آرایه خیلی زیاد میشه...الان واسه 2متغیره 18تا if نوشتم.واسه 3-4تا که دیگه.....
کاش یه راه آسونتر داشت...
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
با سلام،
مگه با جدول کارنو آشنا نیستید؟
یه ماتریس به عنوان جدول کارنو در نظر بگیرید و مینترم ها رو داخلش توزیع کنید و مشابه عملی که اون جا انجام می شه، جدول رو ساده کنید!
 

sahar_2010

عضو جدید
ساده کردن؟؟؟؟

ساده کردن؟؟؟؟

با سلام،
مگه با جدول کارنو آشنا نیستید؟
یه ماتریس به عنوان جدول کارنو در نظر بگیرید و مینترم ها رو داخلش توزیع کنید و مشابه عملی که اون جا انجام می شه، جدول رو ساده کنید!

سلام.
کاملا آشنا هستم ولی مشکل سر ساده کردنش هست...باید یکی یکی خونه های ماتریس مقایسه شن که این کارخیلی زمانگیر و زیاد میشه...
میخوام ببینم راه آسونتری وجود داره؟
الان جدول کارنو با مینترم های داخلشو دارم ولی ساده کردنش...؟؟
 

sayyad84

متخصص زبان Assembly
کاربر ممتاز
راستش یکی از دوستان برنامه ای نوشته بود برای حل این مسائل به روش کوئین مک کلاوسکی! چون مال خیلی وقت پیش بود فکر کردم کارنو رو نوشته ولی الان فهمیدم این طور نبوده!!
برای حل کارنو فقط به یک های جدول کار داریم، پس ماتریس رو خونه به خونه می گردید تا یک پیدا کنید!
با پیدا شدن یک باید شرایط وجود حلقه رو بررسی کنید و تمام حلقه های ممکن رو پیدا کرده و به خروجی ببرید! یعنی از سمت راست هر چی یک داریم و به سمت پایین هرچی یک هست! از اونجایی که از بالا و چپ شروع می کنیم این دو جهت نیاز به بررسی ندارن!
اگر در ستون صفر و ستون آخر جدول (در یک سطر) یک داشته باشیم هم حلقه به حساب میاد، همین طور برای سطر اول و آخر و ستون یکسان!
فکر می کنم کار ساده ای باشه! امیدوارم موفق بشید!
 

Similar threads

بالا