در این مطلب از مجله فرادرس، برای تمرین، چند نمونه سوال حلقه for در سی شارپ با جواب را بررسی کرده‌ایم. حلقه‌ی «for» یکی از مهم‌ترین موارد در بین انواع حلقه‌ها در زبان برنامه نویسی سی شارپ است. در بسیاری از پروژه‌ها و الگوریتم‌ها از این حلقه استفاده می‌شود. درک درست حلقه‌ی for و توانایی پیاده‌سازی وظایف تکراری با آن، یکی از مهارت‌های اولیه برای هر برنامه نویسی است. اگر به دنبال تمرین بیشتر برای تقویت مهارت کدنویسی خود هستید، نمونه سوالات این بخش می‌توانند بسیار مفید باشند. هر سوال همراه با پاسخ ارائه شده تا بتوانید راحت‌تر مفهوم را یاد بگیرید و اشکالات خود را بررسی کنید.

فهرست مطالب این نوشته
997696

در این مطلب، ۲۴ نمونه سوال حلقه for در سی شارپ با جواب مطرح شدند. ابتدا سوال را نوشته و سپس کدهای مربوط به جواب را قرار داده‌ایم. در آخر هم هر کدام از کدها را با توجه به پیچیدگی و وظیفه‌شان توضیح دادیم. جواب تمام سوالات این مطلب با کمک حلقه for نوشته شده‌اند.

نمونه سوال حلقه for در سی شارپ با جواب برای چاپ ۱۰ عدد طبیعی

در این تمرین قرار است که برنامه‌ای را برای نمایش ۱۰ عدد اول طبیعی بنویسیم. خروجی این برنامه باید برابر با 1 2 3 4 5 6 7 8 9 10 باشد. توانایی کار با انواع حلقه‌ها در سی شارپ فقط بخشی از قدرت این زبان را در اختیار توسعه‌دهندگان قرار می‌دهد. برای یادگیری عمیق‌تر و بهره‌برداری کامل از توانمندی‌های سی‌شارپ، استفاده از منابع آموزشی کامل‌تر ضروری است. به این منظور پیشنهاد می‌کنیم که فیلم آموزش کاربردی برنامه نویسی سی شارپ را از فرادرس مشاهده کنید. لینک مربوط به این فیلم را در پایین نیز قرار داده‌ایم.

در کادر زیر پاسخ این مسئله را نوشته‌ایم.

در فهرست زیر، تمام عملیات انجام شده در حلقه for  را توضیح داده‌ایم.

  1. با کد i = 1  مقدار اولیه‌ی i  برابر 1  قرار داده شده است.
  2. تا وقتی i <= 10  باشد، حلقه ادامه دارد.
  3. با کمک عبارت i++  در هر تکرار، مقدار i  یک واحد افزایش می‌یابد.
  4. در هر دور از حلقه با استفاده از عبارت Console.Write(“{0} “, i);، مقدار i  چاپ می‌شود.

در نتیجه، اعداد طبیعی 1  تا 10  به ترتیب چاپ می‌شوند. در کد بالا حلقه for  در مجموع 10  بار اجرا می‌شود.

پسرک کم سن و سالی به صورت نشسته با لپتاپ کار می‌کند.

نمایش اعداد طبیعی و جمع آن‌‌ها

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

برای مثال، اگر به این برنامه عدد 7  را ارسال کنیم، باید جوابی به شکل زیر در خروجی نمایش داده شود.

The first 7 natural numbers are:
1 2 3 4 5 6 7 
The Sum of Natural Numbers up to 7 terms : 28 

در کادر زیر، پاسخ سوال بالا را پیاده‌سازی کرده‌ایم.

در کد بالا ابتدا سه متغیر i  و n  و sum = 0  را با نوع داده int  تعریف کردیم. سپس مقداری را به عنوان ورودی از کاربر دریافت کرده‌ و به متغیر n  اختصاص دادیم.

بدنه اصلی حل مسئله در داخل حلقه for  قرار دارد. در فهرست زیر، عملیات انجام شده در حلقه for  را به صورت کامل توضیح داده‌ایم.

  •  با کد i = 1  مقدار اولیه‌ی i  برابر 1  قرار داده شده است.
  •  تا وقتی i <= n  باشد، حلقه ادامه دارد.
  •  با کمک عبارت i++  در هر تکرار، مقدار i  یک واحد زیاد می‌شود.
  • در هر گردش حلقه، مقدار i  با استفاده از عبارت Console.Write(“{0} “, i);  چاپ می‌شود.
  •  سپس با دستور sum += i;  مقدار i  به متغیر sum  اضافه می‌شود.

در نتیجه، اعداد طبیعی از 1  تا n  به ترتیب چاپ شده و حاصل جمع آن‌ها نیز در متغیر sum  ذخیره می‌شود. در کد بالا، حلقه for  در مجموع n  بار اجرا می‌شود.

دریافت چند ورودی و محاسبه میانگین و جمع آن‌ها

در این مسئله باید برنامه‌ای بنویسیم که 10  مقدار مختلف از کاربر دریافت کند. سپس تمام متغیر‌ها را با یکدیگر جمع کرده و نتیجه و مقدار میانگین آن‌ها را به بیرون برگرداند. خروجی این برنامه باید مانند کادر زیر باشد.

The sum of 10 no is : 51
The Average is : 5.100000

نکته: اعداد نمایش داده شده در کادر بالا براساس مقادیری تولید شده‌اند که ما وارد کرده‌ایم. وارد کردن مقادیر مختلف می‌تواند خروجی‌های متفاوتی تولید کند.

پنجره‌ای با خطوط افقی در بین چند چرخ‌دنده شناور در هوا قرار دارد.

در کادر زیر، پاسخ سوال بالا را پیاده‌سازی کرده‌ایم.

در کد بالا ابتدا چهار متغیر i  و n  و sum = 0  و avg  را تعریف کردیم. متغیر avg  از نوع Double است زیرا ممکن است مقدار میانگین اعشاری شود. سپس از کاربر خواسته‌ایم که 10  عدد را وارد کند و بعد مجموع و میانگین آن‌ها را محاسبه کرده‌ایم.

عملیات انجام شده در حلقه for  را در فهرست زیر، توضیح داده‌ایم.

  1. با کد i = 1  مقدار اولیه‌ی شمارنده i  برابر 1  قرار داده شده است.
  2. تا وقتی i <= 10  باشد، حلقه ادامه دارد.
  3. با کمک عبارت i++  در هر تکرار، مقدار i  یک واحد افزایش پیدا می‌کند.
  4. در هر دور از حلقه، یک عدد از کاربر گرفته شده و در متغیر n  ذخیره می‌شود.
  5. سپس با عبارت sum += n  عدد وارد شده بهsum  اضافه می‌شود.

بعد از پایان حلقه، مجموع ۱۰ عدد وارد شده در متغیر sum  قرار می‌گیرد. برای محاسبه‌ی میانگین، مجموع را بر عدد ۱۰ تقسیم کرده‌ و در متغیر avg  ذخیره کردیم. در مثال بالا، حلقه for، ده بار اجرا می‌شود.

فیلم های آموزشی سی شارپ در فرادرس

استفاده از فیلم‌های آموزشی سی شارپ در فرادرس، یادگیری این زبان را برای همه سطوح – از مبتدی تا حرفه‌ای – آسان کرده است. این فیلم‌ها همگی توسط اساتید با تجربه تهیه شده‌اند. فیلم‌های فرادرس از مباحث پایه‌ای مانند سینتکس تا موضوعات پیشرفته‌ای مثل برنامه نویسی شی‌‌ءگرا و پروژه‌های عملی را پوشش می‌دهند. این فیلم‌ها رویکردی مثال‌محور دارند. با مشاهده این فیلم‌ها در مدت‌ زمان کوتاهی سی شارپ را یاد گرفته و در آن مهارت پیدا می‌کنید.

مجموعه آموزش برنامه نویسی سی شارپ C#‎ – مقدماتی تا پیشرفته
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه فیلم‌های آموزش برنامه نویسی سی شارپ، دوره مقدماتی تا پیشرفته، هدایت شوید.

C#‎ به خوبی با سیستم‌ها و فناوری‌های مختلف ترکیب شده و به عنوان یک زبان ساده، امن و انعطاف‌پذیر شناخته می‌شود. این زبان برنامه نویسی در حوزه‌های متنوعی مثل ساخت نرم‌افزارهای دسکتاپ، وب، موبایل و همچنین بازی‌ها کاربرد دارد. بنابراین افراد زیادی برای رسیدن به موقعیت‌های شغلی دلخواه خود سی شارپ را یاد می‌گیرند. فرادرس – با توجه به نیاز کشور به نیرو انسانی متخصص – تلاش کرده است تا با کیفیت‌ترین دوره‌ها را تولید و منتشر کند. برای یاد گرفتن زبان برنامه نویسی #C کافی است به وب‌سایت فرادرس سر بزنید و دوره مناسب خود را انتخاب کنید.

در بالا چند مورد از فیلم‌های این مجموعه آموزشی را معرفی کرده‌ایم. برای مشاهده فیلم‌های بیشتر بر روی تصویر بالا کلیک کنید.

نمونه سوال حلقه for در سی شارپ با جواب برای محاسبه مکعب اعداد

در این مسئله باید برنامه‌ای بنویسیم که عدد صحیحی را از کاربر دریافت کند. سپس توان سوم تمام مقادیر کوچک‌تر یا مساوی آن عدد را محاسبه کند. حد پایین مقادیر کوچک‌تر از آن عدد 1  است.

برای مثال، با فرض ارسال کردن عدد 5 به عنوان ورودی، برنامه باید خروجی زیر را تولید کرده و نمایش دهد.

Input number of terms : 5
Number is : 1 and cube of the 1 is :1 
Number is : 2 and cube of the 2 is :8 
Number is : 3 and cube of the 3 is :27 
Number is : 4 and cube of the 4 is :64 
Number is : 5 and cube of the 5 is :125 

در کادر زیر، پاسخ سوال بالا را پیاده‌سازی کرده‌ایم.

در کد بالا ابتدا دو متغیر i  و ctr  را تعریف کرده‌ایم. سپس از کاربر خواسته‌ایم عددی را وارد کند. با توجه به مقدار وارد شده توسط کاربر، مشخص می‌شود که چند عدد باید بررسی شوند. عدد وارد شده توسط کاربر در متغیر ctr  ذخیره می‌شود.

در فهرست زیر، عملیات انجام شده در حلقه for  را به صورت کامل توضیح داده‌ایم.

  • مقدار اولیه‌ی شمارنده i  برابر 1  قرار داده شده است.
  • تا وقتی i <= ctr  باشد، حلقه ادامه دارد.
  • با کمک عبارت i++  در هر تکرار، مقدار i  یک واحد افزایش می‌یابد.
  • در هر دور از حلقه، مقدار مکعب i  با فرمول i * i * i  محاسبه می‌شود.
  • سپس عدد i  و مکعب آن با استفاده از دستور Console.Write(“Number is …) به کاربر نشان داده می‌شوند.
چند صفحه از محیط کدنویسی به در داخل کادرهای درخشان وطلایی رنگ قرار دارند.

در نتیجه اجرای برنامه بالا عددهای 1  تا ctr  و مکعب آن‌ها در خروجی، چاپ می‌شوند. در کد بالا، حلقه for  به اندازه مقدار ذخیره شده در متغیر ctr  اجرا می‌شود. مقدار این متغیر را کاربر قبلا وارد کرده است.

نمونه سوال حلقه for در سی شارپ با جواب برای نمایش مضارب عدد

در این مسئله باید برنامه‌ای را بنویسیم که ابتدا مقداری را با نوع عدد صحیح از کاربر دریافت کند. سپس تمام مضارب این مقدار را از 1  تا 10  نمایش دهد. برای مثال، فرض کنیم کاربر عدد 15  را وارد کرده است. خروجی برنامه باید به شکل زیر باشد.

Input the number (Table to be calculated) : 15
15 X 1 = 15 
15 X 2 = 30 
15 X 3 = 45 
15 X 4 = 60 
15 X 5 = 75 
15 X 6 = 90 
15 X 7 = 105 
15 X 8 = 120 
15 X 9 = 135 
15 X 10 = 150 

در کادر زیر، پاسخ سوال بالا را پیاده‌سازی کرده‌ایم.

در کد بالا ابتدا دو متغیر j  و n  را تعریف کردیم. هر دو متغیر با نوع عدد صحیح، تعریف شده‌اند. متغیر n  برای گرفتن عددی است که می‌خواهیم جدول ضرب آن را نمایش دهیم. پس باید مقدار گرفته شده از کاربر را در متغیر n  ذخیره کنیم.

در فهرست زیر، عملیات انجام شده در حلقه for  را توضیح داده‌ایم.

  1. با کد j = 1  مقدار اولیه‌ی j  برابر 1  قرار داده شده است.
  2.  تا وقتی j <= 10  باشد، حلقه ادامه دارد.
  3. با کمک عبارت j++  در هر تکرار، مقدار j  یک واحد افزایش پیدا می‌کند.
  4. در هر دور از حلقه، حاصل‌ضرب n  در j  محاسبه می‌شود.
  5.  سپس حاصل ضرب به همراه اعداد n  و j  - در قالب جدول ضرب – نمایش داده می‌شوند.

در این کد در مجموع، حلقه for، ۱۰ بار اجرا می‌شود.

چند مکعب رنگی در وسط تصویر هستند و در میان آن‌ها یک فلش حلقوی آبی رنگ قرار دارد - نمونه سوال حلقه for در سی شارپ با جواب

نمایش محدود جدول ضرب

برنامه‌ای بنویسید که عددی را از کاربر دریافت کند. سپس به اندازه عدد دریافت شده، ستون‌های جدول ضرب را نمایش دهد. ردیف‌های این جدول ضرب از 1  تا 10  است.

به عنوان نمونه فرض کنیم که کاربر عدد 5  را وارد کند. خروجی این برنامه باید به شکل زیر شود.

Input up to the table number starting from 1 : 5
Multiplication table from 1 to 5
1x1 = 1, 2x1 = 2, 3x1 = 3, 4x1 = 4, 5x1 = 5
1x2 = 2, 2x2 = 4, 3x2 = 6, 4x2 = 8, 5x2 = 10
1x3 = 3, 2x3 = 6, 3x3 = 9, 4x3 = 12, 5x3 = 15
1x4 = 4, 2x4 = 8, 3x4 = 12, 4x4 = 16, 5x4 = 20
1x5 = 5, 2x5 = 10, 3x5 = 15, 4x5 = 20, 5x5 = 25
1x6 = 6, 2x6 = 12, 3x6 = 18, 4x6 = 24, 5x6 = 30
1x7 = 7, 2x7 = 14, 3x7 = 21, 4x7 = 28, 5x7 = 35
1x8 = 8, 2x8 = 16, 3x8 = 24, 4x8 = 32, 5x8 = 40
1x9 = 9, 2x9 = 18, 3x9 = 27, 4x9 = 36, 5x9 = 45
1x10 = 10, 2x10 = 20, 3x10 = 30, 4x10 = 40, 5x10 = 50

در کادر زیر، پاسخ سوال بالا را پیاده‌سازی کرده‌ایم.

در کد بالا، سه متغیر j  و i  و n  تعریف شده‌اند. متغیر n  عددی را از کاربر دریافت کرده و ذخیره می‌کند. متغیرهای i  و j  هم برای استفاده در حلقه‌های تودرتو به کار می‌روند. عدد ذخیره شده در متغیر n  تعداد ستون‌های جدول ضرب را تعیین می‌کند. برای حل این مسئله از حلقه for  به شکل تودرتو استفاده کرده‌ایم.

در فهرست زیر، عملیات انجام شده در حلقه for  بیرونی توضیح داده شده است.

  • شمارنده حلقه بیرونی از مقدار i = 1  شروع می‌شود.
  •  تا وقتی i <= 10  باشد، حلقه ادامه دارد.
  •  با هر تکرار، مقدار i  یک واحد افزایش پیدا می‌کند.
  •  این حلقه ۱۰ بار اجرا می‌شود. در هر دور از حلقه با توجه به مقدار i  یک ردیف از جدول ضرب چاپ می‌شود.

در داخل حلقه‌ی بیرونی، حلقه‌ی دیگری وجود دارد. از متغیر j  به عنوان شمارنده این حلقه استفاده کرده‌ایم. روش کار حلقه درونی در فهرست زیر نوشته شده است.

  • حلقه درونی با مقدار j = 1  کار خود را شروع می‌کند.
  • تا وقتی j <= n  باشد، حلقه ادامه دارد.
  • با هر تکرار، مقدار j  یک واحد زیاد می‌‌شود.
  • این حلقه برای هر مقدار i، اعداد 1  تا n  را ضرب می‌کند.
  • برای نشان داده نشدن علامت , در خط آخر از دستور شرطی if  استفاده کرده‌ایم.
    • اگر j  کوچکتر از n  باشد، حاصل ضرب به صورت jxi =  جواب با علامت ,  چاپ می‌شود.
    • اما اگر j  برابر n  باشد، فقط حاصل ضرب چاپ می‌شود و علامت ,  نمایش داده نمی‌شود.
تصویری از بالا از یک لپتاپ باز بر روی میز که لیوان قوه هم در کنارش قرار دارد.

در نتیجه، جدول ضرب اعداد 1  تا n  به صورت ستونی چاپ می‌شود. در کد بالا، حلقه بیرونی ۱۰ بار و حلقه درونی n  بار برای هر تکرار اجرا می‌شود.

نمونه سوال حلقه for در سی شارپ با جواب برای محاسبه مجموع اعداد فرد

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

برای مثال، فرض کنیم که کاربر عدد 5 را به عنوان ورودی به برنامه ارسال کرده است. خروجی باید به شکل زیر باشد.

Input number of terms : 5

The odd numbers are :1 3 5 7 9
The Sum of odd Natural Numbers up to 5 terms : 25

در کادر زیر، پاسخ سوال بالا را پیاده‌سازی کرده‌ایم.

در کد بالا، سه متغیر i  و n  و sum  تعریف شده‌اند. این متغیرها را در فهرست زیر معرفی کرده‌ایم.

  • متغیر n  برای دریافت عدد مورد نظر کاربر استفاده می‌‌شود.
  • متغیر i به عنوان شمارنده حلقه به کار می‌رود.
  • متغیر sum  برای ذخیره جمع اعداد فرد استفاده می‌شود.

در خط ۱۵، عددی را از کاربر گرفته و در متغیر n  ذخیره می‌کنیم. برای تولید اعداد فرد در حلقه for از عبارت (2 * i – 1)  استفاده کرده‌ایم. در هر چرخش حلقه، عدد فرد در کنسول سی شارپ نمایش داده می‌شود. سپس این عدد را به متغیر sum  اضافه می‌‌کنیم. در نهایت هم مجموع اعداد فرد از 1  تا n  نمایش داده می‌شود.

تصویر مینیمال و فانتزی از یک صفحه اینترنتی با حرف بزرگ C در وسط

نمایش الگوی مثلث قائم‌الزاویه با ستاره

باید برنامه‌ای بنویسیم که مقداری را به عنوان ورودی از کاربر دریافت کند. سپس بر اساس این مقدار، مثلث قائم‌الزاویه‌ای با الگوی زیر رسم کند. در این مثال فرض شده که کاربر عدد 10  را وارد کرده است. تعداد سطر و ستون ستاره‌های مثلث برابر با مقدار وارد شده توسط کاربر هستند.

Input number of rows : 10
*
**
***
****
*****
******
*******
********
*********
**********

در کادر زیر، پاسخ سوال بالا را پیاده‌سازی کرده‌ایم.

در کد بالا، سه متغیر i  و j  و rows  تعریف شده‌اند. متغیر rows  برای دریافت تعداد ردیف‌ها از کاربر استفاده می‌شود. متغیرهای i  و j  نیز به عنوان شمارنده در حلقه‌ها به کار می‌روند. در خط ۱۵ از کد بالا، تعداد ردیف‌ها از کاربر دریافت شده و در متغیر rows  ذخیره می‌شود. بر اساس مقدار متغیر rows  و با کمک حلقه for  الگوی مورد نظر چاپ می‌شود.

در فهرست زیر، عملیات انجام شده در دو حلقه تو در تو – حلقه for  بیرونی و درونی – به صورت کامل توضیح داده شده است.

  • حلقه بیرونی با مقدار i = 1  شروع به کار می‌کند.
  • تا وقتی i <= rows  باشد، کار حلقه ادامه دارد.
  • با هر تکرار، مقدار i  یک واحد افزایش می‌یابد.
  • این حلقه برای هر مقدار i  یک ردیف از الگو را چاپ می‌کند. برای چاپ هر ردیف از الگو حلقه درونی باید یه دور کامل پیمایش کند.
یک فلوچارت تشکیل شده از دو عبارت شرطی
فلوچات حلقه‌های for تودرتو برای نمایش الگوی مثلث قائم‌الزاویه با ستاره

در فهرست زیر هم روش کار حلقه for  درونی را نوشته‌ایم.

  • کار حلقه درونی با مقدار j = 1  شروع می‌شود.
  • تا وقتی j <= i  باشد، حلقه ادامه دارد.
  • با هر تکرار، مقدار j  یک واحد افزایش می‌یابد.
  • با هر گردش این حلقه، یک ستاره «*» چاپ می‌شود.
  • در پایان هر تکرار حلقه‌ی درونی، کد Console.Write(“n”);  در حلقه بیرونی اجرا می‌شود. با کمک این کد، ادامه رسم ستاره‌ها در خط بعدی انجام می‌شود. به این صورت می‌توانیم الگوی مثلثی درست کنیم.

در نتیجه، الگوی ستاره‌ها به شکل مثلث قائم‌الزاویه‌ای چاپ می‌شود. ضلع قائم این مثلث در سمت چپ آن قرار دارد. در کد بالا، حلقه بیرونی به مقدار متغیر rows  و حلقه درونی به اندازه i  اجرا می‌شوند.

دو فلش خمیده که به انتهای یکدیگر اشاره می‌کنند. بر روی صفحه کدنویسی

مثلث قائم‌الزاویه با اعداد

در این مسئله عددی را از کاربر دریافت می‌کنیم. باید با عدد دریافت شده از کاربر مثلث قائم‌الزاویه‌ای ایجاد کنیم. تعداد ردیف‌ها و ستون‌های تشکیل دهنده این مثلث برابر با مقدار دریافت شده است. عناصر تشکیل دهنده این مثلث‌ هم باید اعداد صحیح کوچک‌تر یا مساوی عدد دریافت شده باشند.

فرض کنیم که کاربر عدد 10  را وارد کرده است. خروجی این برنامه باید به شکل زیر نمایش داده شود.

Input number of rows : 10
1
12
123
1234
12345
123456
1234567
12345678
123456789
12345678910

در کادر زیر، پاسخ سوال بالا را پیاده‌سازی کرده‌ایم.

در کد بالا، سه متغیر i  و j و rows  تعریف شده‌اند. از متغیر rows  برای دریافت تعداد ردیف‌ها از کاربر استفاده می‌شود. متغیرهای i  و j  برای استفاده در حلقه‌ها – به عنوان شمارنده – به کار می‌روند. در خط شماره ۱۵ کد بالا، تعداد ردیف‌ها از کاربر دریافت شده و در متغیر rows  ذخیره می‌شود. الگوی مورد نظر را با کمک این متغیر می‌سازیم.

برای حل این مسئله هم باید از دو حلقه به صورت تودرتو استفاده کنیم. در فهرست زیر، عملیات انجام شده در حلقه for  بیرونی به صورت کامل توضیح داده شده است.

  1. اجرای کار حلقه بیرونی با مقدار i = 1  شروع می‌شود.
  2. تا وقتی i <= rows  باشد، حلقه ادامه دارد.
  3. با هر تکرار، مقدار i  یک واحد زیاد می‌شود.
  4. این حلقه برای هر مقدار i  یک ردیف از الگو را چاپ می‌کند.

در داخل حلقه‌ی بیرونی، از حلقه‌ی for  درونی استفاده کرده‌ایم. در فهرست زیر، مراحل انجام کار حلقه for  درونی را توضیح داده‌ایم.

  1. شمارنده حلقه درونی از مقدار j = 1  شروع می‌شود.
  2. تا وقتی j <= i  باشد، حلقه ادامه دارد.
  3. با هر تکرار، مقدار j  یک واحد افزایش می‌یابد.
  4. در این حلقه، هر بار فقط مقدار j  - بین 1  تا i  - چاپ می‌شود.
  5. در پایان هر بار پیمایش کامل حلقه‌ی درونی، با استفاده از عبارت Console.Write(“n”);  به خط جدید منتقل می‌شویم. به این صورت الگوی مثلثی درست می‌شود.
تصویری از یک کلاس مدرن و آینده نگر که خطوط نورانی در سقف کف و دیوارهای کلاس وجود دارند.

در نتیجه، الگوی اعداد به شکل مثلث قائم‌الزاویه چاپ می‌شود. در کد بالا، حلقه بیرونی به اندازه مقدار متغیر rows  و حلقه درونی در هر تکرار، برابر با مقدار متغیر i  اجرا می‌شود.

مثلث قائم‌الزاویه با ردیف‌های یکسان

در این مسئله هم باید مثلث قائم‌الزاویه رسم کنیم. البته این دفعه از عناصر عددی به‌جای ستاره استفاده می‌کنیم. تعداد ردیف‌های تشکیل دهنده مثلث باید توسط کاربر وارد شوند. ردیف‌های مثلث از بالا به پایین با مقدار اعداد یکسان ایجاد می‌شوند.

برای درک بهتر سوال، فرض کنیم که کاربر عدد 7  را وارد کرده است. این برنامه باید خروجی مانند مورد پایین، تولید کند.

Input number of rows : 7
1
22
333
4444
55555
666666
7777777

در کادر زیر، پاسخ سوال بالا را پیاده‌سازی کرده‌ایم.

در این کد، از سه متغیر i  و j  و rows  استفاده شده است.

  • متغیر rows  برای دریافت تعداد ردیف‌ها از کاربر استفاده می‌شود.

  • متغیرهای i  و j  هم به عنوان شمارنده در حلقه‌ها به کار می‌روند.

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

  1. از کاربر خواسته می‌شود که تعداد ردیف‌ها را وارد کند. این تعداد در متغیر rows  ذخیره می‌شود.

  2. سپس، حلقه بیرونی – حلقه اول – از 1  تا rows گردش می‌کند. این حلقه در ردیف، مقدار i  را چاپ می‌کند. i  نشان‌دهنده شماره ردیف است.

  3. حلقه درونی وظیفه چاپ مقدار i را برعهده دارد. در هر گردش حلقه درونی یک بار i  چاپ می‌شود. حلقه درونی همیشه به اندازه i  اجرا می‌شود. یعنی اینکه در هر ردیف، شماره ردیف به تعداد خود خودش تکرار می‌شود.

بعد از به پایان رسیدن کار حلقه درونی با استفاده از کد Console.Write(“n”);  برنامه به خط جدید می‌رود. در نتیجه الگوی مثلثی به درستی نمایش داده می‌شود.

مثلث قائم‌الزاویه با اعداد زیاد شونده

در این مسئله باید برنامه‌ای بنویسیم که در ورودی، عددی را از کاربر دریافت کند. سپس مثلث قائم‌الزاویه‌ای با عناصر چپ‌چین ایجاد کند. عدد داده شده، تعداد سطر‌های مثلث را تعیین می‌کند. عناصر این مثلث هم به ترتیب از 1  به بالا زیاد می‌شوند.

تصویر یک مانیتور که در حال نشان دادن IDE کدنویسی است.

برای مثال، فرض کنیم که کاربر عدد 5  را وارد کرده است. برنامه باید خروجی به شکل زیر تولید کند.

Input number of rows : 5
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15

در کادر زیر، پاسخ سوال بالا را پیاده‌سازی کرده‌ایم.

در کد بالا ابتدا چهار متغیر i  و j  و rows  و k = 1  را با نوع داده int  تعریف کردیم. سپس مقداری را از کاربر دریافت کرده‌ و به متغیر rows  اختصاص می‌دهیم. برای حل این مسئله هم از دو حلقه for  به صورت تودرتو استفاده شده است.

حلقه for  بیرونی وظیفه ساخت سطرها را برعهده دارد. در فهرست زیر، عملیات حلقه for  بیرونی را توضیح داده‌ایم.

  • با کد i = 1  مقدار اولیه‌ی i  برابر 1  قرار داده شده است.
  • تا وقتی i <= rows  باشد، این حلقه ادامه دارد. rows  همان مقدار وارد شده توسط کاربر است.
  • با هر بار تکرار، مقدار i  یک واحد افزایش می‌یابد.
  • در هر بار اجرای حلقه بیرونی، حلقه درونی پیمایش خود را به صورت کامل انجام می‌دهد.

نکته: می‌توان گفت که حلقه درونی به مقدار متغیر rows  پیمایش کامل انجام می‌دهد.

در فهرست پایین هم عملیات حلقه for  درونی را توضیح داده‌ایم. این حلقه وظیفه مقداردهی به ستون‌ها را برعهده دارد.

  • در حلقه دوم مقدار اولیه‌ی j  برابر 1  قرار داده شده است.
  • تا وقتی j <= i  باشد، حلقه ادامه دارد.
  • در هر تکرار، مقدار j  یک واحد افزایش می‌یابد.
  • در هر دور از این حلقه، اول مقدار k  چاپ شده و سپس با دستور k++  یک واحد به آن اضافه می‌شود.

در پایان هر دور از حلقه اول – بیرونی – با دستور Console.Write(“n”)  به خط بعدی می‌رویم. در نتیجه، مثلث قائم‌الزاویه‌ای با اعداد پشت سر هم ساخته می‌شود. هر کدام از اعداد تشکیل دهنده مثلث، از قبلی یک واحد بیشتر است. در ردیف اول یک عدد، در ردیف دوم دو عدد، و به همین ترتیب تا آخر چاپ می‌شود.

یک مانیتور درخشان که خطوط نورانی از وسط آن عبور می‌کنند.

رسم هرم با اعداد زیاد شونده

در این مسئله باید یک هرم رسم کنیم. سوال به این صورت است که ابتدا عددی را از کاربر دریافت می‌کنیم. این عدد تعداد سطر‌های هرم را مشخص می‌کند. عناصر هرم از اعداد پشت سر هم ساخته می‌شوند. اعداد سازنده هرم از 1  شروع شده و به ترتیب، به مقدار یک واحد زیاد می‌شوند.

برای مثال، فرض کنیم که کاربر عدد 5  را ارسال کرده است. برنامه باید هرم زیر را تولید کرده و در خروجی نشان دهد.

Input number of rows : 5
        1
       2 3
      4 5 6
     7 8 9 10
  11 12 13 14 15

در کادر زیر، پاسخ سوال بالا را پیاده‌سازی کرده‌ایم.

در کد بالا ابتدا شش متغیر i  و j  و k  و spc  و rows  و t = 1  را از نوع داده int  تعریف کردیم.

  • از متغیرهای i  و j  برای پیمایش در حلقه‌ها استفاده می‌کنیم.
  • از متغیر spc  برای شمارش فضای خالی در سمت چپ عناصر هرم استفاده می‌کنیم.
  • متغیر rows  را برای تعیین تعداد سطر‌ها به کار می‌بریم.
  • متغیر k  شمارنده حلقه مربوط به رسم فضای خالی است.
  • متغیر t  هم شماره عناصر را نگهداری می‌کند.

بعد از تعریف متغیر‌ها، عددی را به عنوان ورودی از کاربر دریافت کرده‌ و به متغیر rows  اختصاص دادیم. سپس، مقدار اولیه‌ی متغیر spc  را برابر با rows + 3  قرار دادیم. با کمک این متغیر، فاصله‌های اولیه برای ساختن شکل هرم به درستی تنظیم می‌شود. در این مسئله از سه حلقه for  استفاده کرده‌ایم. یک حلقه for  بیرونی و دو حلقه for  درونی در کدهای بالا وجود دارند.

چندین تصویر از محیط‌های کدنویسی به صورت درخشان که از سقف و با کمک نخ‌های نازکی آویزان شده‌اند.

در فهرست زیر، عملیات انجام شده در حلقه‌ for  بیرونی را توضیح داده‌ایم.

  • کار این حلقه‌ی با شمارنده i = 1  شروع می‌شود.
  • تا وقتی i  کوچکتر یا مساوی rows  باشد، حلقه بیرونی به گردش خود ادامه می‌دهد.
  • در هر تکرار، مقدار i  یک واحد زیاد می‌شود.

در داخل این حلقه، دو حلقه‌ی درونی وجود دارند. حلقه‌ اول برای چاپ فضای خالی و حلقه دوم برای چاپ عناصر استفاده شده‌اند.

در فهرست زیر، روش کار شمارنده حلقه‌ی درونی اول را توضیح داده‌ایم.

  • مقدار اولیه‌ی k  برابر با spc  است.
  • تا وقتی k  بزرگتر یا مساوی 1  باشد، حلقه به کار خود ادامه می‌دهد.
  • در هر تکرار، فقط یک فاصله – فضای خالی – چاپ می‌شود. همچنین مقدار k  به اندازه یک واحد کم می‌شود.

این کار باعث می‌شود اعداد در وسط صفحه و به شکل هرم قرار بگیرند. در فهرست پایین هم روش کار حلقه‌ی درونی دوم را توضیح دادیم.

  • مقدار اولیه‌ی شمارنده j  برابر 1  است.
  • تا وقتی j  کوچکتر یا مساوی i  باشد، حلقه به کار خود ادامه می‌دهد.
  • در هر تکرار، مقدار t  چاپ شده و یک واحد هم به آن افزوده می‌شود.

در پایان هر دور از حلقه‌ی اول، یک خط جدید چاپ می‌شود. سپس مقدار spc  یک واحد کاهش می‌یابد. این کاهش، باعث می‌شود که در خط بعد، فضای خالی سمت چپ هرم کمتر شود. در نتیجه ساختار هرم به درستی شکل می‌گیرد. در نهایت، خروجی برنامه، هرم عددی است که عناصر آن از 1 شروع شده و به ترتیب افزایش می‌یابند. در ردیف اول یک عدد، در ردیف دوم دو عدد، و به همین ترتیب ادامه پیدا می‌کند.

چاپ سری هارمونیک اعداد

برنامه‌ای بنویسید که یک عدد از کاربر دریافت کند. سپس سری هارمونیک آن عدد را محاسبه کرده و همراه با حاصل جمع آن‌ها نمایش دهد.

برای مثال، فرض کنیم که عدد 7  را به برنامه ارسال کرده‌ایم. برنامه باید خروجی زیر را تولید کرده و نمایش دهد.

Input the number of terms : 7


1/1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 +
Sum of Series upto 7 terms : 2/5928571671247482

در کادر زیر، پاسخ سوال بالا را پیاده‌سازی کرده‌ایم.

ابتدا دو متغیر i  و n  را با نوع داده int  و متغیر s  را با نوع داده double  و مقدار اولیه 0.0  تعریف کردیم. سپس – در خط ۱۶ – مقداری را به عنوان ورودی از کاربر دریافت کرده و به متغیر n  اختصاص دادیم.

تصویری از کنار و زاویه خمیده برروی مانیتوری که کدنویسی را نشان می‌دهد. - نمونه سوال حلقه for در سی شارپ با جواب

در فهرست زیر، عملیات انجام شده در حلقه for  را به صورت کامل توضیح داده‌ایم.

  • با کد i = 1  مقدار اولیه‌ی i  برابر 1  قرار داده شده است.
  • تا وقتی i <= n  باشد، حلقه ادامه دارد.
  • با هر بار تکرار، مقدار i  یک واحد افزایش می‌یابد. تمام عملیات بالا در خط ۲۱ کد پیاده‌سازی شده‌اند.
  • در هربار پیمایش حلقه، با دستور Console.Write(“1/{0} + “, i);  جمله‌ای از سری هارمونیک چاپ می‌شود.
  • سپس با دستور s += 1 / (float)i;  مقدار 1  تقسیم بر i  محاسبه شده و به متغیر s  اضافه می‌شود.

در پایان حلقه، جمع کل سری هارمونیک از 1  تا n  محاسبه شده و با دستور زیر، نمایش داده می‌شود.

Console.Write("nSum of Series upto {0} terms : {1} n", n, s) ;

در نتیجه، برنامه سری هارمونیک را تا تعداد n  محاسبه کرده و همراه با حاصل جمع عبارات بدست آمده، نمایش می‌دهد.

لازم است که مهارت کار با حلقه‌های مختلف زبان سی شارپ را بدست بیاوریم. به همین دلیل چند نمونه سوال حلقه for در سی شارپ با جواب را در این مطلب مطرح کرده‌ایم. اما نکات مهمی هستند که باید در زمان کار با حلقه‌ها به آن‌ها توجه کنیم. یکی از این نکات، شناخت انواع متغیر در سی شارپ است. بعضی از این متغیرها را می‌توانیم در خارج از حلقه هم استفاده کنیم اما بعضی از متغیرها بیرون حلقه در دسترس نیستند. به همین دلیل پیشنهاد می‌کنیم که مطلب مربوط به این موضوع را در مجله فرادرس مطالعه کنید.

نمونه سوال حلقه for در سی شارپ با جواب درباره رسم هرم با ستاره

برنامه‌ای باید بنویسید که ویژگی‌های زیر را داشته باشد.

  • شکل هرمی ایجاد کند.
  • تعداد سطر‌های هرم توسط کاربر مشخص شود.
  • در هر ردیف به تعداد عدد فرد * وجود داشته باشد. در واقع عناصر تشکیل دهنده هرم، کاراکتر ستاره هستند.

برای حل این مسئله، ابتدا مقداری را از کاربر دریافت بکنید. این مقدار تعداد سطر‌های هرم را تعیین می‌کند.

فرض کنیم که کاربر عدد 6  را به این برنامه ارسال کرده‌ است. خروجی تولید شده توسط برنامه باید به شکل زیر نمایش داده شود.

Input number of rows for this pattern :6

     *
    ***
   *****
  *******
 *********

در کادر زیر، پاسخ سوال بالا را پیاده‌سازی کرده‌ایم.

در خط ۷ از کد بالا سه متغیر i  و j  و n  را با نوع داده int  تعریف کردیم. سپس – در خط ۱۵ – مقداری را به عنوان ورودی از کاربر دریافت کرده و به متغیر n  اختصاص دادیم. متغیر n  برای تعیین تعداد سطر‌های هرم به کار می‌رود. برای حل این مسئله از سه حلقه for  به صورت تودرتو استفاده کرده‌ایم.

در فهرست زیر، عملیات انجام شده در حلقه for  بیرونی را به صورت کامل توضیح داده‌ایم.

  • حلقه اول برای ساخت سطرها به کار می‌رو. شمارنده این حلقه از 0  تا n-1  تنظیم شده است. با هربار گردش کامل این حلقه مقدار i  یک واحد زیاد می‌شود.
  • در هر دور از حلقه اول، یک حلقه داخلی برای چاپ فاصله‌ – سمت چپ ستاره‌ها – وجود دارد. این حلقه را حلقه درونی اول می‌نامیم.
  • شمارنده حلقه درونی اول به شکل j = 1; j <= n – i; j++ تنظیم شده است.
  • با هربار گردش حلقه درونی اول یک فضای خالی، در الگو رسم می‌‌شود.
  • کار این حلقه تا زمانی ادامه دارد که تعداد فاصله‌ها برابر با n – i  شود.
  • سپس، یک حلقه دیگر برای چاپ ستاره‌ها تعریف شده است. این حلقه را حلقه درونی دوم می‌نامیم.
  • حلقه درونی دوم در هر بار گردش یک ستاره چاپ می‌کند. در هر نوبت از 1  تا مقدار برابر با 2 * i – 1  گردش می‌کند.
  • پس از چاپ هر سطر، با استفاده از Console.Write(“n”);  به خط جدید می‌رویم.
خطوط نورانی و رنگی به صورت خمیده و موازی با هم حرکت می‌کنند.

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

تشخیص عدد کامل در سی شارپ

برنامه‌ای بنویسید که عددی را از کاربر دریافت کند. سپس بررسی کند که آیا این عدد، کامل است یا نه. «عدد کامل» (Perfect Number)، عدد صحیح و مثبتی است که با حاصل جمع مقسوم‌علیه‌های خود – به‌جز خودش – برابر باشد. به عنوان مثال اگر به این برنامه عدد 28  را ارسال کنیم، خروجی زیر چاپ می‌شود.

Input the number : 28
The positive divisors : 1  2  4  7  14
The sum of the divisors is : 28
So, the number is a perfect number.

در کادر زیر، پاسخ سوال بالا را پیاده‌سازی کرده‌ایم.

در کد بالا، ابتدا سه متغیر n  و i  و sum  را با نوع داده int  تعریف کردیم. سپس مقداری به عنوان ورودی از کاربر دریافت کرده و به متغیر n  اختصاص دادیم. در خط ۱۷ کد بالا مقدار اولیه‌ی sum  را برابر 0  قرار داده‌ایم.

عملیات تشخیص کامل بودن عدد در داخل بلوک حلقه for  انجام شده است. اما برای چاپ پیغام مناسب از بلوک شرطی if  استفاده کرده‌ایم. در فهرست زیر، عملیات انجام شده در حلقه for  را به صورت کامل توضیح داده‌ایم.

  1. با کد i = 1  مقدار اولیه‌ی i  برابر 1  قرار داده شده است.
  2. تا وقتی i  کمتر از n  باشد، حلقه به کار خود ادامه می‌دهد.
  3. با کمک عبارت i++  در هر تکرار، مقدار i  یک واحد افزایش پیدا می‌کند.
  4. در هر دور از حلقه، بخش‌پذیر بودن n  بر i بررسی می‌شود.
  5. اگر n  بر i  بخش‌پذیر باشد، عدد i  یکی از مقسوم‌علیه‌های مثبت n  است.
  6. در این صورت، مقدار i  به sum  اضافه می‌شود.
  7. همچنین مقدار i  در خروجی چاپ می‌شود.

بعد از حلقه for  برای اعلام نتیجه به کاربر از عبارت شرطی if-else استفاده کرده‌ایم. اگر مقدار sum  برابر n  باشد، عدد ارسال شده به برنامه، عدد کامل است و این پیام در خروجی چاپ می‌شود. در غیر این صورت، پیام «این عدد، عدد کامل نیست» (So, the number is not a perfect number.) چاپ می‌شود.

تشخیص اعداد آرمسترانگ

برای بررسی چند نمونه سوال حلقه for در سی شارپ با جواب، لازم است که کمی هم با مفاهیم ریاضی آشنا باشیم. زیرا بیشتر اوقات، مسائل مطرح شده شامل حل سوال‌های ریاضی هستند. در این سوال به ما گفته شده که دو عدد صحیح و مجزا از هم – بین 1  تا 999 – از کاربر دریافت کنیم. سپس برنامه‌ای بنویسیم که تمام اعداد آرمسترانگ بین این اعداد را کشف کند. در واقع کاربر محدوده جست‌وجو را مشخص کرده است. هدف این تمرین، تشخیص اعداد آرمسترانگ سه رقمی با استفاده از حلقه‌ی for  است.

نکته: عدد آرمسترانگ به عددی گفته می‌شود اگر یک به یک اعدادش را به توان تعداد ارقام آن برسانیم برابر با خود آن عدد می‌شود. برای مثال، به تصویر زیر دقت کنید.

تشخیص اعداد آرمسترانگ
با توجه به بررسی بالا ۱۵۳، عدد آرمسترانگ است.

اکنون فرض کنیم که کاربر اعداد 1  و 500  را به عنوان ورودی به برنامه داده است. خروجی برنامه باید شبیه به کادر زیر شود.

Input the starting number of the range: 1
Input the ending number of the range: 500
Armstrong numbers in the given range are: 1 153 370 371 407

در کادر زیر، پاسخ سوال بالا را پیاده‌سازی کرده‌ایم.

در کد بالا، ابتدا پنج متغیر num  و r  و sum  و temp  و همچنین دو متغیر stno  و enno  را با نوع داده int  تعریف کردیم. سپس – از خط ۱۵ تا ۱۹ – از کاربر خواسته‌ایم که برای شروع و پایان محدوده، دو عدد متفاوت وارد کند. این دو مقدار به ترتیب در متغیرهای stno  و enno  ذخیره می‌شوند.

برنامه بالا تمام عددهای داخل محدوده را بررسی می‌کند. در صورت وجود عدد آرمسترانگ، آن‌ها را ذخیره کرده و در نهایت در خروجی چاپ می‌کند. برای حل این سوال از حلقه for  و حلقه while  در سی شارپ، به صورت تودرتو استفاده کرده‌ایم.

در فهرست زیر، عملیات انجام شده در حلقه for  را توضیح داده‌ایم.

  1. با متغیر num  از مقدار stno  تا enno  جلو می‌رویم. یعنی تمام اعداد این محدوده‌ را یک به یک بررسی می‌کنیم.
  2. در هر تکرار، مقدار عدد اصلی num  را در متغیر temp  ذخیره می‌کنیم. در نتیجه وقتی مقدار temp در محاسبات تغییر می‌کند، مقدار عدد اصلی بدون تغییر باقی می‌ماند.
  3. مقدار اولیه‌ی sum  برابر صفر قرار داده شده است.
  4. از خط ۳۰ به بعد وارد حلقه while  می‌شویم.
  5. تا وقتی temp  برابر صفر نشده، حلقه while  به اجرای تکراری وظایف خود ادامه می‌دهد.
  6. در هر دور از حلقه while، آخرین رقم عدد را با کد temp % 10  به دست می‌آوریم. این رقم را در متغیر r  ذخیره می‌کنیم.
  7. بعد از آن با کد temp / 10  رقم آخر را از عدد حذف می‌کنیم.
  8. سپس مکعب عدد r  را حساب کرده و به sum  اضافه می‌کنیم.
  9. اگر متغیر temp برابر صفر باشد به مرحله بعد، یعنی خط ۳۸ می‌رویم. در غیر این صورت، دوباره به خط کد ۳۲ باز می‌گردیم.
  10. بعد از پایان حلقه while  ، بررسی می‌کنیم که آیا مقدار sum با مقدار اصلی num  برابر است یا نه.
  11. اگر برابر بود، یعنی عدد مورد نظر یک عدد آرمسترانگ است. در این صورت، آن را در خروجی چاپ می‌کنیم.
مانیتور درخشانی که در وسط حلقه‌های نور طلایی رنگ قرار دارد.

در نتیجه، این برنامه تمام عددهای آرمسترانگ سه رقمی را در بازه‌ مشخص شده توسط کاربر پیدا می‌کند. سپس همه این اعداد را در کنسول سی شارپ، نمایش می‌دهد.

نمونه سوال حلقه for در سی شارپ با جواب برای معکوس کردن عدد

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

برای مثال، فرض کنیم که عدد 123  به برنامه داده شده است. در خروجی باید مقدار 321 چاپ شود. در کادر زیر، پاسخ مسئله بالا را پیاده‌سازی کرده‌ایم.

در کد بالا، ابتدا چهار متغیر num  و r  و sum  و t  را از نوع داده int  تعریف کردیم. مقدار اولیه‌ی sum  را برابر صفر قرار داده‌ایم. هدف این برنامه این است که عدد وارد شده توسط کاربر را به صورت معکوس نمایش دهد. برای حل این مسئله فقط از یک حلقه for  استفاده می‌کنیم.

در فهرست زیر، عملیات انجام شده در حلقه for  توضیح داده شده است.

  • با مقداردهی t = num، عدد اصلی را در متغیر t  ذخیره می‌کنیم. بنابراین می‌توانیم بدون تغییر دادن num  روی t  کار کنیم.
  • حلقه تا زمانی ادامه دارد که مقدار t  برابر با صفر نشده باشد.
  • در هر تکرار، آخرین رقم عدد را با کد t % 10  به دست آورده و در متغیر r  ذخیره می‌کنیم.
  • سپس با فرمول sum * 10 + r، عدد جدید را می‌سازیم. این عدد را باید دوباره به متغیر sum  اختصاص دهیم. این کار باعث می‌شود که رقم‌های جدید در جای درست خود قرار بگیرند.
  • در پایان هر تکرار، با t / 10  رقم آخر از t  حذف می‌شود.
یک فلوچارت با یک عبارت شرطی به رنگ زرد در پس زمینه آبی نیلی
فلوچارت، مربوط به روش کار حلقه for برای حل مسئله معکوس کردن عدد

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

تصویر انتزاعی از فضای کدنویسی به صورت شناور در فضا

کشف تمام اعداد بخش پذیر بر ۹

در این بخش از مطلب نمونه سوال حلقه for در سی شارپ با جواب، محدوده‌ای از اعداد – بین ۱۰۰ تا ۲۰۰ – مشخص شده است. باید برنامه‌ای بنویسیم که تمام اعداد بخش‌پذیر بر ۹ را از این محدوده پیدا کرده و همراه با حاصل جمع آن‌ها در خروجی چاپ کند.

در واقع خروجی برنامه باید به شکل زیر باشد.

Numbers between 100 and 200, divisible by 9 :
108 117 126 135 144 153 162 171 180 189 198
The sum : 1683

در کادر زیر، پاسخ سوال بالا را پیاده‌سازی کرده‌ایم.

در کد بالا، ابتدا دو متغیر i  و sum  را با نوع داده int  تعریف کردیم. از متغیر i  برای پیمایش در حلقه و متغیر sum  برای ذخیره مجموع اعداد استفاده می‌شود. بنابراین مقدار اولیه‌ی sum  را برابر صفر قرار دادیم. هدف از کد بالا این است تمام اعداد بین ۱۰۰ تا ۲۰۰ را پیمایش کند. تمام اعداد بخش‌پذیر بر ۹ را پیدا کرده و مجموع آن‌ها را حساب کند. برای حل این مسئله از حلقه for  و عبارت شرطی if  استفاده کردیم.

در فهرست زیر، تمام عملیات انجام شده در حلقه for  را توضیح داده‌ایم.

  1. خط ۱۴: با مقداردهی i = 101، شمارنده حلقه را از 101  شروع کرده‌ایم. با هر پیمایش مقدار شمارنده به اندازه یک واحد افزایش پیدا می‌کند.
  2. خط ۱۴: حلقه تا زمانی ادامه دارد که مقدار i  کمتر از 200  باشد.
  3. خط ۱۶: در هر چرخه، با استفاده از کد i % 9 == 0  بررسی می‌شود که آیا i  بر ۹ بخش‌پذیر است یا نه.
  4. خط ۱۸: اگر بخش‌پذیر باشد، عدد i  در خروجی نمایش داده می‌شود.
  5. خط ۱۹: همچنین مقدار i  به متغیر sum  اضافه می‌شود.

در پایان، مقدار sum  که مجموع اعداد بخش‌پذیر بر ۹ است، در خروجی چاپ می‌شود.

خطوط نورانی که نشانگر جریان داده‌ها هستند. - نمونه سوال حلقه for در سی شارپ با جواب

تبدیل عدد دسیمال به باینری بدون استفاده از آرایه

در این مسئله عددی از کاربر دریافت می‌شود. برنامه باید این عدد را به مقدار معادل باینری آن تبدیل کند. در کدهای برنامه نباید از ساختار آرایه استفاده کنیم.

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

Enter a number to convert : 83

The Binary of 83 is 1010011.

در کادر زیر، پاسخ سوال بالا را پیاده‌سازی کرده‌ایم.

در کد بالا، هدف تبدیل عدد «ده‌دهی» (Decimal) به عدد «دودویی» (Binary) بدون استفاده از آرایه است.

در ابتدای برنامه، چند متغیر تعریف کرده‌ایم:

  • n: عدد ورودی که کاربر وارد می‌کند.
  • dn: نسخه‌ی اصلی عدد n  برای نمایش در خروجی.
  • i: مقدار جایگاه عدد را نشان می‌دهد.
  • binno: عدد باینری که در آخر برنامه ساخته می‌شود.
  • j: این متغیر به عنوان شمارنده حلقه for  استفاده می‌‌شود.

ابتدا برنامه، عددی را از کاربر دریافت کرده و در n  ذخیره می‌کند. نسخه‌ی دیگری از عدد نیز در dn  نگه‌داری می‌شود. از این نسخه برای نمایش در خروجی استفاده خواهد شد. مقدار اولیه‌ی i  را برابر 1  قرار دادیم. از این مقدار برای مشخص کردن جایگاه ارقام دودویی استفاده می‌شود.

شمارنده حلقه for  به صورت زیر کار می‌کند.

  • مقدار اولیه j  برابر با n  است.
  • حلقه for  تا زمانی ادامه دارد که مقدار j  بزرگ‌تر از صفر باشد.
  • قبل از ورود به بلوک دستورات حلقه، مقدار j  تقسیم بر دو می‌شود.

در فهرست زیر، عملیات اجرا شده در هر دور از حلقه for  را توضیح داده‌‌ایم.

  • با n % 2  مقدار باقی‌مانده‌ی تقسیم بر 2  را به دست می‌آوریم. این مقدار برابر با یکی از رقم‌های 0  یا 1  در دستگاه دودویی است.
  • برای اینکه باقیمانده، در جایگاه صحیح خودش قرار بگیرد باید در i  ضرب شده و به binno  اضافه شود.
  • در هر دور از حلقه، مقدار i  در 10  ضرب می‌شود تا رقم بعدی در جای درست قرار گیرد.
  • برای پیدا شدن رقم بعد در عدد باینری، مقدار n  نصف می‌شود.
خطوط افقی کوتاه و رنگی و نورانی در فضایی روشن

در پایان، مقدار دودویی بدست آمده در خروجی چاپ می‌شود.

تبدیل عدد دسیمال به هگزادسیمال

در این بخش از مطلب نمونه سوال حلقه for در سی شارپ با جواب باید برنامه‌ایی برای تبدیل عدد دسیمال به هگزادسیمال بنویسیم. برای مثال، اگر عدد ۱۰۱۵ را به برنامه ارسال کنیم، خروجی به شکل زیر نمایش داده می‌شود.

Input any Decimal number: 1015

The equivalent Hexadecimal Number : 3F7

در کادر زیر، پاسخ سوال بالا را پیاده‌سازی کرده‌ایم.

در کد بالا، ابتدا متغیرهای decn  و q  و dn  و m  و l  و tmp  و s  را با نوع داده int  تعریف کردیم. سپس یک عدد صحیح مثبت از کاربر دریافت کرده و آن را در متغیر decn ذخیره کردیم. مقدار decn را در متغیر q  قرار داده‌ایم. بابا این کار می‌توانیم اصل عدد ورودی را به صورت دست‌نخورده نگه داریم. برای حل این مسئله از دو حلقه for  استفاده کرده‌ایم.

در فهرست زیر، عملیات انجام شده در حلقه for  اول را به صورت کامل توضیح داده‌ایم.

  1. مقدار اولیه‌ی l  برابر q  قرار داده شده است. در این حلقه l  نقش شمارنده را بازی می‌کند.
  2. تا وقتی l  بزرگ‌تر از 0  باشد، حلقه ادامه دارد.
  3. در هر دور از حلقه، مقدار باقیمانده‌ی تقسیم l  بر 16  در tmp  ذخیره می‌شود.
  4. اگر tmp  کمتر از 10  باشد، به آن عدد 48  اضافه می‌شود. این کار برای تبدیل عدد به کد کاراکتر معادل آن در دستگاه ASCII است.
  5. اگر tmp  بزرگ‌تر یا مساوی 10  باشد، عدد 55  به آن اضافه می‌شود تا تبدیل به کد کاراکتر حرف بزرگ شود.
  6. سپس tmp  به dn  اضافه می‌شود. در کد dn = dn * 100 + tmp از ضرب در 100  استفاده کرده‌ایم. از این ضرب کمک گرفته‌ایم تا کاراکترها به‌درستی از هم جدا شوند. زیرا کد هر کاراکتر دارای دو رقم است.
مکعب‌های درخشان با مفاهیم کدنویسی و آرم CS

در حلقه اول، باقیمانده‌های تقسیم عدد بر ۱۶ را پیدا کرده‌ایم. اعداد بزرگتر از ۹ باید به مقدار کاراکتری معادل آن‌ها در مبنای هگزادسیمال تبدیل شوند. به این دلیل از مقادیر کاراکتری کد ASCII برای ارقام و حروف A  و B  و C  و D  و E  و F  استفاده کرده‌ایم.

بعد از پایان حلقه اول، در حلقه for  دوم تمام کاراکترهای بدست آمده را یک به یک کنار هم قرار داده و جواب را بدست می‌آوریم. در فهرست زیر عملیات درون حلقه for  دوم توضیح داده شده است.

  1. مقدار اولیه‌ی m  برابر dn  قرار داده شده است.
  2. تا وقتی m  بزرگ‌تر از 0  باشد، حلقه ادامه دارد.
  3. در هر دور از حلقه، مقدار باقیمانده‌ی تقسیم m  بر 100  در s  ذخیره می‌شود. زیرا باید کدها را به صورت دو رقم، دو رقم از یکدیگر جدا کنیم.
  4. سپس مقدار s  به‌عنوان کاراکتر معادل در خروجی چاپ می‌شود. برای انجام این کار از کد Console.Write(“{0}”, (char)s) استفاده کرده‌ایم.
  5. در پایان هر دور، مقدار m  بر 100  تقسیم می‌شود.

در نتیجه، این برنامه عدد وارد شده توسط کاربر را به مبنای ۱۶ – هگزادسیمال – تبدیل کرده و نتیجه را به صورت کاراکترهای معادل چاپ می‌کند.

گسترش اعداد به عبارت جمع دو عدد اول

در این مسئله، عددی از کاربر دریافت می‌شود. باید برنامه‌ای بنویسیم که بررسی کند آیا می‌توان این عدد را به عبارت جمع دو عدد اول تبدیل کرد یا نه. برای مثال، اگر کاربر عدد 50  را وارد کند، خروجی برنامه باید به شکل زیر، نمایش داده شود.

Input a positive integer: 50
50 = 3 + 47
50 = 7 + 43
50 = 13 + 37
50 = 19 + 31

در کادر زیر، پاسخ سوال بالا را پیاده‌سازی کرده‌ایم.

کد بالا بررسی می‌کند که آیا می‌توان عدد وارد شده را به صورت جمع دو عدد اول نوشت یا نه. در این کد، ابتدا متغیرهای n  و i  و flg1  و flg2  و flg3  و j  را با نوع داده‌ی عدد صحیح، تعریف کرده‌ایم. سپس عددی را از کاربر می‌گیریم و در متغیر n  ذخیره می‌کنیم.

یک عدد کامپیوتر سفیر بر روی میز سفید و یک صندلی پایه بلند سفید

در این کد از ۳ حلقه for  به صورت تودرتو استفاده کرده‌ایم. حلقه‌یfor  اول یا حلقه بیرونی از عدد 3 تا نصف n  پیش می‌رود. زیرا اگر بخواهیم عدد n  را به شکل مجموع دو عدد بنویسیم، یکی از آن دو عدد حداکثر نصف n  خواهد بود.

در هر دور از حلقه بیرونی، دو حلقه for  دیگر هم اجرا می‌شوند. هر دوی این حلقه‌ها از متغیر j  به عنوان شمارنده، استفاده می‌کنند.

  • حلقه for  بالایی، عدد اول بودن i  را بررسی می‌کند. اگر i  بر هیچ عددی از 2 تا i-1  بخش‌پذیر نباشد، یعنی عدد اول است.
  • حلقه‌ی for  بعدی، عدد اول بودن n – i  را بررسی می‌کند. مانند مرحله قبل، اگر این عدد بر هیچ عددی از 2 تا (n – i – 1)  بخش‌پذیر نباشد، یعنی عدد اول است.

سپس در خط ۴۵، با کمک عبارت شرطی if  بررسی می‌کند که آیا هر دو مقدار، عدد اول هستند یا نه. اگر i  و n – i  هر دو عدد اول باشند، آن‌ها را در خروجی چاپ می‌کنیم. این یعنی عدد n  برابر است با جمع دو عدد اول.

در پایان برنامه – خط ۵۳ -بررسی می‌کند که آیا ترکیب مجموعه دو عدد اول پیدا شد یا نه. اگر چنین ترکیبی پیدا نشده باشد، پیام «.Can not be expressed as the sum of two prime numbers» چاپ می‌شود.

یادگیری کار با سی شارپ با کمک فیلم های پروژه محور

در این مطلب، چند نمونه سوال حلقه for در سی شارپ با جواب را بررسی کرده‌ایم. بررسی این نمونه سوالات تاثیری زیادی در یادگیری حل مسئله دارد. اما پروژه‌های سی شارپ انواع مختلفی دارند. برای ورود به بازار کار و اجرای پروژه‌های حرفه‌ای لازم است که سطح مهارت خود را بالاتر ببریم. بهترین کار برای رسیدن به این هدف، اجرای پروژه‌های مربوط به دنیای واقعی است. به همین دلیل فرادرس فیلم‌هایی برای آموزش پیاده‌سازی پروژه‌های نزدیک به دنیای واقعی، تولید کرده است. با مشاهده این فیلم‌ها و تمرین بر اساس آن‌ها آماده ورود به بازار کار می‌شوید.

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

مجموعه آموزش پروژه‌محور سی‌شارپ #C – مقدماتی تا پیشرفته
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه فیلم‌های آموزش پروژه‌محور سی شارپ هدایت شوید.

معکوس کردن رشته

در این بخش از مطلب نمونه سوال حلقه for در سی شارپ با جواب می‌خواهیم بر روی رشته‌ها کار کنیم. در این مسئله، کاربر رشته‌ای از کاراکترها را به برنامه ارسال می‌کند. برنامه باید این رشته‌ را با رعایت ترتیب و همچنین بزرگی و کوچکی حروف الفبا از آخر به اول به صورت منظم بنویسد.

برای مثال، فرض کنیم که عبارت Faradars Blog  به برنامه داده شد. خروجی برنامه باید به شکل زیر باشد.

Input a String: Faradars Blog
The string in Reverse Order Is: golB sradaraF

در کادر زیر، پاسخ مسئله بالا را پیاده‌سازی کرده‌ایم.

در فهرست زیر، مراحل انجام شده در کد بالا را از اول تا حلقه for نوشته‌ایم.

  1. خط۷: دو متغیر str  و str1  را با نوع داده string  تعریف کردیم.
  2. خط ۸: همچنین دو متغیر i  و l  را با نوع داده int  تعریف کردیم.
  3. خط‌های ۱۵ و ۱۶: سپس یک مقدار متنی از کاربر دریافت کرده و به متغیر str  اختصاص دادیم.
  4. خط ۱۸: بعد با استفاده از عبارت str.Length – 1، طول رشته را به دست آوردیم و در متغیر l  ذخیره کردیم.

در بخش پایین هم عملکرد حلقه for را به صورت کامل توضیح داده‌ایم.

  • با کد i = l  مقدار اولیه‌ی شمارنده i  برابر با آخرین اندیس رشته قرار داده شده است.
  • تا وقتی i  بزرگ‌تر یا مساوی صفر باشد، حلقه ادامه دارد.
  • با استفاده از عبارت i–  در هر تکرار، مقدار i  یک واحد کاهش می‌یابد.
  • در هر دور از حلقه، کاراکتر str[i]  به انتهای رشته str1  اضافه می‌شود.

در نتیجه، رشته str  به صورت برعکس در متغیر str1  ذخیره شده و مقدار نهایی str1  چاپ می‌شود. این مقدار همان رشته‌ی برعکس شده است. در کد بالا، حلقه for  به تعداد کاراکترهای موجود در رشته str  اجرا می‌شود.

نمایش الگوی حرف A با ستاره‌ها

به عنوان نمونه سوال حلقه for در سی شارپ با جواب، در این بخش مسئله‌ای درباره رسم حرف بزرگ «A» با کمک الگویی از ستاره‌ها داده شده است.

در واقع خروجی باید به شکل زیر نمایش داده شود.

  ***
 *   *
 *   *
 *****
 *   *
 *   *
 *   *
 *   *

در کادر زیر، پاسخ سوال بالا را پیاده‌سازی کرده‌ایم.

در کد بالا دو متغیر row  و column  را از نوع داده int  تعریف کردیم. هدف این کد نمایش الگویی شبیه به حرف A با استفاده از علامت ستاره است.

تصویر مفهومی از کدهای برنامه نویسی شناور در فضا

بهترین روش برای نمایش الگو‌های دوبعدی استفاده از دو حلقه تودرتو است. در کدهای بالا هم از دو حلقه for  تودرتو استفاده کرده‌ایم.

در فهرست زیر، عملیات انجام شده در حلقه for  بیرونی توضیح داده‌ شده است.

  • حلقه اول با شمارنده row = 0  شروع می‌شود. گردش این حلقه تا زمانی که row  کمتر یا مساوی 7  باشد، ادامه دارد.
  • در هر دور از این حلقه، یک سطر از الگو ساخته می‌شود.
  • داخل این حلقه، حلقه دیگری با شمارنده column = 0  شروع شده و تا column <= 7  ادامه دارد.

در داخل حلقه درونی از عبارت شرطی if  برای رسم الگو استفاده کرده‌ایم. مهم‌ترین نکته در این کد همین عبارت‌های شرطی تعریف شده برای if  است.

  • اگر column  برابر با 1  یا 5  باشد ولی row  برابر با 0  نباشد، ستاره‌ای چاپ می‌شود.
  • اگر column  بین 2  تا 4  و row  هم برابر با 0  یا 3  باشد، باز هم ستاره‌ای چاپ می‌شود.
  • در غیر این صورت، یک فاصله خالی چاپ می‌شود تا شکل درست ایجاد شود.

با ترکیب شرایط عبارت if، الگویی شبیه به حرف A ساخته می‌شود. در پایان هر سطر، با Console.Write(“n”)  به خط بعدی می‌رویم. این کار به ساخت الگوی کامل کمک می‌کند. توجه کنید که در ردیف‌های 0  و 3، ستاره‌ها به شکل پشت سر هم چاپ شده‌اند.

نمایش الگوی حرف M با ستاره‌ها

در این بخش‌ هم مانند بخش قبل، باید برنامه‌ای بنویسیم که حرف بزرگ «M» را با کمک الگویی از ستاره‌ها رسم کند. در واقع خروجی باید به شکل زیر باشد.

 *   *
 *   *
 ** **
 * * *
 *   *
 *   *
 *   *

در کادر زیر، پاسخ سوال بالا را پیاده‌سازی کرده‌ایم.

هدف کد بالا ساختن الگویی شبیه به حرف M با استفاده از علامت ستاره است. در خط ۷ این کد، دو متغیر row  و column  را از نوع int  تعریف کرده‌ایم. برای حل این مسئله از دو حلقه for  به صورت تودرتو استفاده کردیم.

در فهرست زیر، عملیات انجام شده در حلقه for  بیرونی را توضیح داده‌ایم.

  • این حلقه با شمارنده row  برابر 0  شروع می‌شود. حلقه for  بیرونی تا زمانی کار می‌کند که row  کمتر یا مساوی 6  باشد.
  • در هر تکرار از حلقه بیرونی، یک سطر جدید از الگو ساخته می‌شود.
  • درون این حلقه، حلقه دیگری با شمارنده column  برابر 0  شروع می‌شود. حلقه درونی کار خود را تا column <= 6  ادامه می‌دهد.

حلقه for  درونی برای رسم ستون‌ها به کار برده می‌شود. در هر تکرار از این حلقه یک ستاره یا فضای خالی به الگو اضافه می‌شود.

مکعب مربع‌های درخشان با علامت #C و یک مانیتور برای برنامه نویسی

مهم‌ترین بخش این الگوریتم در ساختار شرطی عبارت if  قرار دارد. در فهرست زیر، شرط‌های عبارت if  را توضیح داده‌ایم.

  • اگر column  برابر 1  یا 5  باشد، ستاره چاپ می‌شود.
  • اگر row  برابر 2  بوده و column  هم برابر 2  یا 4  باشد، ستاره چاپ می‌شود.
  • اگر row و column  هر دو برابر 3  باشند، ستاره چاپ می‌شود.
  • در غیر این صورت، کاراکتر فاصله یا فضای خالی چاپ می‌شود.

در پایان هر سطر، با دستور Console.Write(“n”)  به خط بعدی می‌رویم. این کار باعث می‌شود تا الگویی منظم شکل بگیرد. در نتیجه اجرای کد بالا شکلی مانند حرف M ساخته می‌شود.

جمع‌بندی

زبان برنامه نویسی سی شارپ از ساختار‌های مختلفی برای مدیریت کدها استفاده می‌کند. انواع حلقه‌ها در سی شارپ جزو پرکاربردترین ساختارهای مدیریت کد هستند. بیشتر این حلقه‌ها در سایر زبان‌های برنامه نویسی هم به کار برده می‌‌شوند. حلقه for   مشهورترین حلقه در برنامه نویسی است. از for  برای انجام وظایف تکراری با تعداد مشخص استفاده می‌کنند. به همین دلیل لازم است که تمام توسعه‌دهندگان بر روی کار با این حلقه تسلط کافی داشته باشند.

در این مطلب از مجله فرادرس ۲۴ نمونه سوال حلقه for در سی شارپ با جواب را بررسی کرده‌ایم. در تمام سوالات این مطلب، ابتدا متن سوال عنوان شده و سپس خروجی مورد انتظار از برنامه را نشان داده‌ایم. بعد از آن جواب سوال مطرح شده را نوشته‌ایم. در تمام جواب‌ها، بدنه اصلی پاسخ و حل کننده سوال با کمک حلقه for  پیاده‌سازی شده‌ است. در نهایت هم روش کار کدها بخصوص بخش حلقه را توضیح دادیم.

source

توسط expressjs.ir