برنامه نویسی و دیگر هیچ

فضایی برایه یادگیری برنامه نویسی

برنامه نویسی و دیگر هیچ

فضایی برایه یادگیری برنامه نویسی

۳ مطلب با کلمه‌ی کلیدی «++c» ثبت شده است

تابع موضوع غیر آشنایی برای ما نیست ، تا به اینجا ما در برنامه های خود بارها و بارها از توابع استفاده کرده ایم.

توابعی مثل:( )sqrt() ,pow(2,3) ,rand

این توابع به صورت آماده در اختیار ما بود تا هر زمان که لازم داشتیم از آنها استفاده کنیم، اما ممکن است ما به یک تابعی احتیاج داشته باشیم که در مجموعه توابع آماده وجود نداشته باشد! پس لازم است که ما هم بتوانیم تابع هایی بر اساس نیاز خود تعریف و پیاده سازی کنیم!

 

اول از مثال های ساده شروع میکنیم:

تابعی بنویسید که 2 برابر یک عدد را حساب کند.

توجه: قدم اول برای نوشتن یک تابع این است که بفهمیم که تابع ما چه چیزی میگیرد و چه چیزی رو برمیگردونه:

 مثلا تابع توان((pow(2,3 )  دو تا عدد میگیره و حاصل اولی به توان دومی را به ما میدهد( در اینجا 2 به توان 3 یعنی 8) ! خب حالا تابع ساده ای که ما  داریم مینویسیم قراره چی بگیره؟

یک عدد میگیره و 2 برابر آنرا برمیگردونه!

به اون چیزی که تابع میگیره میگن ورودی و به اون چیزی که برمیگردونه هم میگن خروجی.

در واقع تابع یه سری عملیات رویه ورودی انجام میده تا به خروجی نهایی برسه!

 

نحوه تعریف تابع ها در زبان++c:

 

(انواع ورودی)    اسم تابع       نوع خروجی    

  دستورات       }

{                         

 

توجه!توجه!توجه: تعریف تابع حتما قبل از main است.

 

نوع خروجی: خروجی یک تابع ممکن است عدد صحی، عدد اعشاری، کارکتر، رشته، پوچ و ... باشد.

انواع ورودی: یک تابع ممکن است یک، دو یا تعداد زیادی ورودی داشته باشد و در مواقعی هم اصن وردی نداشته باشه! اما اگر تابع شما ورودی داره باید نوع اون مشخص باشه که عدد صحیحه ، کاراکتر ، عدد اعشاری و یا ...

 

اسم تابع : همانند اسم متغیرها میتوان اسامی مختلفی برای توابع در نظر گرفت!

 

دستورات: شامل عملیاتی است که بر روی ورودی(ها) مورد نظر انجام میشود!

 

تعریف تابعی که 2 برابر یک عدد را حساب میکند!

 

( double f2 (double a 

}

 ; a= a*2

 ; return a

 {

 

اسم تابع رو به دلخواه f2 انتخاب شده! نوع ورودی رو عدد اعشاری در نظر گرفتم و چون این تابع قراره 2 برابر یک عدد رو حساب کنه و ورودی ما اعداد اعشاری رو هم شامل میشه نوع خروجی رو هم اعشاری انتخاب کردم!

 

دستورات این تابع: ابتدا 2 برابر a را حساب کردم و در a ریختم. سپس مقدار a رو برگردوندیم!

 

return   حاصل عملیاتی که تابع بر روی ورودی ها انجام داده با استفاده از دستور return برگردانده میشود.

 

سوال؟ به کجا برگردونده میشه؟ ما از توابع همانند گذشته در برنامه هامون استفاده خواهیم کرد و برنامه هامون رو هم که مثل قبل داخل main مینویسیم! پس هر جایی از main که ا ز یک تابع استفاده میکنیم اون تابع خروجی خودش رو که حساب کرده به همون نقطه برمیگردونه.

 به برنامه زیر توجه کنید:

 

درون main یک متغییر به اسم s داریم که اون رو برابر مقدار تابع f2 قرار دادیم به ازای عدد 7. در اینجا main که به این تابع مبرسه، از درون این تابع خبر نداره و فقط ازش میخواد مقدار ورودی که در اختیارش قرار داده(7) رو بگیره و یک خروجی به اون بده! که در اینجا خروجی تابع f2 وقتی به درون main برگردونده میشه دورن متغیر s ذخیره میشه! چون در برنامه s برابر با این تابع است.

 

مثال: تابعی بنویسید که 2 عدد بگیرد و مقدار کوچکتر رو برگردونه:

 

 

مثال: تابعی بنویسید که یک عدد گرفته اگر زوج است چاپ کند "zoj" و اگر فرد است "fard" .

 

 

 

 

نوع خروجی در تابع بالاvoid است؟! چرا؟ زمانیکه تابع ما قرار است نهایتا نوعی خروجی به صورت دستور cout و یا رسم شکلی داشته باشد میگوییم خروجی از نوع void یا پوچ است چرا که رسم شکل و یا cout ،خروجی لحظه ای است و یک لحظه قابل رویت است و بعد از آن در ادامه برنامه به آن دسترسی نداریم.

 

در تابعی که نوع خروجی void است از return به هیچ عنوان استفاده نمیشود.

 

 توابع به طور کلی به 4 قسمت تقسیم میشوند:

 

1- با ورودی-با خروجی

2-با ورودی-بدون خروجی

3--بدون ورودی-با خروجی

4-بدون ورودی-بدون خروجی

 

1-با وردی -با خروجی

 

مثال: تابعی بنویسید که یک عدد بگیرد قرینه آنرا حساب کند:

 

 

توجه کنید که این تابع مقدار قرینه را حساب میکند و بعد ما در جایی دیگر از برنامه(main) میتوانیم نتیجه کار تابع مورد نظر را چاپ کنیم.

 

 

2- با ورودی- بدون خروجی

 

مثال: تابعی بنویسید که یک عدد گرفته قرینه آنرا چاپ کند.

 

 

توجه کنید که وقتی قرار است خود تابع کار چاپ را انجام دهد خروجی آن از نوع void  میشود.

 

 

3- بدون ورودی- با خروجی

 

مثال: تابعی بنویسید که عدد 3.14 را برگرداند.

 

 

 

 

 

 

 

 

 

تان

  • علیرضایی

ماتریس چیست؟ هر ماتریس یک آرایش منظم از یه سری عدد هست!

مثلا به A میگن یه ماتریس .

همونطور که میبینید هر ماتریس از تعدادی سطر و ستون تشکیل شده.


الان A یه ماتریس 3 در 3 است !


و هر عنصر از ماتریس را از طریق سطر و ستون آن مشخص میکنیم ، aij  یعنی عنصر موجود در سطر i ام و ستون j ام.

مثلا اگر سطر ها و ستون ها را از 0 شماره گذاری کنیم عدد 3 در ماتریس A در سطر 0 ام و ستون 1 ام قرار دارد.3=a01 

سوال:

      برنامه ای بنویسید که در آن حاصل جمع دو ماتریس m در n را حساب و چاپ کند.در ابتدا سایز آنها یعنی m و n را  دریافت کرده، سپس مقادیر ماتریس اول و بعد مقادیر ماتریس دوم را از وردی گرفته و در نهایت ماتریس حاصل جمع را چاپ کند.

  • علیرضایی


 

با استفاده از آرایه ها میتوان تعداد زیادی داده را در کامپیوتر ذخیره کرد تا در هر زمان که به آنها احتیاج داشتیم به راحتی قابل دسترس باشند.


مثلا میشه نتیجه نهایی یک آزمون با 1000 شرکت کننده را در آرایه ای ذخیره کرد. حالا اگه بخواهیم بالاترین نمره کسب شده رو چاپ کنیم میشه با یک حلقه و مقایسه تک تک داده ها بزرگترین رو پیدا و چاپ کرد.

ولی یه لحظه فکر کنید اگه نمره ها داخل آرایه به صورت صعودی مرتب بود یعنی کمترین نمره در اولین خانه(با اندیس 0) و بیشترین نمره در خانه آخر ( با اندیس 999)بود خیلی راحت بدون انجام مقایسه با چاپ خانه آخر بیشنرین نمره رو چاپ میکردیم.


یا حتی اگه قرار بود نمرات  را به صورت صعودی چاپ کنیم از خونه اول تا آخر آرایه رو چاپ میکریم.

البته مرتب بودن داده ها درون یک آرایه خیلی بیشتر از اینها که گفته شد بدرد میخوره و بعدا بیشتر متوجه فایده اون میشید.


الان بیاید ببینیم چه روش هایی وجود داره که یک آرایه نامرتب رو مرتب کرد!

  • علیرضایی