بخشی از پاورپوینت

اسلاید 1 :

درس برنامهسازي کامپيوتر
توابع
در زبان برنامه سازي C++

اسلاید 2 :

تابع
بخشي از يک برنامه که ميتواند با يک نام صدا زده شود
يک نام دارد (مطابق قواعد identifier زبان c)
تعدادي ورودي ميتواند داشته باشد
وروديها درون پرانتز بعد از نام تابع ذکر ميشوند
در تعداد و نوع وروديها محدوديتي (تقريباٌ) وجود ندارد
تابع ميتواند بدون ورودي باشد (void)
يک خروجي ميتواند داشته باشد
خروجي در موقعيتي که تابع ذکر ميگردد جايگزين تابع ميشود
تابع ميتواند بدون خروجي باشد (void)

اسلاید 3 :

از تکرارهاي اضافي بخشهاي برنامه جلوگيري ميکند
باعث خوانا شدن برنامه ميشود
باعث ساختاريافتگي برنامه ميشود

اسلاید 4 :

بايد نخست تعريف شود
مطابق قاعدة زبان c، در خطوطي قبل از استفاده، بايد تعريف صورت گيرد
نحوة تعريف
نوع متغير خروجي
نام تابع
درون پرانتز نوع و نام متغيرهاي ورودي
درون آکلاد متن برنامه
مقدار برگشتي به صدا زننده از طريق return انجام شود
Return ضمن برگشت دادن مقدار، کنترل را به انتهاي آکلاد تابع منتقل ميکند – يعني تابع را ميبندد و خطوط ديگري از متن تابع اجرا نميشوند
int mul (int a, int b) {
return(a*b);
}

اسلاید 5 :

Identifier عمومي و محلي
هر identifier فقط درون آکلاد فعال خود (و براي خطوط پايينتر از محل تعريف) تعريف ميشود و خارج از آن اعتبار ندارد (اعتبار محلي متغيرها)
براي آکلادهايي که پس از اين باز ميشوند هم اعتبار دارد
براي آکلادهايي که قبل از اين باز شدهاند و در موقعيت فعال قرار ندارند اعتبار ندارند
اگر در اصل برنامه (خارج از main) تعريف شود حکم عمومي (براي خطوط پايينتر از آن) دارد
متغير عمومي در ابتداي تعريف مقدار صفر ميگيرد (اگر مقدار ديگري به آن داده نشود)

اسلاید 6 :

تعريف تابع
براي اينکه بتوان از تابع تعريف شده در متن برنامه استفاده نمود بايد آنرا در موقعيتي قبل از محل استفاده تعريف کرد
تابع ميتواند در ابتداي متن برنامه تعريف شود
اگر توابع تعريف شده به يکديگر ارتباط داشته باشند ترتيب حضورشان هنگام تعريف مهم خواهد بود
براي رفع نگرانيهاي مرتبط با اين موضوع، معمولاٌ در ابتداي برنامه فقط identifier تابع معرفي ميشود، پس از آن بخش main آمده و در نهايت هر تابع مجدداٌ بطور کامل تعريف ميشود

اسلاید 7 :

مثال
t015-t016

اسلاید 8 :

call by value – call by reference
در عبارت a=4+sin(1.5); زماني که برنامه به محل sin(1.5) ميرسد
برنامة فعلي متوقف ميشود
تابع در حافظه بار ميشود (تا اين زمان در حافظه حضور نداشته)
مقدار 1/5 به تابع (متغيرهاي متناظر به ترتيب ذکر شدن) منتقل ميشود
تابع اجرا شده و پس از پايان بسته شده (از حافظه حذف ميشود) و نتيجه را به صدا زننده برميگرداند
حاصل عمليات که يک مقدار float است در محل sin جايگزين آن ميشود
اين فرآيند call by value ناميده ميشود
اگر بجاي مقدار، آدرس متغير، بين صدا زننده و صدا زده شده مبادله شود به آن call by reference ميگويند

اسلاید 9 :

call by value – call by reference
در c، طبق تعريف، تابع نميتواند بيش از يک مقدار را به صدا زننده برگرداند
با استفاده از روش call by reference هر ميزان متغير ميتواند بين صدا زننده و صدا زده شده مبادله شود
main يک تابع براي سيستم عامل در نظر گرفته ميشود (با نام فايل اجرايي توليد شده)
عبارت int ابتداي main نوع متغيري که بايد یه سيستم عامل هنگام خاتمه يافتن برنامه منتقل شود را مشخص مينمايد
اين مقدار مشخص کنندة نحوة خاتمه يافتن برنامه (سالم، ناقص و گزارشهاي مشابه) است
پرانتز بعد از main محل قرار گرفتن وروديهاي برنامه است. اگر بخواهيم برنامه هنگام صدا زده شدن مقداري (مقدارهايي) را نيز به عنوان ورودي دريافت نمايد، در اين محل بايد چگونگي آنرا مشخص کنيم

اسلاید 10 :

صدا زدنهاي تودرتو
در C تابع ميتواند خودش را نيز صدا بزند
در برخي زبانها اين امکان قرار داده نميشود
قدرت برنامهنويسي جالبي را در اختيار ميگذارد
از طرفي پيچيدگي برنامه را ميافزايد و عيبیابي را سختتر ميکند
در تعيين معيار پايان يافتن صدا زدنهاي تودرتو بايستي دقت نمود. اگر حلقة بينهايت تشکيل شود ميتواند رفتار غير عادي رخ دهد

اسلاید 11 :

چگونه تابعها را تعريف کنيم
به نظر، سليقه و تشخيص برنامهنويس ربط دارد
مسئلة مورد نظر را به وظايف کوچکتر ميشکنيم طوري که
هر يک عملکرد/مفهوم مشخصي داشته باشند
متناظر با مفهوم تابع، نام مناسبي براي آن در نظر گرفته شود
احتمالاٌ در بخشهاي مختلف برنامه بتوانند صدا زده شوند
در يک تابع ممکن است از تعدادي تابع کوچکتر استفاده شده باشد

اسلاید 12 :

مثالها
t019 – t020

در متن اصلی پاورپوینت به هم ریختگی وجود ندارد. برای مطالعه بیشتر پاورپوینت آن را خریداری کنید