گام چهارم در برنامه نویسی ++C
موضوع این گام:
اهداف کلی: شناخت ساختار تکرار for و نحوه نوشتن آن در برنامه نویسی و تشخیص نوشتن برنامه با while یا for باید بنویسد.
اهداف رفتاری و عمکردی:
- نحوه دستور for را شناخته و از آن برای ایجاد حلقه استفاده کنید.
سرفصل های تئوری:
- توضیح حلقه for
- تفاوت و شباهت های حلقه while و for
- نکات حلقه for و علت نیاز به این حلقه تکرار
- شرح سری و چند جمله ای ها
- شرح جدول تعقیب
سرفصل های عملی:
- نوشتن برنامه محاسبه سری تا جمله ی معین
- نوشتن مثلث سرپینسکی
مواد و تجهیزات لازم برای گام:
{
دستورات ;
}
سه قسمت داخل پرانتز، حلقه را کنترل می کنند.
عبارت مقدار اولیه برای اعلان یا مقداردهی اولیه به متغیر کنترل حلقه استفاده می شود. این عبارت اولین عبارتی است که ارزیابی می شود پیش از این که نوبت به تکرارها برسد.
عبارت شرط ادامه حلقه برای تعیین این که آیا حلقه باید تکرار شود یا خیر به کار می رود. یعنی این عبارت، شرط کنترل حلقه است. اگر این شرط درست باشد دستور اجرا می شود.
عبارت افزایش برای پیش بردن متغیر کنترل حلقه به کار می رود. این عبارت پس از اجرای شرط ادامه حلقه ارزیابی می گردد.
مثال: استفاده از حلقه ی for برای محاسبه ی مجموع اعداد صحیح متوالی
#include
#include
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;
}
می توان یک یا چند قسمت از "افزایش، شرط ادامه حلقه مقدار دهی اولیه" حلقه را خالی گذاشت.
بخش افزایشی می تواند کارکردهای دیگری به جز افزایش نیز داشته باشد. در حقیقت وظیفه این قسمت، مقدار دهی مجدد (Reinitialization) است.
می توان دو یا چند متغیر کنترل کننده حلقه وجود داشته باشد. (ترکیبی از یک شرط و شمارش) به " ; "ها توجه شود.
به جایگاه هر قسمت در for توجه شود.
شمارنده حلقه لزوما عدد صحیح نیست.
در C++ استاندارد وقتی یک متغیر کنترل درون یک حلقه ی for اعلان می شود (مانند i در مثال بالا) حوزه ی آن متغیر به همان حلقه ی for محدود می گردد. یعنی آن متغیر نمی تواند بیرون از آن حلقه استفاده شود.
نتیجه ی دیگر این است که می توان از نام مشابهی در خارج از حلقه ی for برای یک متغیر دیگر استفاده نمود.
مثال: یك حلقه ی for نزولی برنامه ی زیر ده عدد صحیح مثبت را به ترتیب نزولی چاپ می کند:
#include
#include
int main()
{ for (int i=10; i > 0; i--)
cout << " " << i;
}
بیشتر از یك متغیر کنترل در حلقه ی for
مثال: حلقه ی for در برنامه ی زیر دو متغیر کنترل دارد:
#include
#include
int main( )
{ for (int m=95, n=11, m%n > 0; m -= 3, n++)
cout << m << "%" << n << " = " << m%n << endl;
}
جدول تعقیب
در بسیاری موارد و برای تجزیه و تحلیل عملکرد یک برنامه، نیاز داریم که مقادیر متغیرها و شمارنده حلقه ها را زیر نظر بگیریم. برای این کار از جدول تعقیب یا جدول trace استفاده می کنیم. در این جدول به ازای هر متغیر یک ستون در نظر گرفته شده است و با اجرای سطر بعدی( یا اجرای یک دور حلقه)، مقادیر جدید متغیرها در یک سطر جدید نوشته می شوند. می توان ستون های دیگری نیز برای یادداشت شماره سطر و. . . در نظر گرفت.
- برنامه زیر چه کاری انجام می دهد؟
int main()
{
long i, j = 0;
cin>>i;
for(j = 0; i > 0; i /= 10)
j = j*10+i%10;
cout<
جواب: چاپ کردن معکوس یک عدد.
دستور break بقیه ی دستورهای درون بلوك حلقه را نادیده گرفته و به اولین دستور بیرون حلقه پرش می کند. دستور continue نیز شبیه همین است اما به جای این که حلقه را خاتمه دهد، اجرا را به تکرار بعدی حلقه منتقل می کند.
مثال: با استفاده از دستورهای break و continue دراین برنامه سعی کنید بفهمید که برنامه زیرچه کاری انجام می دهد.
#include
#include
int main()
{ int n = 1;
char c;
for( ; ;n++ )
{ cout << "\nLoop no: " << n << endl;
cout << "Continue?
cin >> c;
if (c = = 'y') continue;
break;
}
cout << "\nTotal of loops: " << n;
}
تمرین:
سعی کنید با استفاده ازبرنامه نویسی، شکل زیررا رسم نمایید.
یكی از كاربردهای بسیار مهم رایانهها، «شبیهسازی» سیستمهای دنیای واقعی است. تحقیقات و توسعههای بسیار پیشرفته به این راهکار خیلی وابسته است. به وسیله ی شبیهسازی میتوانیم رفتار سیستمهای مختلف را مطالعه کنیم بدون این که لازم باشد واقعا آنها را پیادهسازی نماییم. در شبیهسازی نیاز است «اعداد تصادفی» توسط رایانهها تولید شود تا نادانستههای دنیای واقعی مدلسازی شود.
رایانهها «ثابتکار» هستند یعنی با دادن دادههای مشابه به رایانههای مشابه، همیشه خروجی یکسان تولید میشود. با وجود این میتوان اعدادی تولید کرد که به ظاهر تصادفی هستند؛ اعدادی که به طور یکنواخت در یک محدوده ی خاص گستردهاند و برای هیچکدام الگوی مشخصی وجود ندارد. چنین اعدادی را «اعداد شبهتصادفی» مینامیم.
مثال: تولید اعداد شبه تصادفی
این برنامه از تابعrand() برای تولید اعداد شبه تصادفی استفاده می کند:
#include
#include
int main()
{ // prints pseudo-random numbers:
for (int i = 0; i < 8; i++)
cout << rand() << endl;
cout << "RAND_MAX = " << RAND_MAX << endl;
}
هر بار که برنامه ی بالا اجرا شود، رایانه هشت عدد صحیح unsigned تولید می کند که به طور یکنواخت در فاصله ی 0 تا
RAND_MAX گسترده شده اند. .است 2,147,483,647 در این رایانه برابر با RAND_MAX
گام به گام با برنامه نویسی به زبان C++