سوال سی پلاس پلاس ماتریس

سوال

هدف: پیدا کردن یک الگو در یک ماتریس دو بعدی
شرح پروژه:
که به ترتیب ابعاد ماتریس دو بعدی و الگوهست به برنامه داده می شود. m,n,p,q در ابتدا چهار عدد
هستند. p,q<m,n< الگو هم یک ماتریس دو بعدی اما کوچکتر است. همواره ۸۰
مقادیر این آرایه ها ۰ یا ۱ است که کاربر وارد می کند.
برنامه ای بنویسید که الگو را در ماتریس بزرگتر بیابد. نقاطی از ماتریس که الگو هستند را به همان صورت چاپ کند و بقسه نقاط را با مقدار ۲
جایگزین کند.
الگو اگر در ماتریس دوبعدی به صورت ۹۰,۱۸۰ با ۲۷۰ درجه نیز چرخیده باشد، باید پذیرفته شود.
تضمین می شود که اگر دو نمونه از الگو در ماتریس وجود داشته باشد، تداخلی بین این دو نمونه نباشد.
: نمونه ورودی ۱
۷ ۱۶ ۴ ۵
۱ ۱ ۰ ۱ ۱ ۰ ۰ ۰ ۱ ۱ ۱ ۰ ۱ ۱ ۰ ۰
۱ ۰ ۰ ۱ ۱ ۰ ۰ ۰ ۱ ۰ ۱ ۰ ۱ ۰ ۱ ۰
۰ ۱ ۰ ۱ ۱ ۰ ۰ ۰ ۱ ۱ ۰ ۰ ۰ ۱ ۰ ۱
۰ ۰ ۰ ۱ ۱ ۱ ۱ ۱ ۰ ۱ ۱ ۱ ۰ ۰ ۰ ۰
۱ ۰ ۰ ۱ ۰ ۱ ۱ ۰ ۱ ۰ ۰ ۰ ۱ ۱ ۰ ۱
۰ ۱ ۱ ۰ ۱ ۰ ۰ ۰ ۱ ۰ ۰ ۰ ۰ ۱ ۰ ۰
۱ ۱ ۰ ۰ ۱ ۰ ۱ ۰ ۱ ۱ ۰ ۰ ۱ ۰ ۱ ۱
۱ ۱ ۰ ۰ ۰
۱ ۱ ۰ ۰ ۰
۱ ۱ ۰ ۰ ۰
۱ ۱ ۱ ۱ ۱
: نمونه خروجی ۱
۲ ۲ ۲ ۱ ۱ ۰ ۰ ۰ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲
۲ ۲ ۲ ۱ ۱ ۰ ۰ ۰ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲
۲ ۲ ۲ ۱ ۱ ۰ ۰ ۰ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲
۲ ۲ ۲ ۱ ۱ ۱ ۱ ۱ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲
۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲
۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲
۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲
: نمونه ورودی ۲
(در این نمونه الگو به صورت چرخش ۹۰ درجه در ماتریس وجود دارد.)
۷ ۱۶ ۴ ۵
۱ ۱ ۰ ۰ ۱ ۰ ۰ ۰ ۱ ۱ ۱ ۰ ۱ ۱ ۰ ۰
۱ ۰ ۰ ۱ ۰ ۰ ۰ ۰ ۱ ۰ ۱ ۰ ۱ ۰ ۱ ۰
۰ ۱ ۰ ۱ ۱ ۱ ۱ ۰ ۱ ۱ ۰ ۰ ۰ ۱ ۰ ۱
۰ ۰ ۰ ۱ ۱ ۱ ۱ ۱ ۱ ۰ ۱ ۱ ۰ ۰ ۰ ۰
۱ ۰ ۰ ۱ ۰ ۰ ۰ ۰ ۰ ۱ ۰ ۰ ۱ ۱ ۰ ۱
۰ ۱ ۱ ۱ ۰ ۰ ۰ ۰ ۱ ۰ ۰ ۰ ۰ ۱ ۰ ۰
۱ ۱ ۰ ۱ ۰ ۰ ۰ ۰ ۱ ۱ ۰ ۰ ۱ ۰ ۱ ۱
۱ ۱ ۰ ۰ ۰
۱ ۱ ۰ ۰ ۰
۱ ۱ ۰ ۰ ۰
۱ ۱ ۱ ۱ ۱
: نمونه خروجی ۲
۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲
۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲
۲ ۲ ۲ ۱ ۱ ۱ ۱ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲
۲ ۲ ۲ ۱ ۱ ۱ ۱ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲
۲ ۲ ۲ ۱ ۰ ۰ ۰ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲
۲ ۲ ۲ ۱ ۰ ۰ ۰ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲
۲ ۲ ۲ ۱ ۰ ۰ ۰ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲ ۲

0
maryam 1 سال 0 پاسخ ها 97 دیده شده 0

ارسال یک پاسخ