بخشی از پاورپوینت
اسلاید 1 :
برنامهنويسي به زبان C++
فصل پنجم – حلقه هاي تكرار و
ساختارهاي شرطي
اسلاید 2 :
در حالت عادي دستورات برنامه از اولين دستور تا آخرين دستور اجرا ميشوند.
چنانچه بخواهيم نحوهي اجراي دستورات را تحت كنترل خود دربياوريم از ساختارهاي تكرار و تصميم استفاده ميكنيم.
ساختارهاي تكرار براي تكرار اجراي دستورات و ساختارهاي شرطي براي بررسي شرايطي در برنامه و تصميمگيري بر اساس آن شرايط مورد استفاده قرار ميگيرند.
اسلاید 3 :
چنانچه بخواهيم تحت شرايطي، تعدادي از دستورات اجرا شوند و يا تعدادي ديگر اجرا نشوند بايد از ساختارهاي تصميم استفاده كنيم.
اين ساختارها شرطي را تست كرده و در صورت درست بودن، مجموعهاي از دستورات را اجرا ميكنند.
اسلاید 4 :
دستورif يكي از پركاربردترين ساختارهاي شرطي است كه در صورت درستي يك شرط مجموعهاي از دستورات را اجرا ميكند.
If (شرط )
دستور ;
در اين دستور در صورت درست بودن شرط، دستور بعد ازif اجرا خواهد شد.
چنانچه تعداد دستوراتي كه ميبايست در صورت درست بودن شرط اجرا شوند بيش از يكي باشد بايد ابتدا و انتهاي دستور ifرا با آكولاد باز و بسته مشخص كرد.
ساختار تصميم if
اسلاید 5 :
if (شرط)
}
دستور 1;
دستور 2;
…
n دستور;
{
ساختار تصميم if
شروع دستور if
اتمام دستور if
اسلاید 6 :
دستور If (مثال)
#include
#include
void main()
{
int n, d;
cout << "Enter two positive integers: ";
cin >> n >> d;
if (n%d==0)
cout << n << " is divisible by "<< d << endl;
getch();
}
آزمون بخشپذيري
اين برنامه چنانچه عدد ورودي اول بر دومي بخشپذير باشد در خروجي يك پيغام چاپ ميكند.
اسلاید 7 :
ساختار تصميم if
برنامهي مثال قبل به نظر ناقص ميآيد. زيرا براي حالتي كه n بر
d بخشپذير نباشد برنامه هيچ عكسالعملي از خود نشان نميدهد.
اين نقص به كمك دستور if….else رفع ميشود.
در هريك از روشهاي كاربرد، در صورت درست بودن شرط، دستور
يا دستورات بعد از if و گرنه دستور يا دستورات بعد از else اجرا
ميشوند.
اسلاید 8 :
if (شرط)
دستور;
else
دستور;
ساختار تصميم if
if (شرط)
}
دستور 1;
دستور 2;
…
n دستور;
{
else
}
دستور 1;
دستور 2;
…
n دستور;
{
اسلاید 9 :
دستور If (مثال)
#include
#include
void main()
{
int n, d;
cout << "Enter two positive integers: ";
cin >> n >> d;
if (n%d==0)
cout << n << " is divisible by "<< d << endl;
else
cout << n << " is not divisible by " << d << endl;
getch();
}
آزمون بخشپذيري ( اصلاح شده )
اسلاید 10 :
استفاده از دستورهاي انتخاب تودرتو
اين برنامه همان آزمون بخشپذيري دو عدد است اما به شكلي اصلاح شده كه هنگامي كه عدد دوم برابر صفر باشد اعلام عدم امكان پذيري تقسيم را نمايد.
در اين برنامه دستور if..else دوم در داخل if..elseاول قرار گرفته است لذا زماني اجرا ميشود كهd صفر نباشد.
void 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;
}
يك قانون بسيار مهم:
هر else به نزديكترين if تعلق دارد.
اسلاید 11 :
دستور- if … elseمثال
برنامهاي كه معدل دانشجويي را خوانده و معادل حرفي آن را چاپ ميكند.
#include
#include
void main()
{
float average;
cout << " Enter your average:";
cin >> average;
if (average>=17 && average <= 20)
cout << " your score is A" ;
else if (average>=15 && average<17)
cout << " your score is B" ;
else if (average>=12 && average<15)
cout << " your score is C" ;
else if (average <12)
cout << " your score is D" ;
getch();
}
اسلاید 12 :
1- برنامهاي بنویسید كه یک عدد از ورودی دریافت کرده، اگر عدد دریافتی کوچکتر از 100 بود پیغام ok در خروجی چاپ کند.
2- برنامه ای بنویسید که حقوق یک کارمند را از ورودی دریافت کند اگر عدد بزرگتر از 1800000باشد 10% مالیات و 5% بیمه کم کند سپس حقوق خالص دریافتی را در خروجی چاپ کند؟
3- برنامهاي بنویسید كه یک عدد از ورودی دریافت کرده، اگر عدد زوج بود یک پیغام زوج و در غیر اینصورت پیغام فرد را در خروجی نمایش دهد.
اسلاید 13 :
4- برنامهاي بنویسید كه مقدار متغیر x از ورودی دریافت شود سپس مقدار y از معادله زیر محاسبه و چاپ شود.
5- برنامه ای بنویسید که سه ضلع یک مثلث را از ورودی دریافت کرده، بزرگترین ضلع را در خروجی چاپ کند؟
اسلاید 14 :
6- برنامه ای بنویسید که نمره یک دانشجو را از ورودی دریافت کند و بصورت زیر گروه بندی نماید؛
اگر نمره بین 90 تا 100 باشد، پیغام «عالی» را نمایش دهد.
اگر نمره بین 80 تا 90 باشد، پیغام «خیلی خوب» را نمایش دهد.
اگر نمره بین 70 تا 80 باشد، پیغام «خوب» را نمایش دهد.
اگر نمره کوچکتر یا مساوی 70 باشد، پیغام «مردود» را نمایش دهد.
اسلاید 15 :
ساختار تصميم switch
ساختار switch يكي از ساختارهاي جالب و مهم در زبان C++ ميباشد.
از اين ساختار براي تصميمگيريهاي چندگانه براساس مقادير مختلف يك عبارت استفاده ميشود.
به طور كلي، در تمام تصميمگيريهايي كه بيش از سه انتخاب وجود داشتهباشد بهتر است از ساختار switch استفاده شود.
اسلاید 16 :
ساختار تصميم switch
در دستور switch ابتدا عبارت موجود در مقابل switch به مقدار صحيح ارزيابي شده و مقدار آن تعيين ميگردد.
اگر اين مقدار با > مقدار 1< برابر بود، > دستورات 1< اجرا شده و دستور break كنترل برنامه را ازswitch خارج ميكند.
در صورت برابر نبودن با > مقدار 1<، اين عمليات براي > عبارت 2< صورت ميگيرد الي آخر.
چنانچه مقدار عبارت با هيچ يك از مقادير برابر نبود، دستورات موجود در قسمت default اجرا ميشوند.
اسلاید 17 :
نكات ساختار تصميم switch
ساختار switch ميتواند فاقد قسمت default باشد.
مقادير موجود در case هاي دستور switch نميتوانند داراي مقادير يكسان باشند.
يكي از تفاوتهاي if و switch در اين است كه در ساختار if ميتوان عبارت منطقي يا رابطهاي را مورد بررسي قرار داد ولي در ساختار switch فقط «مساوي بودن» مقادير بررسي ميشود.
اسلاید 18 :
دستور- switch مثال
برنامهاي كه عملگري را از ورودي گرفته و نوع آن را با دستور switch تعيين ميكند.
#include
int main()
{char op;
cout<<"Enter an operator:";
cin>>op;
switch(op){
case '+':
cout<<"you have entered + for Addition!"<break;
case '-':
cout<<"you have entered - for Minus!"<break;
case '*':
cout<<"you have entered * for Multiply!"<break;
case '/':
cout<<"you have entered / for ?Division!"<break;
default:
cout<<"operator is illegal"<}
cin.get();
cin.get();
}
اسلاید 19 :
7- برنامه ای بنویسید که یک عدد را از ورودی دریافت کند اگر هر کدام از شرطهای زیر برقرار بود پیغام مناسب را در خروجی نمایش دهد؛
اگر عدد برابر 1 باشد، پیغام «شنبه» را نمایش دهد.
اگر عدد برابر 2 باشد، پیغام «یکشنبه» را نمایش دهد.
اگر عدد برابر 3 باشد، پیغام «دوشنبه» را نمایش دهد.
اگر عدد برابر 4 باشد، پیغام «سه شنبه» را نمایش دهد.
اگر عدد برابر 5 باشد، پیغام «چهارشنبه» را نمایش دهد.
اگر عدد برابر 6 باشد، پیغام «پنج شنبه» را نمایش دهد.
اگر عدد برابر 7 باشد، پیغام «جمعه» را نمایش دهد.
اگر عدد بزرگتر باشد، پیغام «عدد نامعتبر» را نمایش دهد.
اسلاید 20 :
8- برنامه ای بنویسید که یک کاراکتر و دو عدد را از ورودی دریافت کند موارد زیر را برسی کند؛
اگر کاراکتر ورودی علامت + باشد، آنگاه دو عدد را با هم جمع کند.
اگر کاراکتر ورودی علامت - باشد، آنگاه دو عدد را ازهم کم کند.
اگر کاراکتر ورودی علامت * باشد، آنگاه دو عدد را درهم ضرب کند.
اگر کاراکتر ورودی علامت / باشد، آنگاه دو عدد را برهم تقسیم کند.
9- برنامه ای بنویسید که یک عدد را بعنوان ماه از ورودی دریافت کند سپس تشخیص دهد این ماه چند روز دارد.