ور ت س دif و ح ن ود. ش را ج اي ط ر شل ک ش ه به م ا رن ب ود ش ي م ب ج و م: ب س ر ا ب ر* ه ب و گ ه ب- ا/ نIf (condition) statement; Condition ه ک رط ش ارت ب ع6 ك ي ود ش ي م ده ب م ا ن ح ي ح ص) ود ش ي ما/ ورد ر ب ح ي ح ص دار ق م6 ك ي ا ی که ن ت ار ب ع( ب س اstatement د.ش ا را ن ج ا ل ي ا ق- رمان ف ر هcondition د.ش ا ن ه ت س ر دا ف ص ر ي غ دار ق م ر يR ب راS ب- ط درون ر ش ور ت س دif
44
Embed
دستور if موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است:
دستور if. دستور if موجب ميشود برنامه به شکل شرطي اجرا شود. نحو آن به گونۀ زير است: If ( condition ) statement ; Condition که شرط نامیده میشود يك عبارت صحيح است (عبارتی که با یک مقدار صحیح برآورد میشود) statement هر فرمان قابل اجرا باشد. condition مقدار غير صفر داشته باشد. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
دستور هاي انتخاب تودرتو3-12مثال را دارد:3-10اين برنامه همان اثر مثال
int main(){ int n, d; cout << "Enter two positive integers: "; cin >> n >> d; if (d != 0) if (n%d = = 0) cout << d << " divides " << n << endl; else cout << d << " does not divide " << n << endl; else cout << d << " does not divide " << n << endl;}
دوم درون if..elseدر برنام�ۀR ب�اال، دس�تور اول قرار گرفته است .if..elseدستور
دستور هاي انتخاب تودرتو3-12مثال را دارد:3-10اين برنامه همان اثر مثال
int main(){ int n, d; cout << "Enter two positive integers: "; cin >> n >> d; if (d != 0) { if (n%d = = 0) cout << d << " divides " << n << endl; else cout << d << " does not divide " << n << endl; } else cout << d << " does not divide " << n << endl;}
اول قرار گرفته است .if..else دوم درون دستور if..elseدر برنامۀR باال، دستور
else if- ساختار 9
تودرت��و، اغلب if..elseدس��تور ب���راي بررس���ي مجم���وعه ای از حالت ه�اي متن�اوب ی�ا م�وازي ب�ه ك�ار مي رود. در این ح�االت فق�ط
if ش����امل دس�تور elseعب����ارت بع�دی خواه�د ب�ود. این قبی�ل ک�دها
ساختار با معموال elseرا if.مي سازند
براي مشخص کردن محدودۀ� else ifاستفاده از ساختار نمره
برنامۀ� زیر يك نمرۀ� امتحان را به درجۀ� حرفي معادل تبديل مي كند:
int main()
{ int score;
cout << "Enter your test score: "; cin >> score;
if (score > 100) cout << "Error: that score is out of range.";
else if (score >= 90) cout << "Your grade is an A." << endl;
else if (score >= 80) cout << "Your grade is a B." << endl;
else if (score >= 70) cout << "Your grade is a C." << endl;
else if (score >= 60) cout << "Your grade is a D." << endl;
else if (score >= 0) cout << "Your grade is an F." << endl;
else cout << "Error: that score is out of range.";
}
براي مشخص کردن محدودۀ� else ifاستفاده از ساختار نمره
برنامۀ� زیر يك نمرۀ� امتحان را به درجۀ� حرفي معادل تبديل مي كند:
int main()
{ int score;
cout << "Enter your test score: "; cin >> score;
if (score > 100) cout << "Error: that score is out of range.";
else if (score >= 90) cout << "Your grade is an A." << endl;
else if (score >= 80) cout << "Your grade is a B." << endl;
else if (score >= 70) cout << "Your grade is a C." << endl;
else if (score >= 60) cout << “grade is a D." << endl;
else if (score >= 0) cout << "grade an F." << endl;
ب���راي بررس���ي else ifس���اختار مجم�وعه اي از حالت ه�ای متن�اوب و م��وازي ب��ه ك��ار رود. نح��و دس��تور
switch:به شکل زير است switch (expression){ case constant1: statementlist1; case constant2: statementlist2; case constant3: statementlist3; : : case constantN: statementlistN; default: statementlist0;}
را expressionاين دس�تور ابت�دا ب��رآورد مي كن��د و س��پس مي��ان
ب�ه دنب�ال مق�دار آن caseثابت ه�اي مي گ�ردد. اگ�ر مق�دار مربوط�ه از مي���ان ثابت ه���اي فهرست ش���ده
statementlistی��افت ش��د، دس�تور اج��را مي ش��ود. caseمقاب��ل آن
اگ���ر مق���دار م���ورد نظ���ر می���ان case ه���ا ی���افت نش���د و عب���ارت
default وج���ود داش���ت، دس���تور statementlist مقاب����ل آن اج����را
مي شود.
ی���ک عب���ارت defaultعب���ارتاختی�اری اس�ت. یع�نی می ت�وانیم
آن را قی����د switchدر دس����تور باي�د ب�ه ش�کل expressionنک�نیم.
ي�ك ن�وع ص�حيح ارزي�ابي ش�ود و constant ه����ا باي����د ثابت ه����اي
صحيح باشند.
یکی از عملگ���ر عب���ارت ش���رطیامکان����اتی اس����ت ک����ه جهت اختص��ار در کدنویس��ی ت��دارک دی�ده ش�ده اس�ت. این عملگ�ر را می ت��وانیم ب��ه ج��ای دس��تور
if..else ب���ه ک���ار ب���بریم. اين ب�ه : و ?عملگ�ر از نش�انه های
شکل زير استفاده مي كند:condition ? expression1 : expression2;
- عملگر عبارت شرطي11 conditionدر این عملگ��ر ابت��دا ش�رط
بررس���ی می ش���ود. اگ���ر این ش���رط درس�ت ب�ود، حاص�ل ک�ل عب�ارت براب�ر ب�ا
expression1 می ش��ود و اگ��ر ش��رط نادرس�ت ب�ود، حاص�ل ک�ل عب�ارت براب�ر
می شود. expression2با
مثال در دستور انتساب زير:min = ( x<y ? x : y );
را درون x باش�د مق�دار x<yاگ�ر min ق�����رار می ده�����د و اگ�ر x<y
ق�رار min را درون yنباش�د مق�دار می ده�د. یع�نی ب�ه همین س�ادگی و
Rاختص�ار، مق�دار کمین�ۀx و y درون قرار می گیرد.minمتغیر
while- دستور 1 به شکل زير است:while نحو دستور
while (condition) statement;
، ي�ك ش�رط ق�رار می گ�یرد و conditionبه ج�اي دس��توری ک��ه بای��د تک��رار statementب��ه ج��اي
را ب�رای ع�دد n + … + 3 + 2 + 1اين برنام�ه مق�دار محاسبه مي كند:nورودي
int main(){ int n, i=1; cout << "Enter a positive integer: "; cin >> n; long sum=0; while (i <= n) sum += i++; cout << "The sum of the first " << n << " integers is " << sum;}
int main(){ int n, i=1; cout << "Enter a positive integer: "; cin >> n; long sum=0; while (true) { if (i > n) break; sum += i++; } cout << "The sum of the first " << n << " integers is " << sum;
محاس��بۀ� حاص��ل جم��ع اع��داد ص��حيح 4-7مث��ال do..while متوالي با حلقۀ�
را دارد:5-1اين برنامه همان تأثير مثال int main(){ int n, i=0; cout << "Enter a positive integer: "; cin >> n; long sum=0; do sum += i++; while (i <= n); cout << "The sum of the first " << n << " integers is " << sum;
}
اعداد فاكتوريال4-8* مثال ب����ا ! و …3! و 2! و 1! و 0اع����داد فاكتوري����ال
بازگش���تي زي���ر تعري���ف اس���تفاده از رابطه ه���ايمي شوند:
0! = 1 , n! = n(n-1)! در معادلۀ� دوم داريم:n = 1براي مثال، به ازاي
for (initialization; condition; update) statement;
سه قس�مت داخ�ل پران�تز، حلق�ه را کنترل می کنند.
for- دستور 4
ب��رای اعالن ی��ا initializationعب��ارت مق�داردهی اولی�ه ب�ه متغ�یر کن�ترل حلق�ه اس��تفاده می ش��ود.این عب��ارت اولین عب��ارتی اس��ت ک��ه ارزی��ابی می ش��ود پیش از این ک���ه ن���وبت ب���ه تکراره���ا
برسد.
ب�رای تع�یین این ک�ه آی�ا conditionعب�ارت حلق��ه بای��د تک��رار ش��ود ی��ا خ��یر ب��ه ک��ار می رود. یع�نی این عب�ارت، ش�رط کن�ترل حلق�ه اس�ت. اگ�ر این ش�رط درس�ت باش�د
اجرا می شود.statementدستور
ب��رای پیش ب��ردن متغ��یر updateعب��ارت کن�ترل حلق�ه ب�ه ک�ار می رود. این عب�ارت
ارزی�����ابی statementپس از اج�����رای می گردد.
بن�ابراین زنج�یرۀ� وق�ایعی ک�ه تک�رار را ایجاد می کنند عبارتند از:
و initializationعبارت ه���������ای condition وupdate عبارت ه�ای
اختی�����اری هس�����تند. یع�����نی می ت�وانیم آن ه�ا را در حلق�ه ذک�ر
نکنیم.
ب��راي محاس��بۀ� for اس��تفاده از حلق��ۀ� 4-9 مث��ال مجموع اعداد صحيح متوالی را دارد:5-1اين برنامه همان تأثير مثال
int main(){ int n; cout << "Enter a positive integer: "; cin >> n; long sum=0; for (int i=1; i <= n; i++) sum += I; cout << "The sum of the first " << n << " integers is " << sum;
}
++ اس�تاندارد وق�تي ي�ك متغ�یر كن�ترل درون Cدر در مث�ال ب�اال( i اعالن مي ش�ود )مانن�د forي�ك حلق�ۀ�
مح�دود مي گ�ردد. forح�وزۀ� آن متغ�یر ب�ه هم�ان حلق�ۀ� يع���ني آن متغ���ير نمي توان���د ب���يرون از آن حلق���ه
استفاده شود.
نتیج�ۀ� دیگ�ر این اس�ت ک�ه مي ت�وان از ن�ام مش�ابهي ب�راي ي�ك متغ�ير ديگ�ر اس�تفاده forدر خ�ارج از حلق�ۀ�
نمود.
نزوليfor يك حلقۀ� 4-12مثال برنام��ۀ� زی��ر ده ع��دد ص��حيح مثبت را ب��ه ت��رتيب
نزولی چاپ مي كند:
int main(){ for (int i=10; i > 0; i--) cout << " " << i;}
بيش�تر از ي�ك متغ�ير كن�ترل 4-15مث�ال forدر حلقۀ�
در برنام�ۀ� زی�ر دو متغ�ير forحلق�ۀ� كنترل دارد:
int main()
{ for (int m=95, n=11; m%n > 0; m -= 3, n++) cout << m << "%" << n << " = " << m%n << endl;
}
تودرتوfor حلقه هاي 4-16مثال برنامۀ� زیر يك جدول ضرب چاپ مي كند:
#include <iomanip> #include <iostream> int main(){ for (int x=1; x <= 10; x++) { for (int y=1; y <= 10; y++) cout << setw(4) << x*y; cout << endl; }}
ی�ک دس�تور آشناس�ت. قبال breakدس�تور از آن ب���رای خاتم���ه دادن ب���ه دس���تور
switch و همچ����نین حلقه ه����ای while و do..while اس����تفاده ک����رده ایم. از این
Rدس�تور ب�رای خاتم�ه دادن ب�ه حلق�ۀfor ن�یز می توانیم استفاده کنیم.
در ه���ر ج���ایی درون breakدس���تور حلق�ه می توان�د ج�ا بگ�یرد و در هم�ان ج�ا
حلقه را خاتمه دهد.
break- دستور 5 درون breakوق��تي دس��تور
حلقه ه��ای تودرت��و اس��تفاده ش�ود، فق�ط روی حلقه ای ک�ه مس����تقیما درون آن ق����رار
گرفته تاثیر می گذارد. حلقه ه�ای ب�یرونی ب�دون هیچ
تغییری ادامه می یابند.
continue- دستور 6
بقي�ۀR دس�تورهاي درون breakدس�تور بل��وك حلق��ه را نادی��ده گرفت��ه و ب��ه اولین دس���تور ب���يرون حلق���ه پ���رش