Problem

1 /12


ماتریس چیست؟ ایجاد، نمایش

Theory Click to read/hide

مقدمه 
اغلب، هنگام کار با هر اطلاعاتی، باید با داده های جدولی سروکار داشته باشید. برنامه های مدرن اغلب با چنین داده هایی کار می کنند. ساده ترین مثال برنامه نویسی بازی های روی تخته شطرنجی است: تیک تاک، شطرنج، چکرز و غیره.

در ریاضیات به چنین ساختارهایی ماتریس می گویند.
 
ماتریسیک جدول مستطیل شکل است که از عناصری از همان نوع (اعداد، رشته ها و غیره) تشکیل شده است. .)< /div>
چنین داده هایی در پاسکال را می توان به صورت آرایه های دو بعدی - "آرایه آرایه ها" ذخیره و پردازش کرد.
برای پردازش داده های جدول، لازم است وضعیت هر سلول (سلول) را به خاطر بسپارید. هر سلول دو عدد دارد: یک شماره ردیف و یک شماره ستون.
در ماتریس، هر عنصر دارای دو شاخص است: ابتدا شماره ردیف و سپس شماره ستون مشخص می شود. شماره گذاری سطرها و ستون ها از صفر شروع می شود.
به عنوان مثال، عنصر A[1][2] عنصری است که در ردیف دوم و ستون سوم قرار دارد.

درست مانند آرایه های معمولی (لیست ها)، برای کار با ماتریس ها، باید نحوه ایجاد، ورود، پردازش و نمایش آنها را یاد بگیرید.
 
ایجاد ماتریس
وظیفه
ماتریسی به اندازه داده شده پر از صفر در حافظه ایجاد کنید.

برای ایجاد درست یک ماتریس، باید کامپایلر را مجبور کنید تا تمام رشته ها را در حافظه به عنوان اشیاء مختلف ایجاد کند.
برای انجام این کار، ابتدا باید یک آرایه خالی ایجاد کنید، سپس تعداد ردیف های ماتریس را مشخص کنید و سپس تعداد عناصر هر ردیف را با استفاده از روش setLength() در یک حلقه مشخص کنید: N: = 3 M: = 2 setLength (A, N); برای i := 0 تا N - 1 do   setLength(A[i]، M);

 

پر کردن یک ماتریس با مقادیر دلخواه
پس از ایجاد یک ماتریس، می توانید آن را با مقادیر دلخواه پر کنید. از آنجایی که هر عنصر دارای دو شاخص است، استفاده از حلقه های تو در تو ضروری است برای i := 0 تا N شروع کنید برای j := 0 تا M شروع کنید A[i][j] := ...   پایان؛ پایان؛  
نمایش ماتریس

دو حلقه تودرتو معمولاً برای پردازش و نمایش لیست استفاده می شود. چرخه اول توسط شماره خط، چرخه دوم توسط عناصر داخل خط است.
برای نمایش سطر به خط ماتریس، جدا کردن اعداد با فاصله در یک خط، باید قطعه زیر را بنویسید:

برای i := 0 به طول (A) - 1 شروع می شود // طول (A) - تعداد ردیف های ماتریس A را برمی گرداند.     برای j := 0 به طول(A[i]) - 1 do // length(A[i]) - تعداد عناصر را در رشته i برمی گرداند.         نوشتن(a[i][j]، ' ');     writeln(); // بعد از نمایش خط یک خط جدید انجام دهید پایان؛

همانطور است، اما نه بر اساس شاخص، بلکه بر اساس مقادیر لیست چرخه می‌شود (حلقه for می‌تواند روی همه عناصر موجود در لیست (آرایه)، رشته تکرار شود):

برای ردیف در یک do start // روی تمام ردیف‌های ماتریس a تکرار شود     برای elem در ردیف انجام // حلقه تمام عناصر در ردیف         write(elem, ' ');     writeln(); پایان;

Problem

یک ماتریس باینری (شامل تنها از صفر و یک) را با الگوی شطرنجی پر کنید. باید یک عنصر null در گوشه سمت چپ بالا وجود داشته باشد.
 

ورودی
رشته ورودی شامل ابعاد ماتریس جدا شده با فاصله است: تعداد سطرها N و تعداد ستونها M ( 1 < = N ،  ;M <= 100 ).
 

Imprint 
برنامه باید سطر به سطر ماتریس باینری را خروجی دهد.
 

نمونه‌ها
<سر> <بدن>
# ورودی خروجی
1 4 5 <پیش> 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1