یه کم کدنویسی
در برنامههای زیر نیازی به نوشتن include ها نیست و تنها رویه داخلی برنامه (همراه با تغییر متغیرها) را بنویسید.
- میدانیم حلقههای
forوwhileعملکرد مشابهی دارند. آیا همواره و در هر شرایطی میتوان کدی که در آن ازforاستفاده شده است را بدون استفاده ازgotoبهیک کد بدونforو باwhileتبدیل کرد؟ اگر بله، رویه کلّی این تبدیل را شرح دهید. اگر خیر، مثالی بزنید که نشودforرا بدون استفاده ازgotoبهwhileتبدیل کرد. - برنامهای بنویسید که عدد
unsigned int xرا از ورودی بخواند و بایتاینهی آن را در متغیرyنوشته و سپس در خروجی چاپ کند. بایتاینهی یک عددunsigned intچهار بایتی، عددی است که از تعویضswapبایت اول با چهارم و دوم با سوم (آینهای بایت بایت) بهدست میآید. مثلاً بایتاینهی عدد $(00000001~00000010~00000011~00000100)_2$ برابر است با $(00000100~00000011~00000010~00000001)_2$. شما باید برنامه خود را با عملگرهای معرفی شده و بدون استفاده از تابع یا متغیر اضافه بنویسید. نمره شما از این سؤال متناسب با تعداد عملگرهایی است که استفاده میکنید. - میدانیم مهره اسب در صفحه شطرنج به این صورت حرکت میکند ابتدا یک/دو خانه بهصورت افقی/عمودی میرود و سپس دو/یک خانه بهصورت عمودی/افقی. شدّت اسبیّت (اسبی بودن) یک خانه در صفحه شطرنج (وقتی کلّ صفحه خالی است) برابراست با تعداد خانههای مقصد مختلفی که کهیک اسب از آن خانه میتواند برود. برای مثال اسبیّت هر کدوم از ۴ خانهی گوشهی مربع ۸در۸ شطرنج برابر ۲ و اسبیّت خانههای وسط برابر ۸ است.
- میخواهیم برنامهای بنویسیم که در یک ماتریس ۸ در ۸ در خروجی، میزان اسبیّت ۶۴ خانهی شطرنج را محاسبه کرده و بنویسد.
این برنامه را طوری بنویسید که در آن حداکثر از یک if استفاده شود (عملگر ~?~:~ مجاز نیست). برنامه شما نباید آرایه اضافه (به جز آرایه دو بعدی جواب خروجی) بگیرد. برنامه شما نباید بیش از ۲۵ خط (خط عادی، بدون زورچپانی!) باشد وگرنه درصد زیادی از نمره این قسمت را از دست خواهید داد.