You are on page 1of 12

‫تکرار‬

‫نیمسال دوم ‪1400‬‬


‫علمدار‬
‫دستورات تکرار (‪)iteration‬‬
‫‪ ‬تکرار‬
‫اجرای پی در پی یک دستور یا بلوکی از دستورالعملها‬

‫‪‬دستورات تکرار ‪( C++‬حلقه یا ‪)loop‬‬

‫‪while‬‬

‫‪do while‬‬

‫‪for‬‬

‫‪2‬‬
‫دستور ‪while‬‬
‫‪ ‬جهت تکرار دستور (دستورات) تا زمان برقراری شرط‬
‫)‪while (condition‬‬
‫شرط‬
‫;‪statement‬‬
‫دستوری که قرار‬
‫است تکرار شود‬ ‫‪ ‬حالت کلی‬
‫)‪while (conditions‬‬
‫{‬
‫;‪statements‬‬
‫}‬
‫‪‬خاتمه دادن به یک حلقه‪ )1 :‬نقض شرط حلقه‬

‫‪ )2‬استفاده از دستور ‪break‬‬

‫‪3‬‬
‫دستور ‪do while‬‬
‫‪ ‬مانند دستور ‪ while‬با حداقل اجرای یک بار دستور‬
‫‪do‬‬
‫;‪statement‬‬
‫;)‪while (condition‬‬ ‫حتماً انتهای دستور ; گذاشته شود‬

‫‪ ‬حالت کلی‬
‫‪do‬‬
‫{‬
‫;‪statements‬‬
‫}‬
‫;)‪while (conditions‬‬

‫‪4‬‬
‫دستور ‪for‬‬
‫‪ -‬مقداردهی اولیه متغیر کنترل حلقه‬
‫‪ -‬اولین عبارت مورد ارزیابی‬
‫‪ ‬جهت تکرار تا زمان برقراری شرط‬
‫‪ -‬اجرا تنها یک بار‬ ‫شرط حلقه‬
‫‪1‬‬ ‫‪2‬‬ ‫‪4‬‬
‫)‪for (initialization; condition; update‬‬
‫;‪statement‬‬ ‫‪ -‬پیشبرد متغیر کنترل حلقه‬
‫دستوری که قرار‬ ‫‪3‬‬ ‫‪ -‬ارزیابی پس از هربار اجرای دستور‬
‫است تکرار شود‬
‫‪ ‬زنجیره وقایع تکرار‬
‫‪ (1‬ارزیابی عبارت ‪initialization‬‬
‫‪ (2‬بررسی ‪ condition‬و اگر نادرست خاتمه حلقه‬
‫‪ (3‬اجرای ‪statement‬‬
‫‪ (4‬ارزیابی عبارت ‪update‬‬
‫‪ (5‬تکرار گامهای ‪ 2‬تا ‪4‬‬
‫‪5‬‬
while ‫مثال دستور‬
f1 f2 f3
2
0, 1 , 1, 2, 3, 5, 8, 13, …. ‫ تولید سری فیبوناچی‬:‫مثال‬
int main() 1
{ f1 f2 f3
int n, f1=0, f2=1, f3;
cout<<“Enter a positive integer(>1):”;
cin>> n;
cout<<“Fibonacci numbers< “<<n<<“: 0, 1”;
f3 = f1 + f2;
while (f3<n)
{ 6 :‫با فرض ورودی‬
cout<<“, ”<<f3; :‫خروجی‬
f1 = f2;
Enter a positive integer(>1): 6
f2 = f3;
Fibonacci numbers< 6: 0, 1, 1, 2, 3, 5
f3 = f1 + f2;
}
return 0;
}
6
do while ‫مثال دستور‬
‫ برنامه چاپ فاکتوریل تمام اعداد قبل از عدد ورودی‬:‫مثال‬
int main()
{
int n, fact = 1, i = 1;
cout<<“Enter a positive integer:”;
cin>>n;
cout<<“Factorial numbers < ”<<n<<“: ”;
do
{fact *= i;
cout<<fact<<“ ” ; 4 :‫با فرض ورودی‬
i++;} :‫خروجی‬
while (i<n); Enter a positive integer: 4
return 0; Factorial numbers < 4: 1 2 6
}
7
for ‫مثال دستور‬
‫ تعدادی عدد ورودی با عدد انتهایی صفر‬max ‫ برنامه یافتن‬:‫مثال‬
int main()
{
int n, max;
cout<<“Enter some integers (0 to quit):”;
cin>>n; ‫ بدون قسمت مقداردهی و بروزرسانی‬for ‫حلقه‬
max = n; :‫با فرض ورودی‬
for ( ; n != 0; ) 2 1 -2 5 9 0
{if (n>max) :‫خروجی‬
{max = n;} Enter some integers (0 to quit): 2 1 -2 5 9 0
Max = 9
cin>>n;}
cout<<“Max = ” <<max<<endl;
return 0;
}
8
‫ تودرتو‬for ‫مثال دستورات‬
‫ برنامه چاپ جدول ضرب‬:‫مثال‬
#include <iomanip>
#include <iostream>
using namespace std;
int main() ‫ تودرتو‬for ‫حلقههای‬
{
:‫خروجی‬
for (int x = 1; x<=10; x++)
‫ خارجی‬for

{for (int y = 1; y<=10; y++)


‫ داخلی‬for

{cout<<setw(4)<<x*y;}
cout<<endl;}
return 0;
}

9
‫دستورات ‪ break‬و ‪continue‬‬
‫‪ ‬دستور ‪break‬‬
‫قابل استفاده در حلقه برای خاتمه حلقه‬
‫‪‬دستور ‪continue‬‬
‫قابل استفاده در حلقه برای لغو چرخه فعلی و اجرای تکرار بعدی حلقه‬
‫‪‬دستورات پرش (‪)jump‬‬
‫انتقال برنامه به جایی غیر از روال طبیعی مانند دستور ‪ break‬و ‪continue‬‬

‫‪10‬‬
break ‫ با‬for ‫مثال دستور‬
‫ برنامه محاسبه میانگین تعدادی عدد ورودی (صحیح و مثبت) با عدد انتهایی صفر‬:‫مثال‬
int main()
{ int n, count = 0, sum = 0;
float avg;
cout<<“Enter some positive integers (0 to quit):”;
for ( ; ; ) )forever( ‫ بینهایت‬for ‫حلقه‬
{cin>>n;
if (n<=0)
{break;} :‫با فرض ورودی‬
count++; 214590
sum += n;} :‫خروجی‬
if (count>0) Enter some positive integers (0 to quit): 2 1 4 5 9 0
{avg = float(sum)/count; The AVG is 4.2
cout<<“The AVG is ” <<avg<<endl;}
return 0;
} 11
‫مثال دستورات تکرار‬
)‫‘ در انتهای جمله‬.’ ‫ برنامه شمارش تعداد کاراکترهای جمله ورودی (با فرض‬:‫مثال‬
int main()
{
int count = 0;
‫ اما فقط برای خواندن کاراکتر‬cin ‫مشابه دستور‬
char ch;
... ‫نه برای اعداد و‬
cout<<“Enter a sentence: ”;
ch = cin.get(); :‫با فرض ورودی‬
while (ch != ‘.’) :‫ خروجی‬Hello students.
{count++; Enter a sentence: Hello students.
ch = cin.get(); The number of characters are: 14
}
cout<<“The number of characters are: ”<<count;
return 0;
}
12

You might also like