بخشی از پاورپوینت
اسلاید 1 :
دستورات کنترل و تکرار- 2
اصول كامپيوتر 1
اسلاید 2 :
ياد آوري: اجراي برنامه
اجراي سريال
دستورات برنامه به ترتيبي که نوشته شده اند، اجرا مي شوند
کنترل اجرا و انتقال آن
زماني اتفاق مي افتد که دستور بعدي، دستور سريال بعدي نيست
دستورات همه برنامه ها در قالب سه ساختارنوشته مي شوند
دستورات سريال if, if-else, switch
دستورات شرط و انتخابif, if-else, switch
دستورات تکرار وحلقه while, do/while , for
اسلاید 3 :
تکرار با استفاده از شمارنده
تکرار با استفاده از شمارنده
حلقه تا زماني تکرار مي شود که متغير شمارنده به مقدار خاصي برسد
تکرار با شمارنده، تکرار معين است
تعداد دفعات تکرار دستورات حلقه را مي توان فهميد
مثال
دريک کلاس 10 نفره امتحاني برگزار شده، ميانگين نمرات اين کلاس را تعيين کنيد:
اسلاید 4 :
تکرار با استفاده از شمارنده
الگوريتم مثال
Set total to zero
Set grade counter to one
While grade counter is less than or equal to ten
Input the next grade
Add the grade into the total
Add one to the grade counter
Set the class average to the total divided by tenPrint the class average
اسلاید 5 :
برنامه مثال قبل
int total; // sum of grades entered by user
int gradeCounter; // number of the grades to be entered next
int grade; // grade value entered by user
int average; // average of grades
// initialization phase
total = 0; // initialize total
gradeCounter = 1; // initialize loop counter
// processing phase
while ( gradeCounter <= 10 ){ // loop 10 times
cout << "Enter grade: "; // prompt for input
cin >> grade; // input next grade
total = total + grade; // add grade to total
gradeCounter = gradeCounter + 1; // increment counter by
} // end while
// termination phase
average = total / 10; // integer division yields integer result
// display total and average of grades
cout << "\nTotal of all 10 grades is " << total << endl;
cout << "Class average is " << average << endl;
اسلاید 6 :
تکرار با پرچم (نگهبان/قراول)
مساله
برنامه اي بنويسيد که ميانگين نمرات کلاس را محاسبه کند. تعداد دانشجويان کلاس در هربار اجراي برنامه ممکن است متفاوت از قبل باشد
پرچم پايان ( قراول)
پايان ورود داده ها را مشخص مي کند
حلقه با ورود مقدار پرچم، پايان مي يابد
مقدار پرچم بايد طوري انتخاب شود که با مقادير قابل قبول اشتباه نشود
اسلاید 7 :
طراحي بالا به پايين Top-Down Design
شکل کلي مساله را در قالب شبه کد بيان کنيد:
Determine the class average for the quiz
اين شکل کلي را به مسايل کوچکتر بشکنيد:
Initialize variables
Input, sum and count the quiz grades
Calculate and print the class average
اسلاید 8 :
طراحي بالا به پايين الگوريتم
بدنه اغلب برنامه ها متشکل از سه فاز (بخش) است:
آغازش يا آماده سازي: Initialization
مقادير اوليه متغيرهاي برنامه تعيين مي شوند
پردازش
مقادير متغيرها از ورودي خوانده شده و اعمال لازم روي آنها انجام مي گيرد
پايان
نتايج نهايي محاسبه و چاپ مي شود
طراحي بالا به پايين و تقسيم گام به گام بخش آغازش
Initialize variables
به
Initialize total to zero
Initialize counter to zero
اسلاید 9 :
تقسيم گام به گام
تقسيم
Input, sum and count the quiz grades
به
Input the first grade (possibly the sentinel)
While the user has not as yet entered the sentinel
Add this grade into the running total
Add one to the grade counter
Input the next grade (possibly the sentinel)
تقسيم
Calculate and print the class average
به
If the counter is not equal to zero
Set the average to the total divided by the counter
Print the average
Else
Print “No grades were entered”
اسلاید 10 :
مثال: تکرار نا معين
cout << "Enter grade or -1 to quit: ";
cin >> grade;
while ( grade != -1 ){total = total + grade;
gradeCounter = gradeCounter + 1; cout << "Enter grade or -1 to quit: ";
cin >> grade;
} // end while
اسلاید 11 :
ساختارهاي کنترلي تو در تو
مساله:
موسسه اي نتيجه قبولي دانشجويانش(10 نفر) را منتشر کرده است. برنامه اي بنويسيد که اگر 8 نفر يا بيشتر قبول شده باشند، پيغام ”شهريه را افزايش دهيد“ چاپ شود. نتيجه هر نفر با 1 (قبول) يا 2( مردود) تعيين مي شود
مي توان ديد که:
الف: برنامه نتيجه 10 نفر را پردازش مي کند پس يک حلقه باشمارنده مي توان ساخت
مي توان از دو شمارنده استفاده کرد: يکي براي شمردن تعداد دانشجويان و ديگري براشمردن تعداد مردودين.
نتيجه هردانشجو 1 يا 2 است. اگر 1 نبود ، فرض مي کنيم 2 است
بيان سطح بالاي مساله
Analyze exam results and decide if tuition should be raised
اسلاید 12 :
ساختارهاي کنترلي تو در تو
اولين تقسيم
Initialize variables
Input the ten quiz grades and count passes and failures
Print a summary of the exam results and decide if tuition should be raised
تقسيم
Initialize variables
به
Initialize passes to zero
Initialize failures to zero
Initialize student counter to one
اسلاید 13 :
ساختارهاي کنترلي تو در تو
تقسيم
Input the ten quiz grades and count passes and failures
به
While student counter is less than or equal to tenInput the next exam result
If the student passed
Add one to passesElse Add one to failures
Add one to student counter
تقسيم
Print a summary of the exam results and decide if tuition should be raised
به
Print the number of passes
Print the number of failures
If more than eight students passed Print “Raise tuition”
اسلاید 15 :
3. Print results
Program Output
Enter result (1=pass,2=fail): 1
Enter result (1=pass,2=fail): 1
Enter result (1=pass,2=fail): 1
Enter result (1=pass,2=fail): 1
Enter result (1=pass,2=fail): 2
Enter result (1=pass,2=fail): 1
Enter result (1=pass,2=fail): 1
Enter result (1=pass,2=fail): 1
Enter result (1=pass,2=fail): 1
Enter result (1=pass,2=fail): 1
Passed 9
Failed 1
Raise tuition
اسلاید 16 :
عملگرهاي مختصر انتساب
عبارات انتسابيc = c + 3; را مي توان به صورت c += 3; نوشت
عبارتي به شکل کلي
variable = variable operator expression;
را مي توان به شکل
variable operator= expression;
چند مثال:
d -= 4 (d = d - 4)
e *= 5 (e = e * 5)
f /= 3 (f = f / 3)
g %= 9 (g = g % 9)
اسلاید 17 :
عملگرهاي افزايش و کاهش
مي توان به جاي c= c+1 از عملگر ++ استفاده کرده و چنين نوشت: c++
به همين ترتيب مي توان c-- را به جاي c -=1 بکاربرد
Preincrement
عملگر قبل از متغير قرار مي گيرد (++c or --c)
ابتدا مقدار متغير تغيير مي کند و سپس عمل خواسته شده روي آن انجام مي گيرد
Posincrement
عملگر بعد از متغير قرار مي گيرد (c++ or c--)
عمل خواسته شده روي متغير انجام مي گيرد، سپس مقدار آن تغيير مي کند اگر مقدار فعلي متغير c برابر 5 باشد:
دستور cout << ++c عدد 6 را چاپ مي کند. ابتدا مقدار c افزايش يافته و سپس چاپ مي شود.
دستور cout << c++ عدد 5 را چاپ مي کند. ابتدا مقدار c چاپ شده و سپس افزايش مي يابد.
اسلاید 18 :
عملگرهاي افزايش و کاهش
اگر متغير در عبارتي استفاده نشده باشد، Preincrement و Postincrementاثر مشابهي دارند:
++c;
cout << c;
and
c++;
cout << c;
اسلاید 19 :
ملزومات تکرار با شمارنده
ملزومات تکرار با شمارنده:
متغير اختصاصي براي شمارنده
مقدار اوليه متغير
شرطي که اتمام حلقه را بر اساس مقدار شمارنده بررسي کند
عمل افزايش يا کاهش شمارنده که در هر بار اجراي حلقه اجرا مي شود
مثال:
int counter =1; //initialization
while (counter <= 10){ //repetition condition
cout << counter << endl;
++counter; //increment
}
اسلاید 20 :
ملزومات تکرار با شمارنده
تعريف
int counter = 1;
متغير counter را تعريف مي کند
تعيين مي کند نوع آن integer است
بخشي از حافظه کامپيوتر را به اين متغير اختصاص مي دهد
مقدار آغازين آن را برابر 1 قرار مي دهد