#34☑️ ساختارهای تکرار و تصمیم گیری در ++C :
مثال)برنامه ای که اعداد 1 تا 12 را دریافت کند و ماه معادل با آن را چاپ کند.
int x;cout << "please enter a number in range 1-12";cin >> x;switch(x){case1 :cout << "farvardin";break;...default:cout << "data range error";}نوشتن default اختیاری است.
@Learncpp
#35مثال )
#include <iostream>#include <stdio.h>int main (){ char grade = 'B'; switch(grade) { case 'A' : printf("Excellent!\n" ); break; case 'B' : case 'C' : printf("Well done\n" ); break; case 'D' : printf("You passed\n" ); break; case 'F' : printf("Better try again\n" ); break; default : printf("Invalid grade\n" ); } printf("Your grade is %c\n", grade ); return 0;}#38☑️ ساختارهای تکرار و تصمیم گیری در ++C :
🔹حلقه تکرار while:
فرم کلی:
While( شرط اجرای حلقه )
{
دستورات داخل حلقه
}
عبارت داخل حلقه تا زمانی که شرط اجرای حلقه صحیح باشد اجرا خواهند شد.
@Learncpp
#39☑️ ساختارهای تکرار و تصمیم گیری در ++C :
مثال)
int n=1;while (n<=10 ){cout << n << endl;n++;}در این قطعه کد پس از مقدار دهی متغیر n شرط (10=>n) بررسی میشود که صحیح است و حلقه ادامه پیدا میکند .در نتیجه اعداد یک تا ده به ترتیب در سطر های مجزایی چاپ خواهند شد .شرط اجرای حلقه قبل از ورود به آن نیز بررسی میشود اگر نادرست باشد دستورات داخل حلقه هیچ گاه اجرا نمیشوند.
@Learncpp
#43☑️ ساختارهای تکرار و تصمیم گیری در ++C :
🔹حلقه ی تکرار do-while :
فرم کلی :
do
{
دستورات داخل حلقه
} while(شرط اجرای حلقه);
@Learncpp
#44☑️ ساختارهای تکرار و تصمیم گیری در ++C :
🔹حلقه هایی با شرط همواره صحیح :
تمام حلقه های تکرار برای ادامه ی کار خود شرطی را بررسی میکنند. اگر این شرط به گونه ای باشد که همواره صحیح باشد, حلقه هایی با شرط همواره صحیح به وجود می آیند. پس در حالت عادی حلقه هرگز خاتمه پیدا نمیکند به چنین حلقه هایی در اصطلاح حلقه ی بینهایت گفته میشود. حلقه ی بینهایت گاهی در اثر اشتباهات منطقی در پیاده سازی الگوریتم بروز میدهند و باعث شکست اجرای صحیح برنامه میشوند. اما اگر در داخل حلقه و در جای مناسب از دستور break استفاده شود چنین حلقه ای نیز پایان پذیر خواهد بود.
مثال)
int n;while(1) //while(true){cout << "enter a positive number:";cin >> n;if( n > 0 ) { break; }}شرط اجرای حلقه عدد 1 است. در زبان c++ هر عدد غیر صفر(صحیح یا اعشاری) معنی درست و عدد صفر معنی نادرست میدهد. پس حلقه ی فوق یک حلقه با شرط صحیح است. در داخل حلقه از کاربر عددی مثبت درخواست میشود اگر کاربر صفر یا عددی منفی وارد کند شرط (n>0) صحیح نبوده و کنترل برنامه مجددا به ابتدای حلقه منتقل خواهد شد تا عدد دیگری از کاربر دریافت کند. اما اگر شرط درست باشد دستور break اجرا شده و کنترل برنامه از حلقه خارج خواهد شد یعنی تکرار حلقه تا زمانی ادامه پیدا میکند که کاربر عدد مثبت وارد نکرده است.
نحوه ی پیاده سازی این مثال با do-while:
int n;do{cout << "enter a positive number";cin >> n;} (n <= 0);@Learncpp
#46☑️ ساختارهای تکرار و تصمیم گیری در ++C :
🔹تفاوت while با do-while :
1. شرط اجرای حلقه ی do while در انتهای آن بررسی میشود.
int n=1;do{cout << n << endl;n++;} while( n<= 10);این مثال اعداد 1 تا 10 را چاپ میکند.
2. تفاوت دیگر در این است که دستورات داخل حلقه ی do-while حداقل یکبار اجرا میشوند.
مثال:
int n = 11;do{cout << n << endl;n++;} while(n <= 10);در اینجا چون شرط در انتهای برنامه قرار دارد در نتیجه دستورات داخل حلقه قبل از رسیدن به شرط حداقل یکبار اجرا میشوند یعنی این برنامه اعداد 1 تا 11 را چاپ میکند و سپس با توجه به اینکه شرط (10=>n) نادرست است حلقه ادامه نمی یابد.
*در حلقه ی do-while استفاده از سمیکالن در انتهای شرط الزامی است.
@Learncpp
#47☑️ ساختارهای تکرار و تصمیم گیری در ++C :
🔹حلقه ی تکرار for :
فرم کلی :
for( نحوه ارزیابی ; شرط ; مقدار اولیه )
{
دستورات داخل حلقه
}
int n;for( n = 1 ; n <= 10 ; n++){cout << "n" << endl;}
این حلقه اعداد 1 تا 10 را چاپ میکند.
تعریف ارائه شده برای حلقه ی for میتواند با استفاده از حلقه ی while به صورت زیر شبیه سازی شود.
while(شرط اجرای حلقه)
{
دستورات داخل حلقه
}
@Learncpp
#48☑️ ساختارهای تکرار و تصمیم گیری در ++C :
مثال)
int n = 0;for( ; n < 0 || n > 20 ; ){cout << "enter a number between o and 20";cin >> n;}درصورتی که کاربر عددی بین 0 تا 20 وارد کند شرط ادامه ی حلقه صحیح بوده و برنامه مجددا با چاپ پیامی منتظر ورود اطلاعات خواهد ماند.
@Learncpp
#49☑️ ساختارهای تکرار و تصمیم گیری در ++C :
🔹اگر برای حلقه ی for نیز شرطی را قائل نشویم به مفهوم شرط همواره درست است.
int n;for( ; ; ){cout << "enter a positive number";cin >> n;if (n > 0){break;}}*توجه شود که هر دو علامت سمیکالن همیشه باید نوشته شود اگر تعداد شرط ها بیشتر بود آنها را با کالن از هم جدا میکنیم.
@Learncpp
#50☑️ ساختارهای تکرار و تصمیم گیری در ++C :
🔹در برنامه نویسی c++ امکان استفاده از حلقه های تو در تو وجود دارد.
مثال:
int i , j ;for(i = 4 ; i < 10 ; i++){for(j = 4 ; j < 10 ; j++){cout << i × j << " " ;}cout << endl;}این برنامه جدول ضرب اعداد 4 تا 9 را در خروجی چاپ میکند.
حلقه ی داخلی وظیفه ی چاپ اعداد هر سطر را دارد پس از اتمام این حلقه دستوری اجرا میشود که مکان نما را به ابتدای سطر بعدی میبرد. پس در هر سطر یک ردیف از جدول ضرب چاپ میشود.
@Learncpp
#51☑️ ساختارهای تکرار و تصمیم گیری در ++C :
مثال) خروجی برنامه ی زیر چیست؟
for( i = 1 ; i < 10 ; i++ ){if( i % 5 == 0 )break;for( j = 0 ; j < 10 ; j++ ){if( j % 2 != 0 ) continue;cout << i × 10 + j;}}خروجی :
i=1 , j=0: 10 12 14 16 18
i=2 , j=0: 20 22 24 26 28
i=3 , j=0: 30 32 34 36 38
i=4 , j=0: 40 42 44 46 48
#52مثال) برنامه زير مضارب غير 7 مابين اعداد 0 تا 100 نمايش می دهد.
#include <iostream>int main() { for (int i = 0; i < 100; ++i) { if ((i % 7) == 0) continue; cout << i << " "; } return 0;}@Learncpp
#53مثال) در برنامه زير به کاربر اجازه داده می شود 100 عدد را وارد کند يا برای پايان يک عدد منفی وارد کند.
#include <iostream>int main() { cout << "Enter 100 positive numbers, or a " << " negative number to abort.\n"; int i; for ( i = 1; i <= 100; i++) { cout << "Enter the number #" << i << ": "; int n; cin >> n; if (n < 0) break; } if (i == 100) cout << "You are a real man.\n"; else cout << "You stopped after " << i << " numbers, coward!\n";return 0;}@Learncpp
#54مثال) برنامه زیر با کاراکتر ستاره (*) یک مستطیل 3×20 رسم می کند.
#include <iostream>int main() { int col, row ; for (row = 20; row > 0; row--) { for (col = 3; col > 0; col--) cout << "*"; cout << endl; }return 0;}@Learncpp
#55🔹تمرین 1 (ساده) :
برنامه ای بنویسید که با استفاده از حلقه for پنج عدد را از کاربر دریافت کند و با دستور شرطی if تعداد اعداد فرد و زوج را بدست آورد و در خروجی نمایش دهد.
✍نکته: این برنامه باید همواره پس از نمایش تعداد زوج و فرد بتواند سری دیگری از اعداد را دریافت کند یعنی دارای حلقه بی نهایت باشد.
@Learncpp
#57🔹تمرین 2 (متوسط) :
برنامه ای بنویسید که با استفاده از دو حلقه تو در تو شکل زیر را نمایش دهد:
*
**
***
****
*****
@Learncpp
#59🔹تمرین 3 (متوسط) :
برنامه ای بنویسید که یک عددی بین 1 تا 20 رو از کاربر بگیره و به ازای عدد وارد شده عدد رومی رو چاپ کنه یعنی
1 = I
2 = II
3 = III
4 = IV
5 = V
.
.
.
برای دیدن اعداد بیشتر به سایت زیر مراجعه کنین
http://literacy.kent.edu/Minigrants/Cinci/romanchart.htm
@Learncpp
#60🔹برنامه ای بنویسید که یک عددی بین 1 تا 20 رو از کاربر بگیره و به ازای عدد وارد شده عدد رومی رو چاپ کند؟
#include <iostream>using namespace std;int main(){ int n; cin >> n; switch (n) { case 1: cout << "I"; break; case 2: cout << "II"; break; case 3: cout << "III"; break; case 4: cout << "IV"; break; case 5: cout << "V"; break; case 6: cout << "VI"; break; case 7: cout << "VII"; break; case 8: cout << "VIII"; break; case 9: cout << "IX"; break; case 10: cout << "X"; break; case 11: cout << "XI"; break; case 12: cout << "XII"; break; case 13: cout << "XIII"; break; case 14: cout << "XIV"; break; case 15: cout << "XV"; break; case 16: cout << "XVI"; break; case 17: cout << "XVII"; break; case 18: cout << "XVIII"; break; case 19: cout << "XIX"; break; case 20: cout << "XX"; break; default: cout << "عددی بین 1 تا 20 وارد کنین"; break; } return 0;}@Learncpp