Kahibaro
Discord Login Register

تمرین‌های حلقه

هدف این بخش

در این بخش فقط تمرین می‌کنیم. فرض می‌کنیم با for، while، متغیر شمارنده، و کلمات کلیدی break و continue آشنا شده‌اید.
اینجا انواع تمرین‌ها را می‌بینید تا مهارت شما در حلقه‌ها قوی‌تر شود.

در بسیاری از تمرین‌ها:

سعی کنید قبل از دیدن «راهنمایی» یا «پاسخ نمونه»، خودتان فکر کنید.


تمرین‌های ساده با `while`

تمرین ۱: شمارش از ۱ تا n

هدف: تمرین شمارنده در حلقهٔ while.

مسئله:
عددی از کاربر بگیرید (مثلاً n) و اعداد ۱ تا n را چاپ کنید.

نمونه خروجی (اگر n=5):

1
2
3
4
5

راهنمایی کوتاه:

تمرین ۲: جمع اعداد از ۱ تا n

هدف: استفاده از متغیر جمع در کنار حلقه.

مسئله:
عددی مثل n از کاربر بگیرید و مجموع اعداد ۱ تا n را حساب و چاپ کنید.

برای مثال اگر n = 4 باشد:
$$1 + 2 + 3 + 4 = 10$$

نمونه خروجی (اگر n=4):

مجموع اعداد از 1 تا 4 برابر است با 10

راهنمایی:

تمرین ۳: شمارش معکوس

هدف: تمرین شمارنده کاهشی.

مسئله:
از کاربر یک عدد بگیرید و از آن تا ۱ را برعکس چاپ کنید.

نمونه خروجی (اگر n=5):

5
4
3
2
1
پایان!

راهنمایی:

تمرین ۴: حدس عدد با `while`

هدف: حلقهٔ تکرار تا رسیدن به یک شرط.

مسئله (نسخهٔ ساده):
یک برنامه بنویسید که:

  1. یک عدد مخفی در متغیر secret = 7 ذخیره کند (فعلاً ثابت).
  2. از کاربر بخواهد حدس بزند.
  3. تا وقتی عدد درست حدس زده نشده، دوباره حدس بگیرد.
  4. وقتی درست حدس زد، پیام موفقیت چاپ کند.

نمونه اجرا:

یک عدد حدس بزن: 3
اشتباه است، دوباره حدس بزن!
یک عدد حدس بزن: 7
آفرین، درست حدس زدی!

راهنمایی:

تمرین‌های ساده با `for`

تمرین ۵: جدول ضرب یک عدد

هدف: استفاده از for با range.

مسئله:
یک عدد از کاربر بگیرید و جدول ضرب آن را از ۱ تا ۱۰ چاپ کنید.

نمونه خروجی (اگر n=3):

3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
...
3 x 10 = 30

راهنمایی:

تمرین ۶: جمع چند عدد که کاربر می‌دهد

هدف: استفاده از for برای تکرار یک کار ثابت.

مسئله:
ابتدا از کاربر بپرسید چند عدد می‌خواهد وارد کند (مثلاً count).
بعد با استفاده از for همان تعداد عدد بگیرید و مجموع آن‌ها را حساب کنید.

نمونه اجرا:

چند عدد می‌خواهی وارد کنی؟ 3
عدد 1 را وارد کن: 10
عدد 2 را وارد کن: 5
عدد 3 را وارد کن: 7
مجموع اعداد برابر است با 22

راهنمایی:

تمرین ۷: چاپ اعداد زوج

هدف: تمرین شرط داخل حلقهٔ for.

مسئله:
عدد n را از کاربر بگیرید و تمام اعداد زوج از ۱ تا n را چاپ کنید.

نمونه خروجی (اگر n=10):

2
4
6
8
10

راهنمایی:

تمرین با رشته‌ها و حلقه

تمرین ۸: شمارش حروف یک رشته

هدف: حرکت روی حروف رشته با حلقه.

مسئله:
یک متن از کاربر بگیرید و هر حرف آن را در یک خط جداگانه چاپ کنید.

نمونه اجرا:

یک متن بنویس: سلام
س
ل
ا
م

راهنمایی:

تمرین ۹: شمارش تعداد حروف «ا»

هدف: استفاده از متغیر شمارنده همراه با شرط.

مسئله:
یک رشته از کاربر بگیرید و بشمارید چند بار حرف ا در آن آمده است.

نمونه اجرا:

یک متن بنویس: برنامه نویسی پایتون
تعداد 'ا' در متن: 3

راهنمایی:

تمرین ۱۰: برعکس چاپ کردن رشته

هدف: استفاده از اندیس‌ها یا range معکوس.

مسئله:
یک رشته از کاربر بگیرید و آن را برعکس چاپ کنید.
(مثلاً «سلام» → «مالس»)

نمونه اجرا:

یک متن بنویس: سلام
مالس

راهنمایی ساده (با حلقه):

(فعلاً از روش‌های آماده مثل [::-1] صرف‌نظر کنید؛ تمرین حلقه است.)


تمرین‌های ترکیبی با `break` و `continue`

تمرین ۱۱: توقف با `break` وقتی صفر دیدیم

هدف: تمرین خروج از حلقه.

مسئله:
یک حلقه بنویسید که مرتباً از کاربر عدد بگیرد و:

نمونه اجرا:

یک عدد وارد کن: 5
شما عدد 5 را وارد کردید
یک عدد وارد کن: 10
شما عدد 10 را وارد کردید
یک عدد وارد کن: 0
برنامه تمام شد

راهنمایی:

تمرین ۱۲: رد کردن اعداد منفی با `continue`

هدف: استفاده از continue.

مسئله:
یک حلقه بنویسید که ۵ عدد از کاربر بگیرد.
فقط اعداد مثبت را در مجموع حساب کند و در پایان مجموع را چاپ کند.
اعداد منفی را نادیده بگیرد (بدون خطا دادن).

نمونه اجرا:

عدد 1 را وارد کن: -3
عدد 2 را وارد کن: 10
عدد 3 را وارد کن: 4
عدد 4 را وارد کن: -1
عدد 5 را وارد کن: 2
مجموع اعداد مثبت: 16

راهنمایی:

تمرین ۱۳: پیدا کردن اولین عدد بزرگ‌تر از ۱۰۰

هدف: کار ترکیبی با حلقه و شرط و break.

مسئله:
یک حلقه بنویسید که از کاربر عدد بگیرد تا وقتی عددی بزرگ‌تر از ۱۰۰ وارد کند.
وقتی این اتفاق افتاد:

نمونه اجرا:

یک عدد وارد کن: 20
یک عدد وارد کن: 50
یک عدد وارد کن: 120
اولین عدد بزرگ‌تر از 100 که وارد کردی: 120

تمرین‌های کمی چالشی‌تر

تمرین ۱۴: محاسبهٔ فاکتوریل

هدف: تمرین ضرب تکراری با حلقه.

مسئله:
عدد n را از کاربر بگیرید و فاکتوریل آن را حساب کنید.
فاکتوریل $n$ به صورت زیر تعریف می‌شود (برای $n \ge 1$):

$$
n! = 1 \times 2 \times 3 \times \dots \times n
$$

برای مثال:
$$
5! = 1 \times 2 \times 3 \times 4 \times 5 = 120
$$

نمونه اجرا:

یک عدد وارد کن: 5
فاکتوریل 5 برابر است با 120

راهنمایی:

تمرین ۱۵: پیدا کردن بزرگ‌ترین عدد

هدف: نگه داشتن مقدار بیشینه (max) در حلقه.

مسئله:
تعداد n از کاربر بگیرید، بعد n عدد از کاربر دریافت کنید و در پایان بزرگ‌ترین عدد را چاپ کنید.

نمونه اجرا:

چند عدد وارد می‌کنی؟ 4
عدد 1 را وارد کن: 10
عدد 2 را وارد کن: 25
عدد 3 را وارد کن: 7
عدد 4 را وارد کن: 19
بزرگ‌ترین عدد: 25

راهنمایی ساده:

تمرین ۱۶: مجموع ارقام یک عدد

هدف: کار با عملگر تقسیم صحیح و باقیمانده در حلقه.

مسئله:
از کاربر یک عدد صحیح مثبت بگیرید و مجموع رقم‌های آن را حساب کنید.

مثلاً:
ورودی: 1234
خروجی: 1 + 2 + 3 + 4 = 10

راهنمایی (ایده):

تمرین ۱۷: چاپ الگوهای ساده

هدف: تمرین حلقه‌های تو در تو.

(الف) مثلث ستاره‌ای

مسئله:
برای عدد n مثلثی از ستاره‌ها چاپ کنید.
مثلاً اگر n = 4 باشد:

*
**
***
****

راهنمایی:

(ب) مربع ستاره‌ای

برای n = 3:

***
***
***

اینجا به یک حلقهٔ بیرونی برای سطر و یک حلقهٔ درونی برای ستون نیاز دارید (یا باز هم می‌توانید از ضرب رشته استفاده کنید).


تمرین برای فکر کردن (بدون راه‌حل کامل)

این تمرین‌ها را می‌توانید بعد از تسلط روی بقیه، انجام دهید:

  1. اعداد اول تا n
    عدد n را بگیرید و تمام اعداد اول بین ۱ تا n را چاپ کنید.
  2. حساب معدل
    از کاربر بپرسید چند نمره می‌خواهد وارد کند. تک‌تک نمره‌ها را بگیرید، مجموع و بعد معدل را حساب کنید. در پایان اگر معدل بالاتر از یک حد خاص بود، پیام مناسب چاپ کنید.
  3. شمارش کلمات در یک جمله
    یک جمله از کاربر بگیرید و با استفاده از حلقه (بدون تابع آماده‌ی پیشرفته)، تعداد کلمات را تخمین بزنید (مثلاً بر اساس فاصلهٔ خالی space).

پیشنهاد برای استفاده از این تمرین‌ها

  1. هر تمرین را اول روی کاغذ یا در ذهن حل کنید:
    • چه متغیرهایی لازم دارم؟
    • چه نوع حلقه‌ای مناسب‌تر است (for یا while
  2. بعد در پایتون پیاده‌سازی کنید.
  3. در مرحلهٔ بعد، سعی کنید همان تمرین را با روش متفاوتی حل کنید
    (مثلاً اگر اول با while نوشته‌اید، یک بار دیگر با for بنویسید).

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

Views: 4

Comments

Please login to add a comment.

Don't have an account? Register now!