تبلیغات

تابع چیست؟! متد چیست؟! و چه کاربردی در برنامه نویسی دارند؟!

نوشته شده توسط هادی اکبرزاده

در زبان‌های برنامه‌نویسی، مفهومی به نام تابع و متد وجود دارد. این دو کاملا مشابه هم هستند و تنها از یک نظر باهم تفاوت دارند؛ که در این مقاله به آن اشاره خواهیم کرد.

تابع چیست؟!

اگر به ریاضیات علاقه‌مند بوده و آن را مطالعه کرده باشید، بدون شک نام تابع را شنیده‌اید! در واقع تابع یکی از مفاهیم نظریه مجموعه‌ها و حساب دیفرانسیل و انتگرال است! و به‌طور ساده می‌توان گفت که به قاعده‌های تناظری که به هر ورودی خود یک و فقط یک خروجی نسبت می‌دهند، تابع گفته می‌شود. که البته این تعاریف کمی پیچیده‌اند و به خاطر همین ادامه‌ی آن را در بخش زیر و صرفا برای علاقه‌مندان و به نقل از ویکی‌پدیا آورده‌ایم:

برای مطالعه اینجا را باز کنید

پیشینه

تابع به عنوان مفهومی در ریاضیات، توسط گوتفرید لایبنیتس در سال ۱۶۹۴، با هدف توصیف یک کمیت در رابطه با یک منحنی مانند شیب یک نمودار در یک نقطه خاص به‌وجود آمد. امروزه به توابعی که توسط گوتفرید لایبنیتستعریف شدند، توابع مشتق‌پذیر می‌گوییم.

واژۀ تابع بعدها توسط لئونارد اویلر در قرن هجدهم، برای توصیف یک گزاره یا فرمول شامل متغیرهای گوناگون مورد استفاده قرار گرفت، مانند f(x) = sin(x) + x3.

در طی قرن نوزدهم، ریاضی‌دانان شروع به فرمول‌بندی تمام شاخه‌های ریاضی براساس نظریه مجموعه‌ها کردند. وایراشتراس بیشتر خواهان به‌وجود آمدن حساب دیفرانسیل و انتگرال در علم حساب بود تا در هندسه، یعنی بیشتر طرفدار تعریف اویلر بود.

در ابتدا، ایده تابع ترجیحاً محدود شد. ژوزف فوریه مدعی بود که تمام توابع از سری فوریه پیروی می‌کنند در حالی که امروزه با گسترش تعریف توابع، ریاضی‌دانان توانستند به مطالعه توابعی در ریاضی بپردازند که که در سراسر دامنه خود پیوسته ولی در هیچ نقطه‌ای مشتق‌پذیر نیستند این گونه توابع توسط وایراشتراس معرفی شدند. کشف چنین توابعی موجب شد تا توابع تنها به توابع پیوسته و مشتق‌پذیر محدود نشوند.

تا انتهای قرن نوزدهم ریاضی‌دانان در هر موضوع ریاضی به دنبال تعریفی بودند که براساس نظریه مجموعه‌ها و نتایج آن باشد. دیریکله و لوباچوسکی هر یک به‌طور مستقل هم‌زمان تعریف «رسمی» از تابع ارائه دادند.

بر طبق این تعریف، تابع حالت خاصی از یک رابطه است که در آن برای هر مقدار اولیه یک مقدار ثانویه منحصربه‌فرد وجود دارد.

تعریف تابع در علم رایانه، به عنوان حالت خاصی از یک رابطه، به‌طور گسترده‌تر در [[منطق]است

در دیگر دانش‌ها

تابع‌ها در شاخه‌های گوناگون دانش کاربرد فراوان دارند. برای نمونه در فیزیک، هنگامی که می‌خواهیم رابطه بین چند متغیر را بیان کنیم، به ویژه هنگامی که مقدار یک متغیر کاملاً وابسته به متغیرهای دیگر است از تابع بهره می‌بریم.

تابع در دانش‌های گوناگون بیشتر به عنوان عملگر است که کاری را بر روی داده‌های ورودی می‌انجامد. تابع را همچنین مورد استفاده در علم رایانه برای مدل‌سازی ساختمان داده‌ها و تأثیرات الگوریتم لگاریتم پورممی نمی‌بینیم.

ما با آنچه برای تعریف تابع در ریاضیات و علوم دیگر است کاری نداریم و به آن چیزی که مخصوص برنامه‌نویسی است می‌پردازیم.

تابع در برنامه‌نویسی

تابع در برنامه‌نویسی، به بخشی از کد گفته می‌شود که در یک گروهی تعریف شده و این گروه، می‌تواند شامل موارد زیر باشند:

  • یک نام
  • ورودی(ها) یا «arguments» یا «parameters»
    البته از لحاظ فنی، arguments مواردی است که به عنوان ورودی برای یک تابع تعریف می‌شوند و parameters نیز مواردی هستند که به این arguments  ها در نظر گرفته می‌شوند. (یا به آن‌ها تعلق می‌‌گیرند.)
  • خروجی

هدف از ایجاد توابع در برنامه‌نویسی، جلوگیری از تکرار کدها می‌باشد! به این صورت که فرض کنید کدی برای تشخیص عدد اول، یا گرفتن مقدار فاکتوریل یک عدد می‌نویسیم و حالا در قسمت‌های مختلف برنامه نیاز داریم تا از این کد استفاده کنیم! طبیعتا بایستی کد نوشته شده را در بخش‌های مورد نیاز کپی کنیم! اما برای «جلوگیری از تکرار مکرر کدها در بخش‌های مختلف برنامه» و «آسان کردن مدیریت کد و نگهداری آن»، مفهوم تابع  شکل می‌گیرد! و با استفاده از تابع، تنها یک بار کد خود را می‌نویسیم و سپس از آن هرجایی که خواستیم استفاده می‌کنیم! تنها کافیست از نام تابع در دیگر مکان‌ها استفاده کنیم تا اجرا شود. به این عمل صدا کردن یا صدا زدن یا فراخوانی تابع نیز گفته می‌شود.

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

همچنین یک روش از برنامه‌نویسی نیز وجود دارد که به آن برنامه‌نویسی Functional (تابع گرا) گفته می‌شود و در آن از توابع استفاده زیادی می‌کنیم.
به استفاده مجدد از کد نوشته شده نیز «Code reuse» گفته می‌شود. به تکرار نکردن کد نیز «Don’t Repeat Yourself» یا «DRY» گفته می‌شود.
ورودی‌های توابع باید به ترتیب الویتی که تعریف شده‌اند، به تابع ارسال گردند! برای مثال، اگر ورودی اول قرار است یک عدد دریافت کند و ورودی دوم یک عبارت متنی، نمی‌توانیم این دو را به جای هم بنویسیم.

متد چیست؟!

متد (Method)، در واقع همان تابع است! با این تفاوت که در برنامه‌نویسی شی‌گرا (OOP)، داخل یک کلاس نوشته می‌شود! متد در لغت به معنای «روش، سبک، رویه» بوده و در واقع هر تابعی که درون یک کلاس تعریف می‌شود، جزء متد آن کلاس به حساب می‌آید.

درک این بخش نیازمند آشنایی با برنامه‌نویسی شی‌گرا می‌باشد که به زودی مقاله‌ای از آن را در سایت منتشر خواهیم کرد.

تنها تفاوت تابع با متد در این است که تابع خارج از یک کلاس تعریف می‌شود ولی متد داخل کلاس تعریف می‌شود.
مفاهیم زیادی پیرامون توابع و متدها در زبان‌های برنامه‌نویسی وجود دارد که بعضی از آنها باکدیگر نیز در تضادند! اما با این حساب مفهوم کلی تابع و متد را در این مقاله شرح دادیم.
تبلیغات
0
کانال تلگرام فول کده

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

دانشجوی ارشد شبیه ساز هوشمند و مدیر فول کده

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نظرات ثبت شده بدون دیدگاه