سلام
می خواستم موضوع توابع بازگشتی رو در زبان
Pascal و زبان C/C++ بذارم
در Pascal رو داخل دلفی
اما C/C++ رو تو محیط Dos می نویسم (C++ ver 5. 02)
چون C/C++ . Net رو نصب شده رو سبستمم ندارم
امیدوارم به دردتون بخوره
سلام
می خواستم موضوع توابع بازگشتی رو در زبان
Pascal و زبان C/C++ بذارم
در Pascal رو داخل دلفی
اما C/C++ رو تو محیط Dos می نویسم (C++ ver 5. 02)
چون C/C++ . Net رو نصب شده رو سبستمم ندارم
امیدوارم به دردتون بخوره
سلام
اولش یه تعریف از تابع بازگشتی
خیلی ساده:تابعی که کار های بازگشتی و تکراری
رو با صدا زدن خودش انجام بده
مثلا فاکتوریل factorial یعنی ضرب یه عدد در
عدد قبلیش تا اینکه به یک(1) برسیم
کار تکراری و قابل پیاده سازی به وسیله تابع برگشتی
ضرب عدد در عدد قبلی
سلام
آموزش1:فاکتوریل
در Pascal
اول تابع زیر رو در private قسمت تعریف کنید
حالا برای بدنه تابعکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دو تا Edit رو فرم بذارین و یه Button
حالا توی رویداد Click مربوط به Button بنویسید
حالا در C/C++کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
محیط C++ تحت داس
برای زبان C هم تغییرات کمی لازمهکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تبدیل Cout به Printf و ....
ولی ساختار همینه
امیدوارم به درتون بخوره
هر جا سوالی بود در خدمتم
اگه بلد باشم جواب می دم
Last edited by mahdi bg; 08-03-2007 at 05:31.
بازم گير مد تشكر هستيم
تششششششششششششششششكر
سلام
ممنون ، تاپیک جالبی رو باز کردی ...
موفق باشی ...
سلام
آموزش 2 :
چاپ دنباله
n-…-5-4-3-2-1-2-3-4-5-…-n
ابتدا در Delphi
تابع Revers رو در قسمت private تعریف می کنیم
در بدنه تابع می نویسیمکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
endکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دوتا Edit و یه Button روی فرم می ذاریم
داخل Click مربوط به Button می نویسیم
تابع در C/C++کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
با یه خورده تغییر در C هم می تونین بنویسید.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
امیدوارم به دردتون بخوره
هر جا مشکلی بود در خدمتم
اگه بتونم جواب می دم
Last edited by mahdi bg; 12-03-2007 at 07:22.
سلام
منتظر توابع شما هم هستیم
چندتا دیگه هم نوشتم که می ذارمسلام
ممنون ، تاپیک جالبی رو باز کردی ...
موفق باشی ...
بهترین مبحث برنامه نویسی بعد از Database به نظرمن
توابع بازگشتی هستن. یعنی این توابع یه چیز دیگه ان
فقط اینو در باره توابع بازگشتی بگم که
تمام تکنبک های برنامه نویسی ( غیر ازdatabase) یه
طرف ، توابع بازگشتی هم همون طرف.
آموزش3:بدست اوردن n امین عدد دنباله فیبوناچی
در Pascal
اول تابع زیر رو در private قسمت تعریف کنید
بعدش تابع زیر رو در public قسمت تعریف کنیدکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا برای بدنه fibonachiPrivate تابعکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و برای تابع fibonachiکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دو تا Edit رو فرم بذارین و یه Buttonکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا توی رویداد Click مربوط به Button بنویسید
دقت کنید دو تا تابع تعریف شده ، برای حفظ امنیت برنامه هست(اگر بخواهین اینا راکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
توی یه کلاس به مار ببرید)
کاربر نباید به توابع اصلی شما دسترسی داشته باشد
و باید یه تابع واسط تعریف شود
حالا در C/C++
محیط C++ تحت داس
برای زبان C هم تغییرات کمی لازمهکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تبدیل Cout به Printf و ....
ولی ساختار همینه
امیدوارم به درتون بخوره
چون توابع رو خودم می نویسم ممکن بهینه تر هم پیدا بشه
اما قبل از قرار دادن تست شون میکنم
هر جا سوالی بود در خدمتم
اگه بلد باشم جواب می دم
برنامه نویسی بازگشتی بزرگترین مشکلی که داره استفاده بیش از اندازه از حافظه هست که باعث کند شدن اجراهای متوالی این نوع توابع میگردد. ولی یکی از مزیتهای این نوع توابع راحتی تبدیل فرمولهای ریاضی به کد برنامه نویسی و خوانایی کد میباشد
کد پیدا کردن GCD بوسیله توابع بازگشتی:
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Last edited by netspc; 12-03-2007 at 07:32.
این قسمت هم باید در درون تابع فیبو قرار بگیرد (لطفاً به تعریف کلی توابع برگشتی دقت بیشتری کنید).کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در ضمن اگر اشتباه نکنم سری فیبو از 0 شروع میشه
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Last edited by netspc; 12-03-2007 at 07:39.
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)