جزوه تایپ شده برنامه سازی پیشرفته ۲
کاردانی دانشگاه آزاد خلاصه کتاب برنامه سازی پیشرفته 2 علمی کاربردی پیام نور کارشناسی ارشد دکترا استخدامی صاحبی دکتر طرقی حقیقت
:
=; ; :
: (> ) << ” ” << << ;
(== ) << ” ” << << ;
<< ” ” << << ;
-:
()
{ -: ; ; -: ; ; -: ; ; -: ; ;
(…) : ;
}
)(
++ :
:
;}() })( )( : + + + … + :
=;
<< “: “;
>> ;
=;
(<= ) {
+= ;
++;
}
<< “” << << ” ” << ; .: : :
=;
<< “: “; >> ;
<< “< ” << <<“” ; ==; (<=)
{
= + ; ++ ; << “,” <<; = ; = ;
}
=:
-:
{ { ;((: : – #<>
#<>
()
{ =; << “: “;
>> ; =; += ++; (< );
<< “” << << ” ” << ; (); ;
}
: :
()
{
;
<< “: “; >> ;
<< “< ” << << “:”; ==; { *= ; ++;
}
(<= ); << ;
{:
++ :
) ( : :
#<>
#<>
()
{ ; (= ; <= ; ++)
<< << ;
();
;
}
: (–(= ; > ; (= ; < ; += )
:
(= ; < ; ++ )
{ (= ; < ; ++ )
{ << “” << ; << ” ” << << ;
}
{*=: :
#<> #<> ()
{
(=; <= ; ++)
{
(=; <= ; ++) << *<< “t”;
cout << endl;
}
getch(); return 0;
}
خروجی کد مذکور به صورت زير است:
برای اين که برنامههای بزرگ قابل مديريت باشند، برنامهنويسان اين برنامهها را به زيربرنامههايی بخشبندی میکنند. اين زيربرنامهها «تابع» ناميده میشوند. توابع را میتوان به طور جداگانه کامپايل و آزمايش نمود و در برنامههای مختلف دوباره از آنها استفاده کرد.تابع اساس برنامه جزوه برنامه سازی پیشرفته ۲ ساختيافته است که باعث بالارفتن کارائی برنامه ها و آسانتر شدن برنامه نويسی می شود .
در واقع تابع) function( بلاکی ازکد است که کار خاصی را انجام می دهند و تحت يک نام گروه بندی می شود .
بدين ترتيب بلاک کد می تواند به هنگام نياز با استفاده از نامش اجرا شود. اين عمل فراخوانی تابع) function call( ناميده می شود. وقتی تابعی فراخوانی می شود دستورات درون تابع اجرا می شود. در انتهای تابع اجرا به همان محلی که تابع فراخوانی شده بود برمی گردد. ممکن است پارامترهايی به تابع ارسال شود. معمولا تابع مقداری را به برنامه فراخوان برمی : :
( —-)
{
/* ; */
{: ()
{ * ;
{: ) ( #<>
#<>
() {
* ;
}
()
{
;
<< “”;
>> ;
<< “” << << ” ” << () << “.”;
();
}
: : () : #<>
#<>
( );
( ) {
(> ) ;
;
}
() {
;
<<“: “; >> >> ;
= ();
<< “” << ;
();
;
}
: )( : را از ورودی خوانده و به تابعی تحويل می دهد. تابع تشخيص می دهد که عدد مورد نظر اول است يا خير .
1. #include <iostream.h>
2. #include <conio.h>
3. bool prime(int num){
4. bool temp=1;
5. for (int i=2; (i<=num/2) && temp; i++)
6. if (num % 2 ==0)
7. temp=false;
8. return temp;
9. }

خلاصه کتاب برنامه سازی پیشرفته
10. int main() {
11. int num;
12. cout<< “enter a number:”;
13. cin>>num;
14. if (prime (num))
15. cout<<num <<“is prime”;
16. else
17. cout<<num <<“is not prime”;
18. getch();
19. return 0;
20. }
توضيح: خطوط 1 تا 9 تابع prime را ايجاد می کند تا به بررسی اول بودن يا نبودن عدد بپردازد .
بدين ترتيب که عدد مورد نظر را بر اعداد” 6 تا نصف عدد مورد نظر” تقسيم کرده و باقی مانده تقسيم) num % 2(را در شرط if بررسی کرده تا اگر باقی مانده صفر شد )نشانه اول نبودن( مقدار temp را false قرار می دهد. در نهايت مقدار temp برگشت داده می شود.
در خط 02که تابع prime فراخوانی می شود خروجی تابع بررسی می شود تا اگر مقدار آن) temp( يک بود در خروجی بنويسد: عدد مورد نظر اول است در غير اين صورت اول نيست.
توابع ریاضی کتابخانه ای
کتابخانۀ C++ استاندارد مجموعهای است که شامل توابع از پيش تعريف شده و ساير عناصر برنامه است. اين توابع و عناصر از طريق «هدر» قابل دستيابیاند. گروهی از اين توابع پيش ساخته شامل توابعی هستند که در انجام عمليات رياضی به کار می روند. اين توابع در فايل math.h قرار دارند .
برای استفاده از يک تابع کتابخانه ای ابتدا تابع و شرح جزوه برنامه سازی پیشرفته ۲ را از مراجع برنامه نويسی پيدا کنيد. هر تابع کتابخانه ای دارای يک هدر فايل است که و توسط دستور include# بايد به برنامه ضميمه شود .تابع را طبق گرامر آن فراخوانی کنيد. اگر در فراخوانی تابع اشتباهی وجود داشته باشد کامپايلر پيغام خطا می دهد. برخی از توابع رياضی و ساختار آنها در جدول زير مشهود است:
مثال: با استفاده از توابع رياضی برنامه ای بنويسيد که يک عدد و يک توان از ورودی گرفته، عدد را به آن توان رسانده و در خروجی چاپ کند.
#include <iostream.h>
#include <math.h> #include <conio.h> int main()
{
double x,y;
cout<<“Enter the number:n”; cin>>x;
cout<<“Enter the power:n”; cin>>y;
cout<<“Result: “<<pow(x,y); getch(); return 0; }
نمونه خروجی:
مثال: برنامه ای بنويسيد که با استفاده از توابع رياضی جذر عدد را محاسبه کند.
#include <iostream.h>
#include <math.h>
#include <conio.h>
int main()
{ double x,y; cout<<“Enter the number:n”;
cin>>x; y=sqrt(x); cout<<“Result: “<<y;
getch(); return 0;
}
توابع بازگشتی
اين امکان وجود دارد که يک تابع خودش را صدا بزند. در اين حالت تابع را بازگشتی) recursive( می نامند. يک تابع بازگشتی بايد دارای شرطی باشد که به ازای آن خود را فراخوانی نمی کند. روش بازگشتی برای مسائلی استفاده می شود که مسئله اصلی می تواند به نسخه های کوچک تری از نسخه اصلی شکسته شود .
مثال معروف بازگشتی تابع فاکتوريل است. تابع جزوه برنامه سازی پیشرفته ۲ در رياضی به صورت حاصل ضرب اعداد صحيح غير منفی به صورت زير تعريف می شود:
1 = 0! به ازاn! = n * (n-1) * (n-2) * … * 2 * 1 : n > 0 اين تعريف براحتی به تابع زير منتهی می شود:
long factorial (int n) {
int k; long result = 1; for (k = 2; k <= n; k++) result = result * k; return result;
{اما تابع فاکتوريل را به صورت زير نيز می تواند تعريف کرد: 1 = 0!
به ازا n! = n * (-)! : > :
() { ((== ) || (== )) ; // * (- ); } :#<>
#<>
() { ((== ) || (== )) ; // * (- );
}
()
{ ;
<<“:”; >>; <<(); ();
;
}
: :
() = () = () = (-) + (-) > :() {
((== ) || (== )) // ; // (- ) + (- );
{«» «» :
[size];
: [4] A[3] , A[2] , A[1] , A[0] شامل
int A[5];مثال: شکل مقابل آرايۀ a که پنج عنصر دارد را نشان میدهد.
0 17.50
1 19.00
2 16.75
3 15.00
4 18.00
مثلا عنصر a[0] حاوی مقدار 17.5 و عنصر a[1] حاوی 19.0 است.
مثال: برنامۀ سادۀ زير يک آرايۀ سه عنصری را تعريف میکند و سپس مقاديری را در آن قرار داده و سرانجام اين مقادير را چاپ میکند:
int main() { int a[3];
a[2] = 55; a[0] = 11; a[1] = 33; cout << “a[0] = ” << a[0] << endl; cout << “a[1] = ” << a[1] << andl; cout << “a[2] = ” << a[2] << endl;
}
هنگام دسترسی به عناصر آرايه بعد از اسم آرايه بايد درون کروشه شماره انديس عنصر مورد نظر ذکر شود. در مثال بالا عناصر آرايه توسط دستور انتساب مقداردهی شد. می توان مقدار عناصر آرايه را از ورودی نيز دريافت
کرد:
آرایه یک بعدی
در آرايه های يک بعدی که لیست نيز ناميده ميشوند، با يک انديس ميتوان به عناصر آرايه دست يافت. آرايه های يک بعدی در ++C بصورت زير تعريف ميشوند:
[طول آرایه [ نام آرایه نوع آرایه
نوع آرایه يکی از انواع قابل استفاده در++ C است .نام آرایه برای دسترسی به عناصر آرايه مورد استفاده قرار ميگيرد و طول آرایه با يک عددصحيح مثبت مشخص ميشود.
انديس آرايه ها در++ C از صفر شروع ميشود. ميزان جزوه برنامه سازی پیشرفته ۲ ای که به آرايه اختصاص داده ميشود، به روش زير محاسبه ميشود:
طول آرايه * )طول نوع آرايه( = ميزان حافظه آرايه
مثال: در برنامه زير کليه عناصر يک آرايه از ورودی دريافت و سپس نمايش داده می شود.
#include <iostream.h> #include <conio.h>
int main() { int A[10]; for (int k = 0; k < 10; k++) { cout << “Enter an integer: “; cin >> A[k];
}
for (int k = 0; k < 10; k++) cout << A[k] << endl;
getch(); return 0;
}
مثال: برنامه ای بنويسيد که تعداد 5 عدد را از ورودی گرفته و در جزوه برنامه نویسی پیشرفته ۱ قرار دهد و بعد حاصل جمع آنها را محاسبه کرده و نتيجه را در خروجی نمايش دهد.
#include <iostream.h> #include <conio.h>
int main() {
int A[5]; int sum=0;
for (int k = 0; k < 5; k++) { cout << “Enter an integer: “; cin >> A[k];
}
for (int k = 0; k < 5; k++) sum+=A[k];
cout << “sum of these numbers is:” << sum;
getch(); return 0;
}
مثال: برنامه ای بنويسيد که آرايه ای به طول 5 را تعريف کرده و عناصر صحيح را به آن تخصيص دهد، سپس اين عناصر را #<> #<> () { [5]; ;
<<“:”;
(=; <=;++) >> [i]; (=; >=;–) << [i]<<“”; ();
;
}
: #<> #<> () { [10]; ;
<<“:”;
(=; <=;++)
>> [i]; = [0]; [0]=[9]; [9]=; (=; <=;++) << [i]<<“”;
(); ;
}
:
فهرست مطالب